Compiler Construction -CS 403- Lecture 0 Rana Atef Tarabishi College of Computer Science and Engineering Taibah University S2, 2016
Compiler Construction-CS 403-
Lecture 0
Rana Atef Tarabishi
College of Computer Science and Engineering
Taibah University
S2, 2016
Outline
• Important Information
• Lecture Protocol
• Subject Overview• General Overview
• Course Objectives
• Studying Materials
• Assessment
• Assignments Policies
• Syllabus
Important Information
• Lecturer: • Name: Rana Atef Tarabishi• Office: ????• Office hours: will be assign next week• Email: [email protected]• Website: http://www.rana-tarabishi.com
• Important messages, Lectures notes, Assignment description … etc, will be displayed on the subject home page (on the previous website)
• Consultations:• I will receive all of your inquiry by email, office hours or in the lecture time.
• You should check the website one day before the lecture time (it is a good idea to check it early morning at the same day of the lecture time)
Lecture Protocol
• You have to shut down or silence your mobile phone
• You can go out for necessary situations
• Speaking, eating or drinking are not allowed in the lecture (except water of course )
• You should be in the lecture on time
• 4 times late, will be considered as one absence
• You will fail in this course if you not attend 75% or more.
Overview
• Prerequisite: Programming 2, Computation Theory
• Covers the fundamental principles in programming languages and implementation techniques for compilers
• Course Description: This course describes the theory behind compiler construction and shows how to build compilers and interpreters. The main aspects covered in this course include language and compiler design issues, lexical analysis, syntactic analyzer, symbol tables, code generation, and optimization techniques.
Course Objectives
• Having successfully completed this course, you will be able to:
• Gain fundamentals and principles of compilers.
• Distinguish between different types of compilers.
• Explore different approaches in developing compilers.
Studying Materials
• Textbook:
A. Aho, R. Sethi, J. Ullman, "Compilers : Principles, Techniques, and Tools", 2nd ed., Prentice Hall, 2006. (or later ed.)
• Lecture notes + tutorial questions and solutions + assignment specifications should be sufficient
• Reading: suggested in the lecture notes each weekhttp://www.rana-tarabishi.com
Assessment
Component Marks Date
Mid exam I 20 Week 8: Sunday 26/5/1437 (6/3/2016)
Mid-semester break Teaching-FreeWeek 9: Between 1/6/1437 (10 March)
and 11/6/1437 (20 March)
Mid exam II 20 Week 15: Sunday 17/7/1437 (24/4/2016)
Assignments4 assignments: 12
1 Programming assignment: 5Will be announced on the lecture time and
on the website
Attendance and Participation 3 All Lectures
Final exam 40Between 8/8/1437 (15 May)
and 18/8/1437 (25 May)
Assignments Policies
• All assignments are individual
• Illegal collaborations are not allowed
• Class discussions is a useful way to discuss the assignments
• Penalties will be applied to plagiarism and late assignments
• No subjective marking
Syllabus
Topics Covered (course contents selected from):
1. Overview of programming languages
2. Programming language design issues
3. Language translation: compilers and interpreters
4. Translation phases
5. Lexical analysis
6. Syntactic analysis
7. Declaration models and data types
8. Execution control
9. Storage management
10. Code generation
11. Optimization
12. Virtual machines
- Student presentations on important topics/articles
What is a Compiler?
• Recognise programs
• Generate correct code
• Open-source compilers:• C/C++: GNU, LLVM, Open64
• Java: Maxine, Jalapeno
• Javascript: Google’s Closure