Learning compilers, interpreters, code generation, virtual machines, assemblers, JITs, etc
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Dmytro S d3371037e4 bf/bfi1.hs 2 years ago
bf bf/bfi1.hs 2 years ago
c bf/bfjc : target_arch/target_family check 2 years ago
emu/bcpu BCPU 2 years ago
forth forth/mips: working IF, THEN, ELSE, BEGIN, WHILE 4 years ago
fp fp/concrete-semantics: AExp.thy, Primitives.thy 2 years ago
llvm `llvm-general` compiles 3 years ago
rel Jack-Anne-George puzzle 2 years ago
x86 rmmod testing 5 years ago
yacc Yacc examples 6 years ago
zoo bnat.pl 4 years ago
.gitignore bf/bfjc : new cargo project 2 years ago
README.md README.md: protoprojects 3 years ago
TASKS TODO: added Mogensen 6 years ago



An incubator/sandbox for learning compilers, interpreters, code generation, virtual machines, assemblers, JITs, etc.

Hacks that have grown into separate projects:

  • x86/hasm: a simple x86 assembler written in Haskell, for now it’s opcode set is very limited;
  • fp/secd: implementation of SECD virtual machine in C with a Scheme-to-SECD compiler;

Some protoprojects that may be interesting:

  • fp/tapl: reimplementation of some typecheckers from TAPL (in Haskell/Prolog), e.g. fullsimple.
  • llvm/kldscp: LLVM tutorial, JIT compiler of a toy language Kaleidoscope;
  • forth/mips/mforth.S: rewrite of the awesome jonesforth from x86/Linux to MIPS/Linux (tested on CI20);
  • c/longjmp/x86: a hackish reimplementation of setjmp/longjmp compliant to GCC x86 ABI;
  • zoo/{calc, miniml, minihs, miniprolog, boa}: a mirror of the awesome PLZoo ;
  • rel/chr: small Constraint Handling Rules examples;