Friday, September 9, 2011

Compiler Construction and Design (CSC-352)


Tribhuvan University
Institute of Science and Technology
BSc. CSIT Sixth Sem: CSC-352 Complier Design and Construction

Course Title: Complier Design and Construction
Course no: CSC-352                                                             Full Marks: 60+20+20
Credit hours: 3                                                                      Pass Marks: 24+8+8
Nature of course: Theory (3 Hrs.) + Lab (3 Hrs.)
Course Synopsis: Analysis of source program. The phases of compiler.
Goal:   This course introduces fundamental concept of compiler and its different phases.

Course Contents:

Unit. 1:                                                                                                           6 Hrs.

1.1  Introduction to compiling: Compilers, Analysis of source program, the phases of compiler, compiler-construction tools.
1.2  A Simple One-Pass Compiler:  Syntax Definition, Syntax directed translation, Parsing, Translator for simple expression, Symbol Table, Abstract Stack Machines.

Unit 2:                                                                                                            19 Hrs.

2.1  Lexical Analysis: The role of the lexical analyzer, Input buffering, Specification of tokens, Recognition of tokens, Finite Automata, Regular Expression to an NFA, Design of a lexical analyzer generator
2.2  Syntax Analysis: The role of parser, Context free grammars, Writing a grammars, Top-down parsing, Bottom-up parsing, Operator-preceding parsing, LR parsing, Ambiguous grammar.
2.3  Syntax Directed Translation: Syntax-directed definition, Syntax tree and its construction, Evaluation of S-attributed definitions, L-attributed, Top-down translation, Recursive evaluators.
2.4  Type Checking: Type systems, Specification of a simple type checker, Type conversions.

Unit 3:                                                                                                            13 Hrs.
Hrs.H
3.1  Intermediate Code Generation: Intermediate languages, Declarations, Assignments Statements, Boolean Expressions, Back patching.
3.2  Code Generator: Issues in design of a code generator, the target machine, Run –time storage management, Basic blocks and flow graphs, a simple code generator, Peephole organization, Generating code from dags, Dynamic programming code-generation algorithm, Code-generator generators.
3.3  Code Optimization: The principal sources of optimization, Optimization of basic blocks, loops in flow graphs.

Unit 4:                                                                                                           7 Hrs.

4.1  Writing a Compilers: Planning a compiler, Approaches to compiler development, the compiler development environment, Testing and Maintenance.
4.2  Comparing some compliers: Pascal Complier, C compiler, C++ complier.

Laboratory works:   

1    Writing a complier, optimization techniques, comparing the compilers.
2.   Construction of Lexical Analyser.
3.   Construction of Parser
4.   Development of Code Generator
5.   Write a code to show the function of symbol table.
6.   Implement the parsing techniques.
7.   Show the application of different types of grammar.
8.   Implement the lexical analyzer generator.
9.   Implement the type conversation.
10. The course instructor is allowed to create a group two students.
      a.   Assign them to write a small compiler.


Text Books:  Compilers, Principles, Techniques, and Tools, Pearson education Asia.
Reference:                 

Homework
Assignment: Assignment should be given from the above units in throughout the semester.

Computer Usage:      No specific

Prerequisite:              C, C++, Data Structure, Automata Theory

Category Content:    Science Aspect:           25%
                                    Design Aspect:            75%

2 comments:

  1. Better Regularly updating the syllabus and mentioning the latest date of update...

    ReplyDelete

  2. Transparency is the key in business and human dealings, i got (wizardcyprushacker@gmail.com) email, on here thinking that he was one of these fakers but to my surprise he turned out to be the realest i have ever met, i hired him for two different jobs and he did both perfectly. If you are still contacting unethical and fake hackers then you will be a clown after seing me drop this comment about a true hacker..Goodbye……

    ReplyDelete