Modern compiler design, use of automatic tools, compilation techniques and programme intermediate representations; scanner, recursive descent parser, bottom-up parser, code generation and optimization; semantic analysis and attribute grammars, transformational attribute grammars.