7.9

Notes

These are the course notes for CMSC 430, which we’ll use as the foundation for CMSC 838E. They are rough around the edges and incomplete. So... basically like research software. As we work through the notes and cover topics not included, we will write new notes for the topics we get to. In the meantime, if you spot areas for improvement, submit an issue on Github.

    1 What is a Compiler?

    2 From OCaml to Racket

    3 a86: a Little Assembly Language

    4 Abscond: a language of numbers

    5 Blackmail: incrementing and decrementing

    6 Con: branching with conditionals

    7 Dupe: a duplicity of types

    8 Dodger: addressing a lack of character

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

    10 Extort: when errors exist

    11 Fraud: local binding, variables, and binary operations

    12 Hustle: heaps and lists

    13 Iniquity: function definitions and calls

    14 Juvie: cleaning up after your mess

    15 Jig: jumping to tail calls

    16 Knock: first-class function (pointers)

    17 Loot: lambda the ultimate