[vc_row el_class=”inner-body-content” css=”.vc_custom_1667211104214{padding-top: 30px !important;padding-bottom: 20px !important;}”][vc_column][vc_custom_heading text=”COURSE OBJECTIVES” use_theme_fonts=”yes” css=”.vc_custom_1667211089942{margin-top: 0px !important;}”][vc_column_text]Differentiate between different levels of programming languages. Understand the role of front-end and back-end of a compiler. Recognize different types of grammars. Understand and define grammars in BNF, syntax diagrams, regular expressions. Define tokens using the notation of regular expressions. Convert regular expressions into finite automata. Implement a lexical analyser. Define a programming language syntax using a CFG. Construct a parse tree for a given program. Differentiate between top-down and bottom-up parsing strategies. Understand LL (k) and LR (k) grammars. Write a top-down parser using recursive-descent and LL (1) parsing methods. Understand simple-precedence, operator precedence and SLR parsing methods. Understand semantic analysis (type checking, scope checking etc.) Understand various types of runtime environments. Understand code generation techniques. Understand code optimization techniques.[/vc_column_text][vc_custom_heading text=”COURSE LEARNING OUTCOMES (CLO)” font_container=”tag:h3|text_align:left” use_theme_fonts=”yes”][vc_column_text]CLO: 1. Describe the architecture of a compiler, and function of its components. (C1-Knowledge)
CLO: 2. Choose and apply appropriate formal notations to define a programming language. (C3-Application)
CLO: 3. Design and implement lexical and syntax analyzers by using various algorithms. (C3-Application)
CLO: 4. Select and use appropriate code generation and optimization techniques. (C4-Analysis)
[/vc_column_text][vc_custom_heading text=”COURSE CONTENTS” use_theme_fonts=”yes”][vc_column_text css=”.vc_custom_1667211075507{margin-bottom: 0px !important;}”]
- High level languages and translators
- Phases of the compilation process
- Syntax and semantic specification of a language
- Chomsky’s hierarchy of grammars
- Design and implementation of a lexical analyzer
- Top-down and bottom-up parsing strategies
- Ambiguous Grammars
- LL(k) and LR(k) grammars
- Recursive-descent and LL(1) parsing
- Left factoring and left recursion removal
- Simple precedence, SLR and LALR parsing
- Semantic Analysis, Attributed grammars
- Code generation from annotated parse tree
- Code optimization
[/vc_column_text][/vc_column][/vc_row]