Compiler Design

CSCI 447 - Spring 2002

Muhamed F. Mudawar

mudawwar@aucegypt.edu

733 Falaki Academic Center, Ext: 5305

Office Hours: UMW 10-12 noon

Final Grades (Posted on June 5)

Click here to see your grades

Final Exam

Thursday, May 30, at 12 noon, Room 208 FLAC

Assistants

Hussam Mousa

husmousa@aucegypt.edu, Tel: 010-5288775

Lab Hours: UMW 3-7 pm (Lab 707 or Room 701)

Catalog Description

Prerequisite: CSCI 325. Offered in fall and spring.

Principles and practices in the design of compilers. Lexical analysis. Syntax analysis, top-down and bottom-up parsing. Syntax-directed translation and syntax trees. Declarations, types, and symbol management. Run-time environments, storage organization, parameter passing, dynamic storage allocation. Intermediate languages and intermediate code generation. Code generation and optimization. Project: students construct a simple compiler that generates unoptimized code.

Textbook

Kenneth Louden, Compiler Construction: Principles and Practice, PWS publishing company, 1997.

Reference

Aho, Sethi, and Ullman, Compilers: Principles, Techniques, and Tools, Addison Wesley, 1988.

Objectives

To present a practical approach to the subject of compiler construction.

To cover the components of a compiler and how they fit together.

To automate the generation of compiler components using Lex and Yacc.

Download Course Syllabus

Get Adobe Acrobat Reader.  All downloadable files are in PDF format.

Lecture Transparencies

Introduction to compiling, the translation process

Scanning theory, regular expressions, finite automata

Using the Lex scanner generator, a TINY language and scanner

Symbol tables, hashing, and hash tables

Context-Free grammars, parse trees, syntax trees, ambiguity, TINY syntax

Recursive descent, LL(1) parsing, Syntax tree construction, Grammar analysis

LR parsing techniques: LR(0), SLR(1), LR(1) and LALR(1) parsing

Yacc, semantic actions and attributes, precedence and associativity

Semantic processing techniques, attribute grammars

Data types and type checking.

Intermediate code generation, translating expressions, control structures, etc.

Flex and Bison

Flex manual page

Flex program for windows

Bison manual page

Bison program for windows

Exams

Midterm Exam: Saturday, April 13, at 1 pm, Room 210 FLAC

Final Exam: Thursday, May 30, at 12 noon, Room 208 FLAC

Written Assignments

1: Scanning Theory

2: Context Free Grammars

3: LL Parsing

4: LR Parsing

Mini-Projects

1: Scanner Generation with Lex

Sample test file for lex

2: Recursive Descent Parsing

Sample test file for recursive descent parser

Grading scheme for recursive descent parser

3: Yacc assignment, Translation into 3-address code

Sample Exams

Midterm Exam, Spring 1999

Final Exam, Spring 1999

Grading

Written assignments and quizzes: 15%

Programming assignments: 30%

Midterm Exam: 20% or 25%

Final Exam : 35% or 30%

[Home] [Teaching]

Last Updated: June 2002,  by Dr. Muhamed Mudawar