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

Compiler Construction · This course describes the theory behind compiler construction and shows how to build compilers and interpreters. The main aspects covered in this course include

Jun 20, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Compiler Construction · This course describes the theory behind compiler construction and shows how to build compilers and interpreters. The main aspects covered in this course include

Compiler Construction-CS 403-

Lecture 0

Rana Atef Tarabishi

College of Computer Science and Engineering

Taibah University

S2, 2016

Page 2: Compiler Construction · This course describes the theory behind compiler construction and shows how to build compilers and interpreters. The main aspects covered in this course include

Outline

• Important Information

• Lecture Protocol

• Subject Overview• General Overview

• Course Objectives

• Studying Materials

• Assessment

• Assignments Policies

• Syllabus

Page 3: Compiler Construction · This course describes the theory behind compiler construction and shows how to build compilers and interpreters. The main aspects covered in this course include

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)

Page 4: Compiler Construction · This course describes the theory behind compiler construction and shows how to build compilers and interpreters. The main aspects covered in this course include

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.

Page 5: Compiler Construction · This course describes the theory behind compiler construction and shows how to build compilers and interpreters. The main aspects covered in this course include

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.

Page 6: Compiler Construction · This course describes the theory behind compiler construction and shows how to build compilers and interpreters. The main aspects covered in this course include

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.

Page 7: Compiler Construction · This course describes the theory behind compiler construction and shows how to build compilers and interpreters. The main aspects covered in this course include

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

Page 8: Compiler Construction · This course describes the theory behind compiler construction and shows how to build compilers and interpreters. The main aspects covered in this course include

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)

Page 9: Compiler Construction · This course describes the theory behind compiler construction and shows how to build compilers and interpreters. The main aspects covered in this course include

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

Page 10: Compiler Construction · This course describes the theory behind compiler construction and shows how to build compilers and interpreters. The main aspects covered in this course include

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

Page 11: Compiler Construction · This course describes the theory behind compiler construction and shows how to build compilers and interpreters. The main aspects covered in this course include

What is a Compiler?

• Recognise programs

• Generate correct code

• Open-source compilers:• C/C++: GNU, LLVM, Open64

• Java: Maxine, Jalapeno

• Javascript: Google’s Closure

Page 12: Compiler Construction · This course describes the theory behind compiler construction and shows how to build compilers and interpreters. The main aspects covered in this course include

Compiler Construction

Understanding how to specify the syntax and semantics of a language

Page 13: Compiler Construction · This course describes the theory behind compiler construction and shows how to build compilers and interpreters. The main aspects covered in this course include

Any Question

???