Compiler Construction · This course describes the theory behind compiler construction and shows...

13
Compiler Construction -CS 403- Lecture 0 Rana Atef Tarabishi College of Computer Science and Engineering Taibah University S2, 2016

Transcript of Compiler Construction · This course describes the theory behind compiler construction and shows...

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

Compiler Construction

Understanding how to specify the syntax and semantics of a language

Any Question

???