Index🔗

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

 

$ (struct)
$-l
$?
% (struct)
%% (struct)
%%% (struct)
%%%-s
%%%?
%%-s
%%?
%-s
%?
(Lack of) Meaning for some Dupe programs
16-bit-integer?
32-bit-integer?
64-bit-integer?
8-bit-integer?
@
A Bit of History
A Broken Compiler
A Compiler for Abscond
A Compiler for Blackmail
A Compiler for Con
A Compiler for Dodger
A Compiler for Dupe
A Compiler for Evildoer
A Compiler for Hoax
A Compiler for Hustle
A Compiler for Iniquity
A Compiler for Pattern Matching
A Compiler with Proper Tail Calls
A Complete Compiler
A few more primitives
A few words on the medium of instruction
A Run-Time for Dodger
A Run-Time for Evildoer
A Run-Time for Hoax
A Run-Time for Hustle
A source of free memory
a86
a86 Reference
a86/ast
a86/interp
a86/printer
a86/registers
a86: a Little Assembly Language
a86: Representing x86 Code as Data
Abscond: a language of numbers
Abstract syntax for Abscond
Abstract syntax for Blackmail
Add (struct)
Add-dst
Add-src
Add?
ah
al
An Example
An Example of Blackmail compilation
An Example of Con compilation
An Example of Dupe compilation
An Interpreter for Functions
An Interpreter for Pattern Matching
An Interpreter for Proper Calls
And (struct)
And-dst
And-src
And?
Array data
asm-display
asm-interp
asm-interp/io
asm-label?
asm-string
Assembly Expressions
ax
Bare-bones a86
Basic operations
Basic values
Beyond Compilers
bh
Binding, variables, and binary operations
bl
Blackmail: incrementing and decrementing
Bootstrapping the compiler
bp
bpl
Building a standard library
But is it Correct?
bx
Call (struct)
Call-x
Call?
Calling Functions
ch
Characters
Characters in Racket
Checking and signalling errors at run-time
cl
Cmovc (struct)
Cmovc-dst
Cmovc-src
Cmovc?
Cmove (struct)
Cmove-dst
Cmove-src
Cmove?
Cmovg (struct)
Cmovg-dst
Cmovg-src
Cmovg?
Cmovge (struct)
Cmovge-dst
Cmovge-src
Cmovge?
Cmovl (struct)
Cmovl-dst
Cmovl-src
Cmovl?
Cmovle (struct)
Cmovle-dst
Cmovle-src
Cmovle?
Cmovnc (struct)
Cmovnc-dst
Cmovnc-src
Cmovnc?
Cmovne (struct)
Cmovne-dst
Cmovne-src
Cmovne?
Cmovno (struct)
Cmovno-dst
Cmovno-src
Cmovno?
Cmovnz (struct)
Cmovnz-dst
Cmovnz-src
Cmovnz?
Cmovo (struct)
Cmovo-dst
Cmovo-src
Cmovo?
Cmovz (struct)
Cmovz-dst
Cmovz-src
Cmovz?
Cmp (struct)
Cmp-a1
Cmp-a2
Cmp?
Compiling binary operations
Compiling Function Calls and Definitions
Compiling Function Definitions
Compiling lets and variables
Compiling Loot
Compiling quote
Compiling string literals
Compiling Structures
Compiling Symbols and Strings
Complete Fraud compiler
Con: branching with conditionals
Concrete syntax for Abscond
Concrete syntax for Blackmail
Conditional execution
Conventions of Calling
Correctness
Correctness
Correctness and random testing
Correctness and random testing
Correctness and testing
Correctness, revisited
current-externs
current-objects
cx
Data (struct)
Data?
Db (struct)
Db-d
Db?
Dd (struct)
Dd-d
Dd?
Dealing with I/O
Defining structs
Definitions
Defunctionalization at work
Detour: Calling external functions
dh
di
dil
dl
Dodger: addressing a lack of character
Dq (struct)
Dq-d
Dq?
Dupe: a duplicity of types
Dw (struct)
Dw-d
Dw?
dx
Dynamic Interning
eax
ebp
ebx
ecx
edi
edx
Empty lists can be all and end all
Encoding values in Evildoer
Errors
esi
esp
Evildoer: change the world a couple nibbles at a time
Ex uno plures iterum: Out of One, Many... Again
Ex uno plures: Out of One, Many
Execution Model
exp?
Extern (struct)
extern (struct)
extern-name
extern-type
extern-value
Extern-x
extern?
Extern?
Extort: when errors exist
Features used by the Compiler
Flags
Fraud: local binding, variables, and binary operations
From OCaml to Racket
Functions
Functions
Functions in their most general form
Getting Meta
Giving x86 a try
Global (struct)
Global-x
Global?
Hoax: vectors and strings
How to write a Compiler?
Hustle: heaps and lists
Immediates
Inductive data
Iniquity: function definitions and calls
Instruction Set
instruction?
Instructions
Integers and Booleans
Interpreting
Interpreting quote
Introduction
Jc (struct)
Jc-x
Jc?
Je (struct)
Je-x
Je?
Jg (struct)
Jg-x
Jg?
Jge (struct)
Jge-x
Jge?
Jig: jumping to tail calls
Jl (struct)
Jl-x
Jl?
Jle (struct)
Jle-x
Jle?
Jmp (struct)
Jmp-x
Jmp?
Jnc (struct)
Jnc-x
Jnc?
Jne (struct)
Jne-x
Jne?
Jno (struct)
Jno-x
Jno?
Jnz (struct)
Jnz-x
Jnz?
Jo (struct)
Jo-x
Jo?
Jz (struct)
Jz-x
Jz?
Knock: pattern matching
Label (struct)
Label-x
label?
Label?
Labels
Lambda is Dead!
Lea (struct)
Lea-dst
Lea-x
Lea?
Lexical Addressing
Lists
Long Live Lambda!
Looking back, looking forward
Loot: lambda the ultimate
Making examples
Match by Example
Matching
Matching symbols and strings
Meaning of Abscond programs
Meaning of Blackmail programs
Meaning of Con programs
Meaning of Dodger programs
Meaning of Dupe programs
Meaning of Evildoer programs
Meaning of Extort programs
Meaning of Fraud programs
Meaning of Hoax programs, implicitly
Meaning of Hustle programs, explicitly
Meaning of Hustle programs, implicitly
Mechanics
Mem (struct)
Mem-base
Mem-index
Mem-offset
Mem-scale
Mem?
Memory
Memory Expressions
Mountebank: quote and compound static data
Mov (struct)
Mov-dst
Mov-src
Mov?
Mug: symbols and interned string literals
Mul (struct)
Mul-src
Mul?
Neerdowell: structures
Not (struct)
Not-a1
Not?
Notes
Numbers
On Names and Labels
Or (struct)
Or-dst
Or-src
Or?
Outlaw: self-hosting
Overview
Overview
Overview
Parsing
Parsing primitives, revisited
Parsing quoted datums and self-quoting datums
Pattern matching
Pop (struct)
Pop-a1
Pop?
Printing
Printing Values
prog
Programs
Psuedo-Instructions
Punting on Modules
Push (struct)
Push-a1
Push?
Putting it all together
Quote
Quote
Quote and the notion of self-quoting datums
Quotes are constants
r10
r10b
r10d
r10w
r11
r11b
r11d
r11w
r12
r12b
r12d
r12w
r13
r13b
r13d
r13w
r14
r14b
r14d
r14w
r15
r15b
r15d
r15w
r8
r8b
r8d
r8w
r9
r9b
r9d
r9w
Racket functions, more I/O, and primitives
rax
rbp
rbx
rcx
rdi
rdx
Reading and writing bytes
Reading and writing bytes in Racket
Recursive Functions
Refinement, take one
reg-16-bit
reg-32-bit
reg-64-bit
reg-8-bit-high
reg-8-bit-low
register-size
register?
Registers
Representing and operating on strings
Representing and operating on vectors
Representing Hoax values
Representing Hustle values
Resolving external labels
Ret (struct)
Ret?
rsi
rsp
Run-time for Extort
Running assembly programs
Sal (struct)
Sal-dst
Sal-i
Sal?
Sar (struct)
Sar-dst
Sar-i
Sar?
Save the Environment: Create a Closure!
semantics
seq
Shl (struct)
Shl-dst
Shl-i
Shl?
Shr (struct)
Shr-dst
Shr-i
Shr?
si
sil
sp
spl
Stack
Static Interning
Static Memory
String Literals
struct:$
struct:%
struct:%%
struct:%%%
struct:Add
struct:And
struct:Call
struct:Cmovc
struct:Cmove
struct:Cmovg
struct:Cmovge
struct:Cmovl
struct:Cmovle
struct:Cmovnc
struct:Cmovne
struct:Cmovno
struct:Cmovnz
struct:Cmovo
struct:Cmovz
struct:Cmp
struct:Data
struct:Db
struct:Dd
struct:Dq
struct:Dw
struct:extern
struct:Extern
struct:Global
struct:Jc
struct:Je
struct:Jg
struct:Jge
struct:Jl
struct:Jle
struct:Jmp
struct:Jnc
struct:Jne
struct:Jno
struct:Jnz
struct:Jo
struct:Jz
struct:Label
struct:Lea
struct:Mem
struct:Mov
struct:Mul
struct:Not
struct:Or
struct:Pop
struct:Push
struct:Ret
struct:Sal
struct:Sar
struct:Shl
struct:Shr
struct:Sub
struct:Text
struct:Xor
Structure and Interpretation
Structures
Sub (struct)
Sub-dst
Sub-src
Sub?
symbol->label
Symbols
Symbols
Syntax
syntax
Syntax matters
Tagged pointer values
Tail Calls
Testing and correctness
Testing, modules, submodules
Text (struct)
Text?
The need for memory
The wrinkle of stack alignment
Toward a Compiler for Abscond
Uninterned Symbols
Updated Run-time System for Dupe
Updating the run-time system’s notion of Values
What do you need to know?
What does a Compiler look like?
What is a Compiler?
What is a Compiler?
What is a Programming Language?
What is a Tail Call?
What is CMSC 430?
What will be do in this course?
What will we do?
What will you learn?
Xor (struct)
Xor-dst
Xor-src
Xor?