Fork of ELang, with distributed call stack.
def add(a, b) return a + b; enddef; def add2(a) return add(a, 2); enddef; print add(1, 2); print '\n'; print add2(40);
The result from the execution above will be:
...as expected. The interesting thing is that the program will be executed on 3 different machines:
- The "main" program will be executed on the machine onto which is run the lexer (lets call this machine
addfunction will be parsed and executed on different machine (lets call it
add2function will be parsed and executed on third machine (lets call it
A tries to execute
add(1, 2) it will call machine
B where the
add function resides. Later, during the execution of
C will call machine
B in order to execute
This will happen using the current scheduling strategy. The scheduling strategies are (supposed to be) pluggable with different strategies.