So You Want to Build a Language VM - Interlude 01
Goes back and adds docs, tests and other improvements
Fixy fixy
You know how I’ve written several times we’ll come back and fix/change stuff later?
So You Want to Build a Language VM - Part 09 - Assembler 2: Cruise Control
Adds more functionality to our assembler
Megazord…ACTIVATE!!!
So You Want to Build a Language VM - Part 08 - Assembler: The Beginning
Starts on an assembler
Instructions…Assemble!
We could torture ourselves by writing all our programs in hex, and if that’s your thing, this section is technically optional.
So You Want to Build a Language VM - Part 06 - The REPL
Starts building a REPL for the Iridium VM
A REPL
REPL
stands for Read, Evaluate, and Print Loop. It is also referred to as the interactive interpreter for a language.
For example, if you open up Terminal or iTerm, we can look at Python’s REPL:
So You Want to Build a Language VM - Part 07 - REPL and Code Execution
Adds basic hex code evaluation to the REPL
A More Advanced REPL
Our current REPL doesn’t do a ton, so let’s fix that. In this post, we’ll be adding some commands to look at the program bytecode and the registers and their contents, as well as actually execute code entered in as hexadecimal.
So You Want to Build a Language VM - Part 05 - Equality Checks
Covers equality opcodes
Equality
Hey, you’ve made it this far! Congrats! I wish I could say we’re near the end to give you some hope, but, well…sorry. =)
Today, we’re going to add some equality and comparison instructions! These will let us test us if the values in two registers are equal, not equal, greater than, or less than. These are easy to implement, so it shouldn’t take us too long.
== Opcodes
The new Opcodes
we’ll be creating are:
So You Want to Build a Language VM - Part 04 - Jumps
Covers the jump opcodes
Jump Around!
When we last left our intrepid tutorial followers, we had a simple VM that could add, subtract, multiply and divide. This is all fine and dandy, but we need more functionality than just that. In this segment, we’ll be adding some jump-related instructions.
So You Want to Build a Language VM - Part 03 - More Basic Opcodes
Adds more opcodes for basic math
Even More Opcodes!
Right now, our VM can do one thing: halt. An important feature to be sure, but we should probably add in more opcodes to do things like, oh, load, add, multiple, etc.
So You Want to Build a Language VM - Part 02 - Basic Opcodes
Instructions and decoding opcodes
Opcodes
So You Want to Build a Language VM - Part 01 - Overview and a Simple VM
Covers getting a basic VM started and design goals