A Fast Bytecode VM for Arithmetic: The Compiler

8 Likes

This is a very cool series, thank you for writing it! I appreciate how you took time to measure the execution time for different data structures and monad choices, this is not common at all and very useful.

1 Like

From The Parser post:

Although you actually use signed decimal in the parser implementation, the EBNF for num doesn’t appear to allow a stand-alone 0:

num      ::= "-"? [1-9] [0-9]*
1 Like

Good catch! Thanks a lot. I’ll fix the grammar.

Thanks! I decided to write this series to explore how to write performant VMs in Haskell, so trying out various choices and benchmarking them is one of the most important aspects.