Compiler Design
Free
-
Index
- System Programming and Compiler Design Introduction
- Phases of compiler
- Basic Concept of Parser and Parse Tree
- Eliminate left recursion and left factoring
- How to Find First and Follow Basics (part 1)
- First and Follow solved example (part 2)
- First and Follow solved example (Part 3)
- Predictive Parser (Part 1)
- Predictive Parser (Part 2)
- Recursive Descent parser with solved example
- Operator Precedence Parser with Solved Example(part 1)
- Operator Precedence Parser with Solved Example (part 2)
- LR Parsing | LR (0) item | LR (0) Parsing table solved Example
- SLR (1) parsing with solved example| SLR (1) parsing table |
- Examples of LR(0) or SLR(1)
- CLR1 and LALR1 with Solved Example
- DAG(direct a cyclic graph)
- Yacc (Yet another compiler compiler )
- Activation Records in Compiler Design
- Synthesized & Inherited Attributes
- Peep Hole Optimization
-
Notes
Compiler Design
Prerequisite for studying this subject are Data Structures, Theoretical computer science, Operating system. Computer Organization and Architecture, Microprocessor. Course Objectives of the subject Compiler Design are to understand the role and functioning of various system programs over application program.
To understand basic concepts and designing of assembler, Macro processor and role of static and dynamic loaders and linkers. To understand the need to follow the syntax in writing an application program and to learn the how the analysis phase of compiler is designed to understand the programmer‘s requirements without ambiguity. To synthesize the analysis phase outcomes to produce the object code that is efficient in terms of space and execution time. Course Outcomes of the subject System Programming and Compiler Construction are on successful completion of course learner will be able to identify the relevance of different system programs. Describe the various data structures and passes of assembler design. Identify the need for different features and designing of macros. Distinguish different loaders and linkers and their contribution in developing efficient user applications. Construct different parsers for given context free grammars. Justify the need synthesis phase to produce object code optimized in terms of high execution speed and less memory usage.
A system programming language is a programming language used for system programming; such languages are designed for writing system software, which usually requires different development approaches when compared with application software. Edsger Dijkstra refers to these language as Machine Oriented High Order Languages, or mohol. General-purpose programming languages tend to focus on generic features to allow programs written in the language to use the same code on different platforms. Examples of such languages include ALGOL and Pascal. This generic quality typically comes at the cost of denying direct access to the machine’s internal workings, and this often has negative effects on performance. In computing, a compiler is a computer program that translates computer code written in one programming language (the source language) into another language (the target language). The name “compiler” is primarily used for programs that translate source code from a high-level programming language to a lower level language (e.g., assembly language, object code, or machine code) to create an executable program.
Module Introduction to System Software consists of the following subtopics such as Concept of System Software, Goals of system softwares, system program and system programming, Introduction to various system programs such as Assembler, Macro processor, Loader, Linker, Compiler, Interpreter, Device Drivers, Operating system, Editors, Debuggers. Module Assemblers consists of the following subtopics such as Elements of Assembly Language programming, Assembly scheme, pass structure of assembler, Assembler Design: Two pass assembler Design and single pass Assembler Design for Hypothetical / X86 family processor, data structures used. Module Macros and Macro Processor consists of the following subtopics such as Introduction, Macro definition and call, Features of Macro facility: Simple, parameterized, conditional and nested. Design of single pass macro processor, data structures used. Module Loaders and Linkers consists of the following subtopics such as Introduction, functions of loaders, Relocation and Linking concept, Different loading schemes: Relocating loader, Direct Linking Loader, Dynamic linking and loading. Module Compilers: Analysis Phase consists of the following subtopics such as Introduction to compilers, Phases of compilers: Lexical Analysis- Role of Finite State Automata in Lexical Analysis, Design of Lexical analyser, data structures used . Syntax Analysis- Role of Context Free Grammar in Syntax analysis, Types of Parsers: Top down parser- LL(1), Bottom up parser- Operator precedence parser, SLR Semantic Analysis, Syntax directed definitions. Module Compilers: Synthesis phase consists of the following subtopics such as Intermediate Code Generation: Types of Intermediate codes: Syntax tree, Postfix notation, Three address codes: Triples and Quadruples. Code Optimization: Need and sources of optimization, Code optimization techniques: Machine Dependent and Machine Independent. Code Generation: Issues in the design of code generator, code generation algorithm. Basic block and flow graph.
Prepare For Your Placements: https://lastmomenttuitions.com/courses/placement-preparation/
/ Youtube Channel: https://www.youtube.com/channel/UCGFNZxMqKLsqWERX_N2f08Q
Follow For Latest Updates, Study Tips & More Content!
Course Features
- Lectures 22
- Quizzes 0
- Duration 50 hours
- Skill level All levels
- Language English
- Students 377
- Certificate No
- Assessments Yes
1 Comment
Thanks