8.18

Notes🔗

These are the course notes for CMSC 430. They can be a bit rough around the edges in places, but please keep in mind this is a living document. If you spot errors, confusing prose, missing parts, or generally have suggestions for improving the material, please, please, please submit an issue on Github.

    1 What is a Compiler?

    2 From OCaml to Racket

    3 a86: a Little Assembly Language

    4 a86 Reference

    5 Abscond: a language of numbers

    6 Blackmail: incrementing and decrementing

    7 Con: branching with conditionals

    8 Dupe: a duplicity of types

    9 Dodger: addressing a lack of character

    10 Evildoer: change the world a couple nibbles at a time

    11 Extort: when errors exist

    12 Fraud: local binding, variables, and binary operations

    13 Hustle: heaps and lists

    14 Hoax: vectors and strings

    15 Iniquity: function definitions and calls

    16 Jig: jumping to tail calls

    17 Knock: pattern matching

    18 Loot: lambda the ultimate

    19 Mug: symbols and interned string literals

    20 Mountebank: quote and compound static data

    21 Neerdowell: structures

    22 Outlaw: self-hosting