Introduction To Compiler
Course Code: CSC 3220 Course Title: Compiler Design
Dept. of Computer Science
Faculty of Science and Technology
Lecturer No: Week No: 1 Semester: Summer
Lecturer: Md Masum Billah; [Link]@[Link]
[Link]
Introduction of Lecturer
[Link]. in Computer Engineering
Major: Embedded Systems
University of Duisburg-Essen, Germany
[Link]. in Computer Science & Engineering
University of Chittagong
Research Interest
IoT
Machine Learning
Data Science
Deep Learning
Contact
Official Email: [Link]@[Link]
Personal Email: [Link]@[Link]
Personal Website: [Link]
Facebook: [Link]
LinkedIn: billahmasumcu
Contact: +8801646677086
Lecture Outline
1. Vision, Mission, Quality Policy, and Goals of AIUB
2. Vision and Mission of Computer Science Department
3. Course Evaluation
4. Objective of this Course
5. Basic things of a Compiler
6. Language Processors
Vision
AMERICAN INTERNATIONAL UNIVERSITY-BANGLADESH (AIUB)
envisions promoting professionals and excellent leadership
catering to the technological progress and development needs of
the country.
Mission
AMERICAN INTERNATIONAL UNIVERSITY-BANGLADESH (AIUB) is
committed to provide quality and excellent computer-based
academic programs responsive to the emerging challenges of the
time. It is dedicated to nurture and produce competent world class
professional imbued with strong sense of ethical values ready to
face the competitive world of arts, business, science, social science
and technology.
Quality Policy
“Quality shall be adhered to in conformity with the prescribed national and
international standards of quality and excellence including those provided by
the professional bodies and organizations. The American International
University- Bangladesh is committed to translate into actions the programs,
projects and activities related to the sustainable delivery of quality management
operation system. The students being the valued customers are the central
focus of the university shall be provided with utmost care and attention to meet
their primordial needs and future career success. In view of this commitment,
the university shall exert best efforts to harmonize its action through
collaboration, cooperation and consultation with every unit and components of
the university.”
Goals
Sustain development and progress of the university
Continue to upgrade educational services and facilities responsive
of the demands for change and needs of the society
Inculcate professional culture among management, faculty and
personnel in the attainment of the institution's vision, mission and goals
Enhance research consciousness in discovering new dimensions for
curriculum development and enrichment
Implement meaningful and relevant community outreach programs
reflective of the available resources and expertise of the university
Establish strong networking of programs, sharing of resources and expertise
with local and international educational institutions and organizations
Accelerate the participation of alumni, students and professionals in the
implementation of educational programs and development of projects
designed to expand and improve global academic standards
Vision of Computer Science
Department
Our vision is to be the preeminent Department of Computer Science through
creating recognized professionals who will provide innovative solutions by
leveraging contemporary research methods and development techniques of
computing that is in line with the national and global context.
Mission of Computer Science
Department
The mission of the Department of Computer Science of AIUB is to educate
students in a student-centric dynamic learning environment; to provide
advanced facilities for conducting innovative research and development to meet
the challenges of the modern era of computing, and to motivate them towards
a life-long learning process.
Course Evaluation
Mid-Term Evaluation
Attendance : 10%
Quizzes : 30%
Lab Performance : 20%
Term Exam : 40%
Course Evaluation
Final Term Evaluation
Attendance : 10%
Quizzes : 30%
Lab performance : 20%
Final Term : 40%
Grand Final = 40% of Midterm + 60% of Final Term
Objectives and Outcomes
Objectives:
Understand the objective of this Course
Understand the basic concept of a compiler
Outcomes:
Students should be able to understand the importance of a compiler
Students will analyze the language Processors.
Basic things of a Compiler
1. What is a Compiler?
2. Why do we need a compiler?
3. Why study compilers?
Basic things of a Compiler
Compilers Construction touches many topics in
Computer Science
1. Theory
Finite State Automata, Grammars and Parsing, data-flow
2. Algorithms
Graph manipulation, dynamic programming
3. Data structures
Symbol tables, abstract syntax trees
4. Software Engineering
Software development environments, debugging
5. Artificial Intelligence
Heuristic based search
Language processors
Some common language processors are:
1. Compiler
2. Interpreter
3. Preprocessor
4. Assembler
Compiler
A compiler is a program that reads a program written in one language and
translates it into another language.
Example
Interpreter
An interpreter is another common kind of language processor. Instead of
producing a target program as a translation, an interpreter appears to
directly execute the operations specified in the source program on inputs
supplied by the user.
Source
Program
Interpreter
Preprocessor
Preprocessing performs (usually simple) operations on the source file(s)
prior to compilation.
Assembler
An Assembler is a translator that translates Assembly language to machine
code. So, an assembler is a type of a compiler and the source code is written
in Assembly language.
Assembly
Program Assembler
Differences between Compiler and Interpreter
Compiler Interpreter
Compiler takes whole program as Interpreter takes single
input. instruction as input.
Intermediate Object code is No Intermediate Object Code is
generated. Generated
Memory Requirement: More Memory Requirement is Less
Program need not be compiled every Every time higher level program
time . Is converted into lower level
program.
Lecture References
A. Aho, R. Sethi and J. Ullman, Compilers: Principles, Techniques and Tools
(The Dragon Book), [ Second Edition]
References
1. A. Aho, R. Sethi and J. Ullman, Compilers: Principles, Techniques and
Tools(The Dragon Book), [ Second Edition]
2. Principles of Compiler Design (2nd Revised Edition 2009) A. A.
Puntambekar
3. Basics of Compiler Design Torben Mogensen