You are on page 1of 3

Course Syllabus

Compilers Design

Author: D.V. Martirosyan


Reviewers: V.Sh. Melikyan, Sci.D., Professor
A.R. Malinyan

Introduction:
The course program on Compilers Design is assigned for postgraduate education on Electronic Design
Automation specialization and is taught in the 2 nd semester (1 year’s 2nd semester).

Objective:
The goal of the course is to study Finite State Machines together with their implementation. Pushdown
automaton as well as context-free grammars are also introduced. The course also focuses on top-down
methods of processing for attribute grammars as well as syntactically controlled processes of language
processing.

Class Hours:
The course duration is 45 hours, lectures volume is 30 hours and laboratory works are 15 hours .

Homework and Exam:


Grades will be assigned on:
 Lectures (70 scores)
 Laboratory Works (30 scores)
 Final exam.

Prerequisites:
The course program is compiled taking into account that the following courses had been studied in
advance:
 Mathematics
 Informatics
 EDA Mathematical Methods
 Algorithms Theory
 Programming Languages
 Object-oriented Programming
 Software Development Technology.
Understanding of the course is the basis for further specialized subjects destined by the educational plan
of Electronic Design Automation specialization.

Reference Materials:
To study the course the necessary list of references is given below.
1. K. Pandey. Elements of Compiler Design.; 2015
2. H. S. Mohan. Compilers Design. Alpha Science International Ltd; 2014
3. R.K. Dasaradh. Introduction to Automata and Compiler Design. PHI; 2013.
4. R. K. Dasaradh. Introduction to Automata and Compiler Design. PHI; 2013

Synopsys University Courseware


Copyright © 2017 Synopsys, Inc. All rights reserved.
Developed by: Vazgen Melikyan
Course Syllabus

5. R. Wilhelm, H. Seidl, S. Hack. Compiler Design: Analysis and Transformation. Springer; 1st
edition; 2012.

Synopsys University Courseware


Copyright © 2017 Synopsys, Inc. All rights reserved.
Developed by: Vazgen Melikyan
Course Syllabus

Grading:
This course will be graded according to Professor’s discretion.

Lectures (30 hours):


Topic 1.1 (4 hours) – Introduction
 Compilation process. Structure of a compiler. Relationship between language and machine. A
Simplified model of a compiler. Lexical unit. Syntactical unit. Code generator. Blocks and passes
of a compiler. Mathematical models of translation.

Topic 1.2 (6 hours) – Lexical Analysis


 Lexical unit. Regular sets. Regular expressions. Introduction. FSMs. Finite-recognizers. Transition
table. Null string. Equivalence of states. Inaccessible states. Getting the minimal automaton.
Nondeterministic FSM. Deterministic FSM. Constructing nondeterministic FSM for regular
expressions. Equivalence of nondeterministic and deterministic finite recognizers. Representation
of input symbols. Representation of states. Vector transition method. List transition method.
Possible organization of lexical unit. Identification of words: method of linear list. Method of
ordered list. Method of placement.

Topic 1.3 (6 hours) – Syntactic Analysis


 Definition of pushdown automaton. Pushdown deterministic FSM. Operations on stack, state and
input. Union. Concatenation. Kleene iteration. Translation with the help of PDA. Looping.

Topic 1.4 (6 hours) – Context-free Grammars (CFGs)


 Grammar. Types of grammar and their properties. Context-free grammars. Introduction. Outputs.
Trees. Regular sets as CFGs. Right-linear grammar. Extra non-terminals.

Topic 1.5 (4 hours) – Top-down Methods of Processing for Attribute Grammars


 Defining attribute grammars. L-attributed grammars. Simple assignment form. Attribute Pushdown
Automaton. Recursive descent method for attribute grammars. Formal parameters and local
variables. Code for nonterminal and input symbol. Code for the symbol of action. Code for
attribute calculation rules. Main program.

Topic 1.6 (4 hours) – Syntactically Controlled Processes of Language Processing


 Translating grammar. Attribute translating grammars. Translation of arithmetic expressions. S-
grammar. The concept of basis. Grammatical basis of ascending methods. S-attributed grammar.

Laboratory Works (15 hours):


Topic 2.1 (4 hours) – Implementation of FSM
Topic 2.2 (4 hours) – Design and Implementation of Tables, used in a Translator
Topic 2.3 (4 hours) – Development and Implementation of Lexical Analysis Block
Topic 2.4 (3 hours) – Development and Implementation of Generation Code Block.

Synopsys University Courseware


Copyright © 2017 Synopsys, Inc. All rights reserved.
Developed by: Vazgen Melikyan

You might also like