Familiarity with compiled codes (assembly language) of RISC and CISC machines; Writing a predictive parser for a small language; Experiment with scanner (lex/flex) and parser (yacc/byson) generator (such as translation of regular expression to NFA or the construction or parse tree); Writing scanner-parse specification for a small language, translation of the language to an intermediate form (three-address code), generation of target code (in assembly language); Code improvement.