This is a timely subject for me.
I’m trying to write a simple but VM. The language itself would be onlya bit more than an RPN calculator,
(op, X, Y, Z) where op = {+, *, and, or}
and
(call, F, Y, Y, Z) where you call an external or internal function.
However, I would like this to be quick and to run incrementally - it makes one step each time it receives an external message. Also, I would like to keep all the data and states in a memory mapped file - essentially, on the heap.
Keeping each [artificial] “stack frame” as small as possible is the main thing I can think of to increase the speed.
Also: Looking at the home-page of the language the author is writing a VM for: “Converge is a dynamically typed object orientated programming language with compile-time meta-programming facilities - put simply, Converge has a macro-like facility that can embed domain specific languages with arbitrary syntaxes into source files. ”
Yes, being able to use absolutely any syntax sounds like it could make the language very slow indeed - It seems like that would be the equivalent of running bison and then gcc each time you interpret a program.
This is a timely subject for me.
I’m trying to write a simple but VM. The language itself would be onlya bit more than an RPN calculator,
(op, X, Y, Z) where op = {+, *, and, or} and (call, F, Y, Y, Z) where you call an external or internal function.
However, I would like this to be quick and to run incrementally - it makes one step each time it receives an external message. Also, I would like to keep all the data and states in a memory mapped file - essentially, on the heap.
Keeping each [artificial] “stack frame” as small as possible is the main thing I can think of to increase the speed.
Also: Looking at the home-page of the language the author is writing a VM for: “Converge is a dynamically typed object orientated programming language with compile-time meta-programming facilities - put simply, Converge has a macro-like facility that can embed domain specific languages with arbitrary syntaxes into source files. ”
Yes, being able to use absolutely any syntax sounds like it could make the language very slow indeed - It seems like that would be the equivalent of running bison and then gcc each time you interpret a program.