Kursen behandlar tekniker för implementation av programspråk med hjälp av kompilatorer, både för verkliga och virtuella exekveringsmiljöer, tekniker för att läsa, förstå, översätta, förbättra samt exekvera program:
- Att läsa program: lexikalanalys och syntaxanalys. Ändliga tillståndsmaskiner, reguljära uttryck, kontext-fria grammatiker, LL- och LR-parsning.
- Att förstå program: semantisk analys, typkontroll.
- Att översätta program: maskiner och instruktioner.
- Intermediärkod, instruktionsval, konventioner för proceduranrop.
- Att förbättra program: maskinoberoende optimeringar; maskinnära optimeringar (registerallokering, schemaläggning av instruktioner).
- Att exekvera program: virtuella exekveringsmiljöer och run-timesystem. Minneshantering, skräpsamling, att ladda och länka program, just-in-timekompilering.