start a vool readme
This commit is contained in:
parent
20542d1e8b
commit
4de57dbe4d
31
lib/vool/README.md
Normal file
31
lib/vool/README.md
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# VOOL
|
||||||
|
|
||||||
|
Virtual Object Oriented Language
|
||||||
|
|
||||||
|
in other words, ruby without the fluff.
|
||||||
|
|
||||||
|
Possibly later other languages can compile to this level, eg by running in the same jvm.
|
||||||
|
|
||||||
|
## Syntax tree
|
||||||
|
|
||||||
|
Vool is the layer of concrete syntax tree. The Parser gem is used to parse ruby. It creates
|
||||||
|
an abstract syntax tree which is then transformed.
|
||||||
|
|
||||||
|
The next layer down is the Vom, Virtual object Machine, which uses an instruction tree.
|
||||||
|
That is on the way down we create instructions, but stay in tree format. Only the next step
|
||||||
|
down to the Risc layer moves to an instruction stream.
|
||||||
|
|
||||||
|
The nodes of the syntax tree are all the things one would expect from a language, if statements
|
||||||
|
and the like. There is no context yet, and actual objects, representing classes and
|
||||||
|
methods, will be created on the way down.
|
||||||
|
|
||||||
|
## Fluff
|
||||||
|
|
||||||
|
Ruby has lots of duplication to help programmers to write less. An obvious example is the
|
||||||
|
existence of until, which really means if not. Other examples, some more impactful are:
|
||||||
|
|
||||||
|
- No implicit blocks, those get passed as normal arguments (the last)
|
||||||
|
- No splats
|
||||||
|
- no case
|
||||||
|
- no elseif (no unless, no ternary operator)
|
||||||
|
- no global variables.
|
Loading…
Reference in New Issue
Block a user