A single-pass compiler for a simple imperative language.
 
 
Go to file
James T. Martin 57aa667000
Completely rewrite stack management.
Now we always use the stack instead of keeping a TOS register.
This is very inefficient, but I'll worry about register
allocation later.

The new block model is inspired by x86's `enter` and `leave`
instructions. I intend to support nested procedures at some point
in the future.
2022-09-06 19:47:46 -07:00
src Completely rewrite stack management. 2022-09-06 19:47:46 -07:00
.editorconfig Initial commit. 2022-09-05 23:48:56 -07:00
.gitignore Initial commit. 2022-09-05 23:48:56 -07:00
LICENSE.txt Initial commit. 2022-09-05 23:48:56 -07:00
Makefile Separate instruction encoding into a separate file. 2022-09-06 02:20:10 -07:00
README.md Initial commit. 2022-09-05 23:48:56 -07:00

README.md

Passlang

A one-pass, linear-time compile-and-go compiler.

I'm imposing these restrictions on myself to avoid over-engineering and give myself a design challenge. The goal is to make the absolute best language I can under these constraints, and then incrementally begin to relax the restrictions only when absolutely necessary to make progress.