CS606 Course Outline
This course introduces you to the fundamentals of system programming with a strong emphasis on the Windows operating system from Microsoft. You can develop programs for 32- and 64-bit architectures using Microsoft Windows’ available APIs.
The handling of files, memory, errors and exceptions, heaps, Dynamic Link Libraries (DLLs), processes threads, and various synchronization mechanisms by Microsoft Windows will be covered in this course.
Topics covered in this course are Passes of a Compiler, Lexical Analysis, Specification of Tokens, Recognition of Tokens, NFA To DFA, DFA State Minimization, Lex, Lex, Parsing, CFG, Derivations, Ambiguity, Precedence, Top-down Parsing, Predictive Parsing, Recursive Descent Parsing, LL Parsing Table Construction, Left Factoring, Bottom-up Parsing, Shift-Reduce Parsing, LR(1) Canonical Collection of Items, LR(1) Parsing Table Construction and Shift-Reduce Conflicts, LALR Parsing, Parser Generators – YACC, Semantic Analysis, Attribute Grammars, Ad-hoc scheme for attribute grammars, Ad-hoc scheme, Intermediate Representation (IR) and Intermediate Representation taxonomy.
It also covers Syntax-directed translation: assignment statement, Syntax-directed translation: control flow statement, Syntax-directed translation: Boolean expression, Syntax-directed translation: back patching, type checking, Code Generation: Basic Blocks, Code Generation: Register Allocation, Code Optimization, and Pre-Assessment, etc.
However, because this is a basic course, we will focus most of our time on syntax analysis and code development. We’ll talk about optimization briefly. The course gives students a hands-on chance to understand how concepts and techniques from diverse fields of computer science may be combined to create a useful application.
CS606 Course Learning Outcomes
You ought to be capable of it after the course is over.
- Computer language translation and interpretation,
- Compilers’ foundational theory.
- Analyze the difficulties of putting a compiler in place.
- Improved understanding of how a compiler operates
- For every language, create parsers and compilers.
CS606 handouts are available on the link CS606 Handouts
CS606 Past Papers
CS606 Midterm Past Papers
CS606 midterm past papers are available on CS606 Midterm Past Papers
CS606 Final Term Past Papers
CS606 final term past papers are available on CS606 Final Term Past Papers
CS606 Assignment 1 Solution
CS606 Assignment 2 Solution
CS606 assignment 2 will be available soon.
Course Learning Outcome
You should be able to after the course to:
- Computer language translation and interpretation
- The fundamental theory of compilers.
- Examine the challenges involved in the implementation of a compiler.
- Improved understanding of how a compiler works
- Create parsers and compilers for any programming language.
Join us for more updates: Telegram Link
You can also view other handouts too:
Apart from handouts, you can also view past papers here: