Skip to content

Commit

Permalink
More conclusions
Browse files Browse the repository at this point in the history
  • Loading branch information
noelwelsh committed Dec 12, 2023
1 parent f587c95 commit bb87b16
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion src/pages/adt-optimization/conclusions.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ This work is based on [Derivatives of Regular Expressions][regexp-deriv], which
[parsing-deriv]: https://matt.might.net/papers/might2011derivatives.pdf


Stack machines versus register machines.

[From Interpreter to Compiler and Virtual Machine: A Functional Derivation][interpreter-to-compiler]

Expand All @@ -20,5 +19,11 @@ Stack machines versus register machines.

[Towards Superinstructions for Java Interpreters][towards-super] is a nice example of applying superinstructions to a interpreted JVM.

If you're interested in the design considerations in a general purpose stack based instruction set, [Bringing the Web up to Speed with WebAssembly][wasm] is the paper for you. It covers the design of WebAssembly, and the rationale behind the choices.

Stack machines are not the only virtual machine used for implementing interpreters. Register machines are the most common alternative. The Lua virtual machine, for example, is a register machine. [Virtual Machine Showdown: Stack Versus Registers][stacks-vs-registers] compares the two and concludes that register machines are faster. However they are more complex to implement.

[stack-caching]: https://dl.acm.org/doi/pdf/10.1145/207110.207165
[towards-super]: https://core.ac.uk/download/pdf/297029962.pdf
[wasm]: https://dl.acm.org/doi/pdf/10.1145/3062341.3062363
[stacks-vs-registers]: https://dl.acm.org/doi/pdf/10.1145/1328195.1328197

0 comments on commit bb87b16

Please sign in to comment.