You are on page 1of 17

Compiler Design

CSE-402 Compiler Design

• Course conducted by
– Lafifa Jamal
– Email: lafifa@univdhaka.edu

• Lecture Schedule
– Monday 9:00 – 9:50 AM
– Tuesday 9:00 – 9:50 AM
– Wednesday 9:00 – 9:50 AM

• Lab Schedule
– Sunday 2:00 – 5:00 PM
Grading Policy

• 70% - Final Examination


• 20% - Incourse Examination
• 5% - Assignment & Surprise quizzes
• 5% - Attendance

• No students will be allowed to sit for final


examination if he/she has less than 60%
attendance
Surprise Quizzes

• There will be surprise quizzes, given at the start of a


lecture, during any lecture.

• NO LATE or MAKEUP SURPRISE QUIZZES, under


any circumstances whatsoever.

• Surprise quizzes are completely individual efforts.

• Your best strategy is to play it safe – attend every


lecture.
Assignments

• Assignments need to be typed up, with the


exception that figures and tables may be drawn by
hand. I will not accept hand-written solutions. You
may use any of your favorite word processor --
Word, latex, or any other.

• Assignments are completely individual efforts.


– If two written solutions are the same or similar, both
will be penalized (100% penalty for the entire
assignment). 
– If a written solution is similar or same as an online or
other solution resource, you will be penalized (100%
penalty for the entire assignment).
Playing it safe in CSE-4

If you follow these 4 simple rules during the class,


you'll make sure that you do well in the course:

1. Attend every lecture.

2. Read the course material (textbook sections


assigned + slides).

3. Submit everything (Assignments, Quizzes, Exams)


on time - don't be late.

4. Don't cheat.
Incourse Exams (Tentative Schedule)

• Incourse – 1 (on 16th class)

• Incourse – 2 (on 32nd class)

• Incourse – 3 (on 48th class)

• You will get the average marks of best two exams.

• If you fail to attend any exam you will get 0 (zero) on that
exam.

• No makeup exams unless with documented medical


emergency.
Timing of a Disk I/O Transfer

8
Pre-requisite courses

• Strong programming background in C, C++ or Java

• Some background on Automata Theory (NFA, DFA,


CFG) is recommended…… ……not mandatory

• Assembly Language Programming and Machine


Architecture
Recommended Books

Aho, Sethi, Ullman:


Compilers: Principles, Techniques and Tools.

Aho et al. is excellent in the theoretical background and


will be followed closely.
Recommended Books

Aho, Lam, Sethi, Ullman:


Compilers: Principles, Techniques, and Tools (2nd
Edition).
Other Books

Allen I. Holub: Compiler Design in C


Prentice Hall
Other Books

Andrew W. Appel and Jens
Modern Compiler Implementation in Java
What is this course about?

1. Let us say you write a program in your favorite


language.
vi hello.c

2. Compile it.
gcc hello.c

3. You get an executable.


a.out

What happens between steps 2 and 3?


Course Objective

• To learn the process of translating a modern high-


level language to executable code.
– Learn the fundamental techniques from lectures, text
book.
– Apply these techniques in practice to construct a
compiler for toy programming language.
The Course covers

• Lexical Analysis
• Syntax Analysis
• Semantic Analysis
• Runtime environments
• Code Generation
• Code Optimization
Question? Query?

You might also like