SPC 2301 - Course Outline
SPC 2301 - Course Outline
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.
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%
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