0% found this document useful (0 votes)
14 views4 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 PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views4 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 PDF, TXT or read online on Scribd
You are on page 1/ 4

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 ACTIVITY


Outcome

WEEK 1 Introduction to compiler • Introduction • Class lecture


construction
• History of • Class discussion
compilers

WEEK 2 Compiler organization • Structure of a • Class lecture


and implementation compiler
• Class discussion
• Compilers and
interpreters

WEEK 3 Formal description of • Lexical analysis • Class lecture


programming languages
• Syntax analysis • Class discussion

WEEK 4 Structure of a lex Program • Declaration • Class lecture


• Rule selection • Class discussion
• Procedure

WEEK 5 CAT 1 / ASSIGNMENT 1

WEEK 6 Error handling • Syntax error • Class lecture


handling
• Class discussion
• Error-handling
strategies

WEEK 7 Syntax directed • One-pass versus • Class lecture


translation multi-pass
• Class discussion
compilers
• Compiler
correctness

WEEK 8 Compiler Design • Front-end • Class lecture


• Back-end • Class discussion
WEEK 9 Programming language • Syntax • Class lecture
constructs
• Semantics • Class discussion

WEEK 10 CAT 2/ ASSIGNMENT 2

WEEK 11 Optimization techniques • Source language • Class lecture


• IR • Class discussion
representation
• Code generation

WEEK 12 • Design of simple • Sample • Class lecture


complete compiler programs
• Class discussion

WEEK13 -15 • Student project • Student • Project


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

You might also like