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 programs16-bit-integer?32-bit-integer?64-bit-integer?8-bit-integer?@A Bit of HistoryA Broken CompilerA Compiler for AbscondA Compiler for BlackmailA Compiler for ConA Compiler for DodgerA Compiler for DupeA Compiler for EvildoerA Compiler for HoaxA Compiler for HustleA Compiler for IniquityA Compiler for Pattern MatchingA Compiler with Proper Tail CallsA Complete CompilerA few more primitivesA few words on the medium of instructionA Run-Time for DodgerA Run-Time for EvildoerA Run-Time for HoaxA Run-Time for HustleA source of free memorya86a86 Referencea86/asta86/interpa86/printera86/registersa86: a Little Assembly Languagea86: Representing x86 Code as DataAbscond: a language of numbersAbstract syntax for AbscondAbstract syntax for BlackmailAdd (struct)Add-dstAdd-srcAdd?ahalAn ExampleAn Example of Blackmail compilationAn Example of Con compilationAn Example of Dupe compilationAn Interpreter for FunctionsAn Interpreter for Pattern MatchingAn Interpreter for Proper CallsAnd (struct)And-dstAnd-srcAnd?Array dataasm-displayasm-interpasm-interp/ioasm-label?asm-stringAssembly ExpressionsaxBare-bones a86Basic operationsBasic valuesBeyond CompilersbhBinding, variables, and binary operationsblBlackmail: incrementing and decrementingBootstrapping the compilerbpbplBuilding a standard libraryBut is it Correct?bxCall (struct)Call-xCall?Calling FunctionschCharactersCharacters in RacketChecking and signalling errors at run-timeclCmovc (struct)Cmovc-dstCmovc-srcCmovc?Cmove (struct)Cmove-dstCmove-srcCmove?Cmovg (struct)Cmovg-dstCmovg-srcCmovg?Cmovge (struct)Cmovge-dstCmovge-srcCmovge?Cmovl (struct)Cmovl-dstCmovl-srcCmovl?Cmovle (struct)Cmovle-dstCmovle-srcCmovle?Cmovnc (struct)Cmovnc-dstCmovnc-srcCmovnc?Cmovne (struct)Cmovne-dstCmovne-srcCmovne?Cmovno (struct)Cmovno-dstCmovno-srcCmovno?Cmovnz (struct)Cmovnz-dstCmovnz-srcCmovnz?Cmovo (struct)Cmovo-dstCmovo-srcCmovo?Cmovz (struct)Cmovz-dstCmovz-srcCmovz?Cmp (struct)Cmp-a1Cmp-a2Cmp?Compiling binary operationsCompiling Function Calls and DefinitionsCompiling Function DefinitionsCompiling lets and variablesCompiling LootCompiling quoteCompiling string literalsCompiling StructuresCompiling Symbols and StringsComplete Fraud compilerCon: branching with conditionalsConcrete syntax for AbscondConcrete syntax for BlackmailConditional executionConventions of CallingCorrectnessCorrectnessCorrectness and random testingCorrectness and random testingCorrectness and testingCorrectness, revisitedcurrent-externscurrent-objectscxData (struct)Data?Db (struct)Db-dDb?Dd (struct)Dd-dDd?Dealing with I/ODefining structsDefinitionsDefunctionalization at workDetour: Calling external functionsdhdidildlDodger: addressing a lack of characterDq (struct)Dq-dDq?Dupe: a duplicity of typesDw (struct)Dw-dDw?dxDynamic InterningeaxebpebxecxediedxEmpty lists can be all and end allEncoding values in EvildoerErrorsesiespEvildoer: change the world a couple nibbles at a timeEx uno plures iterum: Out of One, Many... AgainEx uno plures: Out of One, ManyExecution Modelexp?Extern (struct)extern (struct)extern-nameextern-typeextern-valueExtern-xextern?Extern?Extort: when errors existFeatures used by the CompilerFlagsFraud: local binding, variables, and binary operationsFrom OCaml to RacketFunctionsFunctionsFunctions in their most general formGetting MetaGiving x86 a tryGlobal (struct)Global-xGlobal?Hoax: vectors and stringsHow to write a Compiler?Hustle: heaps and listsImmediatesInductive dataIniquity: function definitions and callsInstruction Setinstruction?InstructionsIntegers and BooleansInterpretingInterpreting quoteIntroductionJc (struct)Jc-xJc?Je (struct)Je-xJe?Jg (struct)Jg-xJg?Jge (struct)Jge-xJge?Jig: jumping to tail callsJl (struct)Jl-xJl?Jle (struct)Jle-xJle?Jmp (struct)Jmp-xJmp?Jnc (struct)Jnc-xJnc?Jne (struct)Jne-xJne?Jno (struct)Jno-xJno?Jnz (struct)Jnz-xJnz?Jo (struct)Jo-xJo?Jz (struct)Jz-xJz?Knock: pattern matchingLabel (struct)Label-xlabel?Label?LabelsLambda is Dead!Lea (struct)Lea-dstLea-xLea?Lexical AddressingListsLong Live Lambda!Looking back, looking forwardLoot: lambda the ultimateMaking examplesMatch by ExampleMatchingMatching symbols and stringsMeaning of Abscond programsMeaning of Blackmail programsMeaning of Con programsMeaning of Dodger programsMeaning of Dupe programsMeaning of Evildoer programsMeaning of Extort programsMeaning of Fraud programsMeaning of Hoax programs, implicitlyMeaning of Hustle programs, explicitlyMeaning of Hustle programs, implicitlyMechanicsMem (struct)Mem-baseMem-indexMem-offsetMem-scaleMem?MemoryMemory ExpressionsMountebank: quote and compound static dataMov (struct)Mov-dstMov-srcMov?Mug: symbols and interned string literalsMul (struct)Mul-srcMul?Neerdowell: structuresNot (struct)Not-a1Not?NotesNumbersOn Names and LabelsOr (struct)Or-dstOr-srcOr?Outlaw: self-hostingOverviewOverviewOverviewParsingParsing primitives, revisitedParsing quoted datums and self-quoting datumsPattern matchingPop (struct)Pop-a1Pop?PrintingPrinting ValuesprogProgramsPsuedo-InstructionsPunting on ModulesPush (struct)Push-a1Push?Putting it all togetherQuoteQuoteQuote and the notion of self-quoting datumsQuotes are constantsr10r10br10dr10wr11r11br11dr11wr12r12br12dr12wr13r13br13dr13wr14r14br14dr14wr15r15br15dr15wr8r8br8dr8wr9r9br9dr9wRacket functions, more I/O, and primitivesraxrbprbxrcxrdirdxReading and writing bytesReading and writing bytes in RacketRecursive FunctionsRefinement, take onereg-16-bitreg-32-bitreg-64-bitreg-8-bit-highreg-8-bit-lowregister-sizeregister?RegistersRepresenting and operating on stringsRepresenting and operating on vectorsRepresenting Hoax valuesRepresenting Hustle valuesResolving external labelsRet (struct)Ret?rsirspRun-time for ExtortRunning assembly programsSal (struct)Sal-dstSal-iSal?Sar (struct)Sar-dstSar-iSar?Save the Environment: Create a Closure!semanticsseqShl (struct)Shl-dstShl-iShl?Shr (struct)Shr-dstShr-iShr?sisilspsplStackStatic InterningStatic MemoryString Literalsstruct:$struct:%struct:%%struct:%%%struct:Addstruct:Andstruct:Callstruct:Cmovcstruct:Cmovestruct:Cmovgstruct:Cmovgestruct:Cmovlstruct:Cmovlestruct:Cmovncstruct:Cmovnestruct:Cmovnostruct:Cmovnzstruct:Cmovostruct:Cmovzstruct:Cmpstruct:Datastruct:Dbstruct:Ddstruct:Dqstruct:Dwstruct:externstruct:Externstruct:Globalstruct:Jcstruct:Jestruct:Jgstruct:Jgestruct:Jlstruct:Jlestruct:Jmpstruct:Jncstruct:Jnestruct:Jnostruct:Jnzstruct:Jostruct:Jzstruct:Labelstruct:Leastruct:Memstruct:Movstruct:Mulstruct:Notstruct:Orstruct:Popstruct:Pushstruct:Retstruct:Salstruct:Sarstruct:Shlstruct:Shrstruct:Substruct:Textstruct:XorStructure and InterpretationStructuresSub (struct)Sub-dstSub-srcSub?symbol->labelSymbolsSymbolsSyntaxsyntaxSyntax mattersTagged pointer valuesTail CallsTesting and correctnessTesting, modules, submodulesText (struct)Text?The need for memoryThe wrinkle of stack alignmentToward a Compiler for AbscondUninterned SymbolsUpdated Run-time System for DupeUpdating the run-time system’s notion of ValuesWhat 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-dstXor-srcXor?