0% found this document useful (0 votes)
28 views8 pages

SPC 2301 - Course Outline

Uploaded by

Eddy Makoyo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as XLSX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views8 pages

SPC 2301 - Course Outline

Uploaded by

Eddy Makoyo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as XLSX, PDF, TXT or read online on Scribd
You are on page 1/ 8

KIRINYAGA UNIVERSITY SCHOOL OF PURE AND APPLIED SCIENCES

BACHELOR OF SCIENCE COMPUTER SCIENCE Y3 S1 SPC 2301 COMPILER


CONSTRUCTION
COURSE OUTLINE

Lecturer: Dr. Victor Mageto Email: [email protected] Tel: 0751376963

Unit Code: SPC 2301


Contact hours: 45 Lecture Hours
Prerequisite: SPC 2210 Automata Theory & Languages

COURSE PURPOSE
The purpose of this course is to equip the learners with the knowledge and concepts of Compiler design
and operations. Compilers and interpreters are very widely used. Every programmer uses these
tools to execute programs written in high level languages. More importantly, every programmer
writes an interpreter whenever he has to design a new software tool and a compiler whenever he has to
connect two existing software tools. The latter is often the first task a programmer gets
assigned when joining a company. Compiler technology is also a core technology for cyber security and
embedded systems.

LEARNING OUTCOMES
The learner should be able to:
i. Appreciate the importance of Compilers in programming languages development.
ii. Demonstrate an understanding of compiler design, organization and implementation
iii. Demonstrate an understanding of programming languages constraints.
iv. Appreciate the importance of syntax directed translation and code optimization

COURSE DESCRIPTION
Formal description of programming languages, lexical analysis, syntax analysis, semantic analysis, symbol
tables and memory allocation and code generation. Compiler

organization and implementation. Programming language constructs their syntax and semantics.
Syntax directed translation, code optimization. Run-time organization of programming languages.
Students undertake a semester project that includes the design
and implementation of a compiler for a language chosen by the instructor.
WEEK TOPIC Intended Learning
Outcome

WEEK 1 Introduction to compiler  Introduction


construction  History of
compilers

WEEK 2 Compiler organization and  Structure of a compiler


implementation  Compilers and
interpreters

WEEK 3 Formal description of  Lexical analysis


programming languages  Syntax analysis

WEEK 4 Structure of a lex Program  Declaration


 Rule selection
 Procedure

WEEK 5 CAT 1 / ASSIGNMENT 1

WEEK 6 Error handling  Syntax error handling


 Error-handling
strategies

WEEK 7 Syntax directed translation  One-pass versus


multi-pass compilers
 Compiler correctness

WEEK 8 Compiler Design  Front-end


 Back-end

WEEK 9 Programming language  Syntax


constructs  Semantics

WEEK 10 CAT 2/ ASSIGNMENT 2


WEEK 11 Optimization techniques  Source language
 IR representation
 Code generation

WEEK 12  Design of simple  Sample programs


complete compiler

WEEK13 -15  Student project  Student undertake


project on
compiler construction

TEACHING METHODOLOGY
The course will be conducted using lectures, group discussions, student presentations and laboratory
practical.
INSTRUCTIONAL MATERIALS
The course delivery requires computers, projector, internet services, overhead projector and LCD,
whiteboard and whiteboard marker, journals, visual aids, flip charts and learning centers

COURSE ASSESSMENT
Type Weighting (%)
Cats, assignments and practical = 30% Final written Examination = 70 %
Total = 100 %

COURSE TEXTBOOKS
1. Mano, Computer system architecture. ISBN 0:13-175738-5 Prentice Hall

REFERENCE TEXTBOOKS
1. Alfred V. Aho, Monica S. Lam, Ravi Sethi, & Jeffrey D. Ullman. Addison Wesley, Boston. Compilers:
Principles, Techniques, and Tools (2nd Edition) MA, 2006. ISBN 0-321-48681-1.
2. J. Hopcroft, R. Motwani, and J. Ullman. Introduction to Automata Theory, Languages, and
Computation, 3rd edition, 2006, Addison-Wesley. 978- 8921607643
3. Introduction to Theory of Computation –Sipser 2nd edition Thomson 978- 4525607643
COURSE JOURNALS
1. Journal of Automata, Languages and Combinatorics ISSN: 1430-189X. Current Issue Volume 14 Issue 3
(June 2009). ISSN 8000-9060
2. International Journal of Computational Intelligence and Applications ISSN (print): 1875- 6891/
ISSN (on-line): 1875-6883.
3. Journal of computer science and Technology ISSN 1000-9000

REFERENCE JOURNALS
1. Journal of Symbolic Computation ISSN. 0747-7171.
2. Logical Methods in Computer Science ISSN 1860-5974.
3. Journal of Science and Technology ISSN 1860-4749
ND APPLIED SCIENCES
S1 SPC 2301 COMPILER

dge and concepts of Compiler design


d. Every programmer uses these
importantly, every programmer
ol and a compiler whenever he has to
first task a programmer gets
e technology for cyber security and

mming languages development.


ganization and implementation
nstraints.
code optimization

ax analysis, semantic analysis, symbol


r

ucts their syntax and semantics.


ation of programming languages.

ructor.
ACTIVITY

 Class lecture
 Class discussion

 Class lecture
 Class discussion

 Class lecture
 Class discussion

 Class lecture
 Class discussion

ENT 1

 Class lecture
 Class discussion

 Class lecture
 Class discussion

 Class lecture
 Class discussion

 Class lecture
 Class discussion

NT 2
 Class lecture
 Class discussion

 Class lecture
 Class discussion

 Project

student presentations and laboratory

s, overhead projector and LCD,


harts and learning centers

on = 70 %

ice Hall

n. Addison Wesley, Boston. Compilers:


0-321-48681-1.
mata Theory, Languages, and
7643
Thomson 978- 4525607643
189X. Current Issue Volume 14 Issue 3

cations ISSN (print): 1875- 6891/

You might also like