Eightebed is a small language with explicit malloc and free.
Through a modicum of static analysis
and runtime support, Eightebed is "safe": it is not possible to dereference a dangling
pointer or otherwise incorrectly-populated memory.
Eightebed was designed as a counter-example to Gregor Richards' claim that such
a language would either need a garbage collector, or not actually implement free.
Eightebed has a real free and has no garbage collector.
Sample Program
type node struct {
int value;
ptr to node next;
};
var ptr to node jim;
var ptr to node george;
{
jim = malloc node;
if valid jim {
[@jim].value = (1 + 4);
george = jim;
}
if valid george {
print [@george].value;
}
free george;
free jim;
}
Computational Class
Programming Paradigms
Documentation
Implementations
-
rooibos.py, in Python
To run this implementation, you need:
- an implementation of Python (we suggest cPython 2.6.7)
-
8ebed2c.py, a compiler in Python
To run this implementation, you need:
- an implementation of Python (we suggest cPython 2.6.7)
Download
Development
Github: catseye/Eightebed
Bitbucket: catseye/eightebed
Issue tracker: on github
Previous Releases
Influenced
Commentary
The name "Eightebed" came from a typo by Alise for the word "enlightened".