COURSE SYLLABUS

Compiler construction and formal languages 7.5 credits

Kompilatorteknik och formella språk
Second cycle, D7050E
Version
Course syllabus valid: Autumn 2019 Sp 1 - Present
The version indicates the term and period for which this course syllabus is valid. The most recent version of the course syllabus is shown first.

Syllabus established
by Jonny Johansson, HUL SRT 15 Feb 2019

Last revised
by Jonny Johansson, HUL SRT 15 Feb 2019

Education level
Second cycle
Grade scale
G U 3 4 5
Subject
Computer Science
Subject group (SCB)
Computer Technology
Main field of study
Computer Science and Engineering

Entry requirements

Basic knowledge in mathematics corresponding to M0031M. Good knowledge of imperative programming (D0009E) and object-oriented programming & design (D0010E). Functions and relations, set theory, state automata (M0009M). Searching and sorting, common data structures like queues, stacks, lists, trees and graphs (D0012E). Stack-based assembly programming (D0013E).


More information about English language requirements


Selection

The selection is based on 20-285 credits



Course Aim

Fundamental theories about computation and different models of computation. Construction of compilers. Lexical analysis, syntax analysis, and translation into abstract syntax.Regular expressions and grammars, context-free languages and grammars, lexer and parser generators. Identifier handling and symbol table organization. Type-checking, logical inference systems. Intermediate representations and transformations for different languages. Code optimization and register allocation. Machine code generation for common architectures.


Contents
Fundamental theories about computation and different models of computation. Construction of compilers. Lexical analysis, syntax analysis, and translation into abstract syntax.Regular expressions and grammars, context-free languages and grammars, lexer and parser generators. Identifier handling and symbol table organization. Type-checking, logical inference systems. Intermediate representations and transformations for different languages. Code optimization and register allocation. Machine code generation for common architectures.

Realization

Teaching consists of lectures, homework assignments, laboratory work, and seminars. Lab assignments are reported in writing or by demonstration, and may be associated with a deadline.


Examination

Seminars and home assignments as well as written and/or oral lab assignment reports.
The grade is determined by the performances on all the moments.


Transition terms
The course replaces the courses D7006E and D7011E.

Examiner
Per Lindgren

Literature. Valid from Autumn 2019 Sp 1 (May change until 10 weeks before course start)
Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman. Compilers: principles, techniques and tools (2nd ed.), Addison Wesley, 2007, ISBN: 0321486811.

Scientific articles.

Course offered by
Department of Computer Science, Electrical and Space Engineering

Modules
CodeDescriptionGrade scaleHPStatusFrom periodTitle
0001Seminars, home assignments, laboratory workG U 3 4 57.50MandatoryA19

Study guidance
Study guidance for the course is to be found in our learning platform Canvas before the course starts. Students applying for single subject courses get more information in the Welcome letter. You will find the learning platform via My LTU.