7.9

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 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

    18 Shakedown: Calling functions C functions