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