PSD1C SYSTEM SOFTWAE UNIT: I - V PSD1C SYSTEM SOFTWARE

Size: px
Start display at page:

Download "PSD1C SYSTEM SOFTWAE UNIT: I - V PSD1C SYSTEM SOFTWARE"

Transcription

1 PSD1C SYSTEM SOFTWAE UNIT: I - V 1

2 Syllabus Unit-I Language Processors Types of Language Processors Language Processing Activities Fundamentals of Language Processing Language Specification Data Structures for Language Processing Scanners Parsers 2

3 Language Processor A language processor is a software which bridges a specification or execution gap. 3

4 Types of Language Processor 4

5 Language Processor Activities 5

6 Fundamentals of Language Processor 6

7 Fundamentals of Language Processor Analysis Phase and Synthesis Phase 7

8 Language Specification 8

9 Data Structures for Language Processing Types: Linear : Example : Array, Stack Non-Linear: Example: Tree, Graph Based on Operations: Search data structures Hashing functions Linked list and tree structures Allocation data structures Stacks Heaps 9

10 Search Data Structures Entry Format: Types of operations: 1. Add: Add the entry of a symbol. 2. Search: Search and locate entry of a symbol. 3. Delete: Delete the entry of a symbol. 10

11 Allocation Data Structures Stacks: Allocation & De allocation performed based on LIFO. Only last entry is accessible at any time. A pointer Stack Base(BS) points to starting location of a stack. A pointer Top of Stack(TOS) points to last location of the stack. Allocation PUSH, De allocation POP and Length is denote by l. Heaps: A non-linear data structure which permits random order processing. Memory management: Due to repetition of allocation and deallocation of memory area holes are created in memory area. It increases performance and speed of allocation and deallocation of memory spaces. Two popular techniques are :- Reference counts Garbage Collection 11

12 Scanner Finite State Automation(FSA) is a triple(s, Σ, T): S Set of finite states. One as initial and one other as final states. Σ Set of alphabets or source symbols. T Set of state transitions. Example: d Start d Int 12

13 Parsers Abstract Syntax Tree Vs. Parse Tree 13

14 Types of Parsing 14

15 Syllabus Unit - II Elements of Assembly Language programming Overview of the Assembly process Design of a Two-pass assembler Advanced Assembler Directives A single pass assembler for IBM-PC 15

16 Assemblers Machine dependent, low level programming language. Basic Features: Mnemonic operation codes. Symbolic operands(data / Instruction) Data declarations.(any notations like binary, decimal, etc) Statement Format: [Label] <Opcode> <operand spec>[,<operand spec>..] 16

17 Overview of Assembly process In this language each statement has two operands. The first operand is always is always a register which can be any one of AREG, BREG, CREG, DREG. The second operand refers to a memory word using a symbolic name and an optional displacement. Example: MOVER <operand1> <operand2> Operand1 denotes target operand. Operand 2 denotes source operand. 17

18 Assembly language Statements Imperative statements: Indicates an action to be performed. Translates into one machine instruction. Declaration statements: Syntax: [Label] DS <constant> : Ex: A DS 1.(Storage) [Label] DC <value> : Ex: ONE DC 1.(Constant) Assembler directives: Indicates to perform certain actions. Example: START, END 18

19 Design Specification 1. Identify the information necessary to perform a task. 2. Design a suitable data structure to record the information. 3. Determine the processing necessary to obtain and maintain the information. 4. Determine the processing necessary to perform a task. 19

20 Data Structures 20

21 2 Pass Assembler 21

22 Design of Two Pass Assemblers 22

23 Two Pass Translation Pass I: Symbols are entered into the symbol table. Construct the Intermediate Representation of source program. Handles forward references. Pass II: Target program will be synthesizes using address found in the symbol table. 23

24 Advanced Assembler Directives ORIGIN: OIRGIN <address spec> : Tell assembler where to load instruction / data into memory. Ex: ORIGIN EQU: <symbol> EQU <address spec>: Defines the symbol to represent <address spec>. Equates the a value to a symbol. Ex: Sunday EQU 1, Monday EQU 2. LTORG: Origin for Literals: Allows a programmer to specify where the literals to be placed. (Memory allocation Literal Pools). 24

25 IC for Imperative Statements Format: (operand class, code). 25

26 IC for Declarative Statements Example: START 200 (AD,01) (C,200) AREA1 DS ) (DL, 02) (C,20) SIZE DC 5 220) (DL, 01) (C,5) 26

27 Syllabus Unit - III Macros and Macro Pre-processors Macro Definition, Call and Expansion Nested Macro Calls Advanced Macro facilities Design of a Macro pre-processor 27

28 Macros A Macro is a unit of specification for program generation through expansion. A Macro consists of a name, set of formal parameters and a body of code. A macro name with a set of actual parameters is replaced by some code generated from its body. It is called Macro Expansion. 28

29 Macros 29

30 Macro Expansion 30

31 Macro Expansion Lexical Expansion: Replacement of character string by another during program generation. Typically used for replacement of formal parameter by corresponding actual parameters. Semantic Expansion: Generation of instructions tailored to the requirements of a specific usage. 31

32 Macro Definition It is enclosed between a macro header and macro end statement. Macro definition are typically located at the start of a program. Definition consists of: A macro prototype statement One or more model statement Macro pre-processor statement 32

33 Macro Expansion Implemented using Macro Expansion Counter(MEC). Algorithm: MEC=statement number of first statement following the prototype statement; While statement pointed by MEC is not a MEND statement (a) if a model statement then (i) Expand the statement (ii) MEC=MEC+1; (b) Else (i.e. a per-processor statement) (i) MEC= new value specified in the statement; Exit from macro expansion. 33

34 Macro Call A Macro is called by writing the macro name in the mnemonic field of an assembly statement. <macro name> [<actual parameter spec>, ] Where an actual parameter typically an operand specification in an assembly language statement. 34

35 Nested Macro Calls A model statement in a macro may be a call on another macro. Such calls are known as nested macro calls. Calling macro Outer macro. Called macro Inner macro. Expansion of nested macro call Last in First Out(LIFO) rule. 35

36 Nested Macro Calls 36

37 Advance Macro Facilities Supports semantic expansion. Facilities for alternation of flow of control during expansion. Expansion time variables. Attributes of parameters. Expansion time statements AIF, AGO, ANOP. AIF statement: AIF(<expression>) <sequencing symbol> Expression Relational expression (If true move to sequencing symbol) AGO Statement: AGO <Sequencing Symbol> ANOP statement: <sequencing symbol> ANOP 37

38 Design of Macro Pre-processor 38

39 Design Overview Tasks involved in macro expansion: 1. Identify macro calls in the program. 2. Determine the values of formal parameters. 3. Maintain values of expansion time variables. 4. Organize expansion time control flow. 5. Determine the values of sequencing symbols. 6. Perform expansion of a model statement. 39

40 Design Specification Identify the information necessary to perform a task. Design a suitable data structure to record the information. Determine the processing necessary to obtain the information. Determine the processing necessary to perform the task. 40

41 Tables of Macro Pre processor Table Macro name Table(MNT) Fields in each entry Macro name, Number of positional parameter(#pp), Number of keyword parameter(#kp), Number of expansion time variables(#ev), MDT pointer (MDTP). KPDTAB pointer (KPDTP). SSTAB pointer (SSTP). Parameter Name Table(PNTAB) EV Name Table (EVNTAB) SS Name Table (SSNTAB) Keyword Parameter Default Table(KPDTAB) Macro Definition Table(MDT) Actual Parameter Table(APTAB) EV Table (EVTAB) Parameter name EV name SS name Parameter name, default value Label, Opcode, Operands Value Value SS Table (SSTAB) MDT entry # 41

42 Syllabus Unit - IV Compilers: Aspects of Compilation Memory Allocation Compilation of Expressions and Control structures Code Optimization Interpreters 42

43 Aspects of Compilation Compiler & Interpreter Bridge Semantic Gap PL Domain Execution domain Generate Code to implement meaning of a source program in ED. Provide Diagnostics for violation of PL semantics in a SP. 43

44 Data types Definition: A data type is the specification of Legal values for variable of type. Legal operations on the legal values of the type. Tasks: Check legality of operations for type of its operands. Use type conversion operations wherever necessary & permissible. Use appropriate instruction sequence. Example: Var x,y: real; i:integer; y:=10; x:=y+i; Type conversion of I is needed. 44

45 Data Structure PL permits declaration of DS and use it. Compiler must develop memory mapping to access allocated memory area of an element. A record, heterogeneous DS leads to complex memory mapping. User defined DS requires mapping of different kind. Proper combination of DS is required to manage such complexity of structure. Two kind of mapping is involved Mapping array reference Access field of record 45

46 Scope Rules Determine the accessibility of variable declared in different blocks of a program. Eg: x, y: real; y, z: interger; A x:=y; B x:=y uses the value of y of block B and x of block A. To determine accessibility of variable compiler performs the following operations: Scope Analysis Name Resolution 46

47 Control Structure Definition: It is a collection of language features for altering flow of control during execution. It includes: Conditional Transfer Conditional Execution Iteration Control Procedure Calls Compiler must ensure non-violation of program semantics. 47

48 Memory Allocation Memory allocation involves three important tasks: Determine the amount of memory required for a value. Use of appropriate model to implement lifetime and scope of a variable. Determine appropriate memory mappings to access the values in a non scalar data item. Activities: Static and Dynamic memory allocation. Memory allocation in Block Structured languages. Array allocation and Access. 48

49 Static & Dynamic Allocation Static Allocation MA done before execution of program begins. Performed during compilation. At execution no allocation & de-allocation. Allocation is active throughout the program. Dynamic Allocation MA done during the time of execution. Performed during execution. Allocation & de-allocation occurs only at execution. Allocation is active only if program unit is active. 49

50 Compilation of Expression The major issues in generator for expression: A Toy generator for expression Intermediate code for expression 50

51 A Toy generator for Expression Determination of execution order for operators. Selection of instruction used in target code. Use of registers and handling partial result. Operand descriptor(to maintain type, length, address) Register descriptor(status: Free/Occupied) Generating an instruction(operand / Register) 51

52 Intermediate Code Generation Postfix string(operator appear immediately after Operands) Triples[Opr oprnd1 oprnd2] Quadruples [Opr Oprnd1 Oprnd2 Result Name] Expression Trees (Evaluative order) 52

53 Compilation of Control Structures Governs the sequencing of control through a program. Control Transfer, Conditional Execution & Iterative Constructs. (Goto, If, For) Function & Procedure Calls (Actual parameters, Control transfer, return value). Calling Conventions. (Static and Dynamic) Parameter Passing Mechanism a) Call by Value b) Call by Value Result(Return formal parameter value to Actual parameter) c) Call by Reference d) Call by Name (same as CBR) 53

54 Code Optimization Aims at improving the execution efficiency of a program. Redundancies in a program are eliminated. Computations are rearranged or rewritten to execute efficiently. Types: Local Global Source Program Front End Optimization Phase Back End Target Program IR 54

55 Interpreters Avoid overhead of compilation. Modification at every execution is managed by interpreters. Each statement is subject to follow the following interpreters cycle: Fetch the instruction. Analyse statement and determine meaning. Execute the meaning of statement. 55

56 Syllabus Unit - V Linkers: Linking and Relocation Concepts Design of a linker Self relocating Programs A linker for MSDOS Linking for overlays Loaders Software Tools for Program development Editors Debug Monitors Programming Environments User interfaces 56

57 Linkers Execution of a program written in a language L involves the following steps: Translation of the program. Linking of the program with other programs needed for its execution. Relocation of the program to execute from the specific memory area allocated to it. Loading of the program in the memory for the purpose of execution. 57

58 Schematic of program execution Data Translator Linker Loader Contro l Flow Binary Program Results Object Modul e Binary Program s Arrows indicate Data flows 58

59 Relocation Let AA be the set of Absolute Addresses or instruction address or data address. AA ф ; means instruction or data occupy memory words with specific address. Such a program is called address sensitive program. which contains: Address Sensitive Instruction: An instruction which contains address ai Є AA. Address Constant: a data word which contains an address ai Є AA. 59

60 Linking Concepts Definition: Linking is the process of binding an external reference to the correct link time address. AP(Application Program) consisting of a set of program units SP = {Pi}. A program unit Pi interacts with another program unit Pj using instructions and addresses of Pj. To realize such interactions, Pj and Pi must contain public definitions and external references. Public Definition: a symbol pub_symb defined program unit which may be referenced in other program. External reference: a reference to a symbol ext_symb which is not defined in program unit containing the reference. 60

61 Design of a Linker 61

62 Self Relocating Programs Programs can be classified based on the load origin: Non Re-locating programs. Re-locatable programs. Self Re-locating programs. 62

63 Linker for MS DOS Design of a linker for Intel 8088 processor which resembles of MS DOS. Object Module Format. It is a sequence of object records. Categories: Binary image, External reference, public definition, Debugging information and Miscellaneous information. Specification Data Structures and Algorithms 63

64 Linking for Overlays 64

65 Loaders Types: Absolute Loaders: Can load only programs with load origin = linked origin. This is inconvenient when load address differ from the one specified for execution. Relocating loaders: Performs relocation while loading a program for execution. Permits program to be executed in different parts of memory. 65

66 Software Tools for Program Development Software tool is a system program which Interfaces a program with the entity generating its input data. Interfaces the results of a program with the entity consuming them. A schematic of a software tool: Originator Types of Software Tools: Tools for program development. User Interface Raw Program or data Software tools s Transforme d Program or data Consumer 66

67 Program Development The fundamental steps in program development: Program design, coding & documentation Preparation of program in machine readable form Program translation, linking & loading Program testing and debugging Performance tuning Source code management and versioning Reformatting the data and/or results of a program to suit other program. 67

68 Editors 68

69 Debug Monitors Provides the following facilities for dynamic debugging: Setting breakpoints in the program. Initiating a debug conversation when control reaches a breakpoint. Displaying values of variables. Assigning new values to variables. Testing user defined assertions & predicates involving program variables. 69

70 Programming Environments Provides Integrated facilities for program Creation, editing, execution, testing and debugging. Following components A syntax directed editor A language processor A debug monitor A dialog monitor 70

71 User Interfaces (UI) UI simplifies the interaction of a user with an application. Aspects of UI functionalities are: Issuing of commands. Exchange of data. Consists of two components: Dialog Manager: Manages the conversation between the user and the applications. Presentation Manager: Displays the data produced by the application in an appropriate manner on user s display. 71

72 Structure of UI 72

GUJARAT TECHNOLOGICAL UNIVERSITY

GUJARAT TECHNOLOGICAL UNIVERSITY Type of course: System Programming GUJARAT TECHNOLOGICAL UNIVERSITY SYSTEM PROGRAMMING SUBJECT CODE: 21508 B.E. 5 th SEMESTER Prerequisite: Data Structures and Operating Systems Rationale: NA Teaching

More information

QUESTION BANK CHAPTER 1 : OVERVIEW OF SYSTEM SOFTWARE. CHAPTER 2: Overview of Language Processors. CHAPTER 3: Assemblers

QUESTION BANK CHAPTER 1 : OVERVIEW OF SYSTEM SOFTWARE. CHAPTER 2: Overview of Language Processors. CHAPTER 3: Assemblers QUESTION BANK CHAPTER 1 : OVERVIEW OF SYSTEM SOFTWARE 1) Explain Analysis-synthesis model/fron end backend model of compiler 2) Explain various phases of compiler and symbol table. Consider the statement

More information

About the Authors... iii Introduction... xvii. Chapter 1: System Software... 1

About the Authors... iii Introduction... xvii. Chapter 1: System Software... 1 Table of Contents About the Authors... iii Introduction... xvii Chapter 1: System Software... 1 1.1 Concept of System Software... 2 Types of Software Programs... 2 Software Programs and the Computing Machine...

More information

UNIT I. Pune Vidyarthi Griha s COLLEGE OF ENGINEERING, NASHIK-4. 1

UNIT I. Pune Vidyarthi Griha s COLLEGE OF ENGINEERING, NASHIK-4. 1 Pune Vidyarthi Griha s COLLEGE OF ENGINEERING, NASHIK-4. 1 UNIT I Introduction: Components of System Software: Text editors, Loaders, Assemblers, Macro processors, Compilers, Debuggers. Machine Structure,

More information

AS-2883 B.Sc.(Hon s)(fifth Semester) Examination,2013 Computer Science (PCSC-503) (System Software) [Time Allowed: Three Hours] [Maximum Marks : 30]

AS-2883 B.Sc.(Hon s)(fifth Semester) Examination,2013 Computer Science (PCSC-503) (System Software) [Time Allowed: Three Hours] [Maximum Marks : 30] AS-2883 B.Sc.(Hon s)(fifth Semester) Examination,2013 Computer Science (PCSC-503) (System Software) [Time Allowed: Three Hours] [Maximum Marks : 30] Note: Question Number 1 is compulsory. Marks : 10X1

More information

Short Notes of CS201

Short Notes of CS201 #includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system

More information

ASSEMBLERS. Prof. S.J. Soni, SPCE, Visnagar

ASSEMBLERS. Prof. S.J. Soni, SPCE, Visnagar ASSEMBLERS Prof. S.J. Soni, SPCE, Visnagar Design Specifications Identify the information necessary to perform a task Design a suitable data structure to record the information Determine the processing

More information

CS201 - Introduction to Programming Glossary By

CS201 - Introduction to Programming Glossary By CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with

More information

UNIT -1 1.1 OVERVIEW OF LANGUAGE PROCESSING SYSTEM 1.2 Preprocessor A preprocessor produce input to compilers. They may perform the following functions. 1. Macro processing: A preprocessor may allow a

More information

Compiler, Assembler, and Linker

Compiler, Assembler, and Linker Compiler, Assembler, and Linker Minsoo Ryu Department of Computer Science and Engineering Hanyang University msryu@hanyang.ac.kr What is a Compilation? Preprocessor Compiler Assembler Linker Loader Contents

More information

Programming Languages Third Edition. Chapter 7 Basic Semantics

Programming Languages Third Edition. Chapter 7 Basic Semantics Programming Languages Third Edition Chapter 7 Basic Semantics Objectives Understand attributes, binding, and semantic functions Understand declarations, blocks, and scope Learn how to construct a symbol

More information

2) Save the Macro definition:- The processor must store the macro instruction definitions which it will need for expanding macro calls.

2) Save the Macro definition:- The processor must store the macro instruction definitions which it will need for expanding macro calls. Subject Code: 17517 Model Answer Page: 1/ 21 Important Instructions to examiners: 1) The answers should be examined by key words and not as word-to-word as given in the model answer scheme. 2) The model

More information

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILING

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILING PRINCIPLES OF COMPILER DESIGN 2 MARKS UNIT I INTRODUCTION TO COMPILING 1. Define compiler? A compiler is a program that reads a program written in one language (source language) and translates it into

More information

COMPILER DESIGN LECTURE NOTES

COMPILER DESIGN LECTURE NOTES COMPILER DESIGN LECTURE NOTES UNIT -1 1.1 OVERVIEW OF LANGUAGE PROCESSING SYSTEM 1.2 Preprocessor A preprocessor produce input to compilers. They may perform the following functions. 1. Macro processing:

More information

Model Answer of System Software B. Tech. (4 th Semester Examination) Paper Code: AR Branch: Information Technology

Model Answer of System Software B. Tech. (4 th Semester Examination) Paper Code: AR Branch: Information Technology Model Answer of System Software B. Tech. (4 th Semester Examination) Paper Code: AR-9083 Branch: Information Technology Time Allowed: 3hours Maximum Marks: 100 Part-A (All questions are compulsory) Objective

More information

By: Bhargavi Goswami Assistant Professor Sunshine Group of Institutions Rajkot, Gujarat, India. Mob:

By: Bhargavi Goswami Assistant Professor Sunshine Group of Institutions Rajkot, Gujarat, India.   Mob: Linkers By: Bhargavi Goswami Assistant Professor Sunshine Group of Institutions Rajkot, Gujarat, India. Email: bhargavigoswami@gmail.com Mob: +918140099018 Steps for Execution: Performed By: Translator

More information

AC59/AT59 OPERATING SYSTEMS & SYSTEMS SOFTWARE DECEMBER 2012

AC59/AT59 OPERATING SYSTEMS & SYSTEMS SOFTWARE DECEMBER 2012 Q2a. What are the various actions an operating system performs when a new process is created? Explain four fundamental states for a process using a state transition diagram. Ans 2a. As a process executes,

More information

Compiler Design. Computer Science & Information Technology (CS) Rank under AIR 100

Compiler Design. Computer Science & Information Technology (CS) Rank under AIR 100 GATE- 2016-17 Postal Correspondence 1 Compiler Design Computer Science & Information Technology (CS) 20 Rank under AIR 100 Postal Correspondence Examination Oriented Theory, Practice Set Key concepts,

More information

1 Lexical Considerations

1 Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2013 Handout Decaf Language Thursday, Feb 7 The project for the course is to write a compiler

More information

4. An interpreter is a program that

4. An interpreter is a program that 1. In an aboslute loading scheme, which loader function is accomplished by programmer? A. Allocation B. LInking C. Reallocation D. both (A) and (B) 2. A compiler program written in a high level language

More information

Crafting a Compiler with C (II) Compiler V. S. Interpreter

Crafting a Compiler with C (II) Compiler V. S. Interpreter Crafting a Compiler with C (II) 資科系 林偉川 Compiler V S Interpreter Compilation - Translate high-level program to machine code Lexical Analyzer, Syntax Analyzer, Intermediate code generator(semantics Analyzer),

More information

The basic operations defined on a symbol table include: free to remove all entries and free the storage of a symbol table

The basic operations defined on a symbol table include: free to remove all entries and free the storage of a symbol table SYMBOL TABLE: A symbol table is a data structure used by a language translator such as a compiler or interpreter, where each identifier in a program's source code is associated with information relating

More information

LANGUAGE PROCESSORS. Presented By: Prof. S.J. Soni, SPCE Visnagar.

LANGUAGE PROCESSORS. Presented By: Prof. S.J. Soni, SPCE Visnagar. LANGUAGE PROCESSORS Presented By: Prof. S.J. Soni, SPCE Visnagar. Introduction Language Processing activities arise due to the differences between the manner in which a software designer describes the

More information

CST-402(T): Language Processors

CST-402(T): Language Processors CST-402(T): Language Processors Course Outcomes: On successful completion of the course, students will be able to: 1. Exhibit role of various phases of compilation, with understanding of types of grammars

More information

CS 4201 Compilers 2014/2015 Handout: Lab 1

CS 4201 Compilers 2014/2015 Handout: Lab 1 CS 4201 Compilers 2014/2015 Handout: Lab 1 Lab Content: - What is compiler? - What is compilation? - Features of compiler - Compiler structure - Phases of compiler - Programs related to compilers - Some

More information

Sardar Vallabhbhai Patel Institute of Technology (SVIT), Vasad M.C.A. Department COSMOS LECTURE SERIES ( ) (ODD) Code Optimization

Sardar Vallabhbhai Patel Institute of Technology (SVIT), Vasad M.C.A. Department COSMOS LECTURE SERIES ( ) (ODD) Code Optimization Sardar Vallabhbhai Patel Institute of Technology (SVIT), Vasad M.C.A. Department COSMOS LECTURE SERIES (2018-19) (ODD) Code Optimization Prof. Jonita Roman Date: 30/06/2018 Time: 9:45 to 10:45 Venue: MCA

More information

SE352b: Roadmap. SE352b Software Engineering Design Tools. W3: Programming Paradigms

SE352b: Roadmap. SE352b Software Engineering Design Tools. W3: Programming Paradigms SE352b Software Engineering Design Tools W3: Programming Paradigms Feb. 3, 2005 SE352b, ECE,UWO, Hamada Ghenniwa SE352b: Roadmap CASE Tools: Introduction System Programming Tools Programming Paradigms

More information

Programming Language Concepts Scoping. Janyl Jumadinova January 31, 2017

Programming Language Concepts Scoping. Janyl Jumadinova January 31, 2017 Programming Language Concepts Scoping Janyl Jumadinova January 31, 2017 Scope Rules A scope is a program section of maximal size in which no bindings change, or at least in which no re-declarations are

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Compiler Design

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Compiler Design i About the Tutorial A compiler translates the codes written in one language to some other language without changing the meaning of the program. It is also expected that a compiler should make the target

More information

COMPILER DESIGN. For COMPUTER SCIENCE

COMPILER DESIGN. For COMPUTER SCIENCE COMPILER DESIGN For COMPUTER SCIENCE . COMPILER DESIGN SYLLABUS Lexical analysis, parsing, syntax-directed translation. Runtime environments. Intermediate code generation. ANALYSIS OF GATE PAPERS Exam

More information

Symbol Tables Symbol Table: In computer science, a symbol table is a data structure used by a language translator such as a compiler or interpreter, where each identifier in a program's source code is

More information

LECTURE NOTES ON COMPILER DESIGN P a g e 2

LECTURE NOTES ON COMPILER DESIGN P a g e 2 LECTURE NOTES ON COMPILER DESIGN P a g e 1 (PCCS4305) COMPILER DESIGN KISHORE KUMAR SAHU SR. LECTURER, DEPARTMENT OF INFORMATION TECHNOLOGY ROLAND INSTITUTE OF TECHNOLOGY, BERHAMPUR LECTURE NOTES ON COMPILER

More information

Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology

Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology exam Compiler Construction in4303 April 9, 2010 14.00-15.30 This exam (6 pages) consists of 52 True/False

More information

Intermediate Code Generation

Intermediate Code Generation Intermediate Code Generation In the analysis-synthesis model of a compiler, the front end analyzes a source program and creates an intermediate representation, from which the back end generates target

More information

Semantic Analysis. Outline. The role of semantic analysis in a compiler. Scope. Types. Where we are. The Compiler Front-End

Semantic Analysis. Outline. The role of semantic analysis in a compiler. Scope. Types. Where we are. The Compiler Front-End Outline Semantic Analysis The role of semantic analysis in a compiler A laundry list of tasks Scope Static vs. Dynamic scoping Implementation: symbol tables Types Static analyses that detect type errors

More information

PSD3A Principles of Compiler Design Unit : I-V. PSD3A- Principles of Compiler Design

PSD3A Principles of Compiler Design Unit : I-V. PSD3A- Principles of Compiler Design PSD3A Principles of Compiler Design Unit : I-V 1 UNIT I - SYLLABUS Compiler Assembler Language Processing System Phases of Compiler Lexical Analyser Finite Automata NFA DFA Compiler Tools 2 Compiler -

More information

UNIT-4 (COMPILER DESIGN)

UNIT-4 (COMPILER DESIGN) UNIT-4 (COMPILER DESIGN) An important part of any compiler is the construction and maintenance of a dictionary containing names and their associated values, such type of dictionary is called a symbol table.

More information

SYLLABUS UNIT - I UNIT - II UNIT - III UNIT - IV CHAPTER - 1 : INTRODUCTION CHAPTER - 4 : SYNTAX AX-DIRECTED TRANSLATION TION CHAPTER - 7 : STORA

SYLLABUS UNIT - I UNIT - II UNIT - III UNIT - IV CHAPTER - 1 : INTRODUCTION CHAPTER - 4 : SYNTAX AX-DIRECTED TRANSLATION TION CHAPTER - 7 : STORA Contents i SYLLABUS UNIT - I CHAPTER - 1 : INTRODUCTION Programs Related to Compilers. Translation Process, Major Data Structures, Other Issues in Compiler Structure, Boot Strapping and Porting. CHAPTER

More information

Anatomy of a Compiler. Overview of Semantic Analysis. The Compiler So Far. Why a Separate Semantic Analysis?

Anatomy of a Compiler. Overview of Semantic Analysis. The Compiler So Far. Why a Separate Semantic Analysis? Anatomy of a Compiler Program (character stream) Lexical Analyzer (Scanner) Syntax Analyzer (Parser) Semantic Analysis Parse Tree Intermediate Code Generator Intermediate Code Optimizer Code Generator

More information

The role of semantic analysis in a compiler

The role of semantic analysis in a compiler Semantic Analysis Outline The role of semantic analysis in a compiler A laundry list of tasks Scope Static vs. Dynamic scoping Implementation: symbol tables Types Static analyses that detect type errors

More information

UNIT II ASSEMBLERS. Figure Assembler

UNIT II ASSEMBLERS. Figure Assembler 2.1 Basic assembler functions UNIT II ASSEMBLERS Assembler Assembler which converts assembly language programs into object files. Object files contain a combination of machine instructions, data, and information

More information

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified) SUMMER-16 EXAMINATION Model Answer

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified) SUMMER-16 EXAMINATION Model Answer Important Instructions to examiners: 1) The answers should be examined by key words and not as word-to-word as given in the model answer scheme 2) The model answer and the answer written by candidate may

More information

ORG ; TWO. Assembly Language Programming

ORG ; TWO. Assembly Language Programming Dec 2 Hex 2 Bin 00000010 ORG ; TWO Assembly Language Programming OBJECTIVES this chapter enables the student to: Explain the difference between Assembly language instructions and pseudo-instructions. Identify

More information

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified) WINTER-15 EXAMINATION Model Answer Paper

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified) WINTER-15 EXAMINATION Model Answer Paper Important Instructions to examiners: 1) The answers should be examined by key words and not as word-to-word as given in themodel answer scheme. 2) The model answer and the answer written by candidate may

More information

Today's Topics. CISC 458 Winter J.R. Cordy

Today's Topics. CISC 458 Winter J.R. Cordy Today's Topics Last Time Semantics - the meaning of program structures Stack model of expression evaluation, the Expression Stack (ES) Stack model of automatic storage, the Run Stack (RS) Today Managing

More information

Name, Scope, and Binding. Outline [1]

Name, Scope, and Binding. Outline [1] Name, Scope, and Binding In Text: Chapter 3 Outline [1] Variable Binding Storage bindings and lifetime Type bindings Type Checking Scope Lifetime vs. Scope Referencing Environments N. Meng, S. Arthur 2

More information

Lexical Considerations

Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2010 Handout Decaf Language Tuesday, Feb 2 The project for the course is to write a compiler

More information

The Assembly Language Level. Chapter 7

The Assembly Language Level. Chapter 7 The Assembly Language Level Chapter 7 Definitions Translator Converts user program to another language Source language Language of original program Target language Language into which source code is converted

More information

SYSTEMS PROGRAMMING. Srimanta Pal. Associate Professor Indian Statistical Institute Kolkata OXFORD UNIVERSITY PRESS

SYSTEMS PROGRAMMING. Srimanta Pal. Associate Professor Indian Statistical Institute Kolkata OXFORD UNIVERSITY PRESS SYSTEMS PROGRAMMING Srimanta Pal Associate Professor Indian Statistical Institute Kolkata OXFORD UNIVERSITY PRESS Contents Preface v 1. Scope of Systems Programming 1 1.1 Introduction 7 1.2 Computers and

More information

1. (a) What are the closure properties of Regular sets? Explain. (b) Briefly explain the logical phases of a compiler model. [8+8]

1. (a) What are the closure properties of Regular sets? Explain. (b) Briefly explain the logical phases of a compiler model. [8+8] Code No: R05311201 Set No. 1 1. (a) What are the closure properties of Regular sets? Explain. (b) Briefly explain the logical phases of a compiler model. [8+8] 2. Compute the FIRST and FOLLOW sets of each

More information

IMPORTANT QUESTIONS IN C FOR THE INTERVIEW

IMPORTANT QUESTIONS IN C FOR THE INTERVIEW IMPORTANT QUESTIONS IN C FOR THE INTERVIEW 1. What is a header file? Header file is a simple text file which contains prototypes of all in-built functions, predefined variables and symbolic constants.

More information

Lexical Considerations

Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Fall 2005 Handout 6 Decaf Language Wednesday, September 7 The project for the course is to write a

More information

Programmiersprachen (Programming Languages)

Programmiersprachen (Programming Languages) 2016-05-13 Preface Programmiersprachen (Programming Languages) coordinates: lecturer: web: usable for: requirements: No. 185.208, VU, 3 ECTS Franz Puntigam http://www.complang.tuwien.ac.at/franz/ps.html

More information

EXPERIMENT NO : M/C Lenovo Think center M700 Ci3,6100,6th Gen. H81, 4GB RAM,500GB HDD

EXPERIMENT NO : M/C Lenovo Think center M700 Ci3,6100,6th Gen. H81, 4GB RAM,500GB HDD GROUP - A EXPERIMENT NO : 04 1. Title: Write a Java program for pass-ii of a two-pass macro-processor. The output of assignment-3 (MNT, MDT and file without any macro definitions) should be input for this

More information

UNIT I - INTRODUCTION

UNIT I - INTRODUCTION UNIT I - INTRODUCTION 1. Define system software. It consists of variety of programs that supports the operation of the computer. This software makes it possible for the user to focus on the other problems

More information

Programming Languages, Summary CSC419; Odelia Schwartz

Programming Languages, Summary CSC419; Odelia Schwartz Programming Languages, Summary CSC419; Odelia Schwartz Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design

More information

1. INTRODUCTION TO LANGUAGE PROCESSING The Language Processing System can be represented as shown figure below.

1. INTRODUCTION TO LANGUAGE PROCESSING The Language Processing System can be represented as shown figure below. UNIT I Translator: It is a program that translates one language to another Language. Examples of translator are compiler, assembler, interpreter, linker, loader and preprocessor. Source Code Translator

More information

UNIT 3

UNIT 3 UNIT 3 Presentation Outline Sequence control with expressions Conditional Statements, Loops Exception Handling Subprogram definition and activation Simple and Recursive Subprogram Subprogram Environment

More information

Compiler Design (40-414)

Compiler Design (40-414) Compiler Design (40-414) Main Text Book: Compilers: Principles, Techniques & Tools, 2 nd ed., Aho, Lam, Sethi, and Ullman, 2007 Evaluation: Midterm Exam 35% Final Exam 35% Assignments and Quizzes 10% Project

More information

An Overview of Compilation

An Overview of Compilation An Overview of Compilation (www.cse.iitb.ac.in/ uday) Department of Computer Science and Engineering, Indian Institute of Technology, Bombay January 2014 cs306 Compilation Overview: Outline 1/18 Outline

More information

Language Translation. Compilation vs. interpretation. Compilation diagram. Step 1: compile. Step 2: run. compiler. Compiled program. program.

Language Translation. Compilation vs. interpretation. Compilation diagram. Step 1: compile. Step 2: run. compiler. Compiled program. program. Language Translation Compilation vs. interpretation Compilation diagram Step 1: compile program compiler Compiled program Step 2: run input Compiled program output Language Translation compilation is translation

More information

Gujarat Technological University Sankalchand Patel College of Engineering, Visnagar B.E. Semester VII (CE) July-Nov Compiler Design (170701)

Gujarat Technological University Sankalchand Patel College of Engineering, Visnagar B.E. Semester VII (CE) July-Nov Compiler Design (170701) Gujarat Technological University Sankalchand Patel College of Engineering, Visnagar B.E. Semester VII (CE) July-Nov 2014 Compiler Design (170701) Question Bank / Assignment Unit 1: INTRODUCTION TO COMPILING

More information

! Those values must be stored somewhere! Therefore, variables must somehow be bound. ! How?

! Those values must be stored somewhere! Therefore, variables must somehow be bound. ! How? A Binding Question! Variables are bound (dynamically) to values Subprogram Activation! Those values must be stored somewhere! Therefore, variables must somehow be bound to memory locations! How? Function

More information

The PCAT Programming Language Reference Manual

The PCAT Programming Language Reference Manual The PCAT Programming Language Reference Manual Andrew Tolmach and Jingke Li Dept. of Computer Science Portland State University September 27, 1995 (revised October 15, 2002) 1 Introduction The PCAT language

More information

CS 415 Midterm Exam Spring SOLUTION

CS 415 Midterm Exam Spring SOLUTION CS 415 Midterm Exam Spring 2005 - SOLUTION Name Email Address Student ID # Pledge: This exam is closed note, closed book. Questions will be graded on quality of answer. Please supply the best answer you

More information

Time : 1 Hour Max Marks : 30

Time : 1 Hour Max Marks : 30 Total No. of Questions : 6 P4890 B.E/ Insem.- 74 B.E ( Computer Engg) PRINCIPLES OF MODERN COMPILER DESIGN (2012 Pattern) (Semester I) Time : 1 Hour Max Marks : 30 Q.1 a) Explain need of symbol table with

More information

Chapter 2. Assembler Design

Chapter 2. Assembler Design Chapter 2 Assembler Design Assembler is system software which is used to convert an assembly language program to its equivalent object code. The input to the assembler is a source code written in assembly

More information

Procedure and Object- Oriented Abstraction

Procedure and Object- Oriented Abstraction Procedure and Object- Oriented Abstraction Scope and storage management cs5363 1 Procedure abstractions Procedures are fundamental programming abstractions They are used to support dynamically nested blocks

More information

Semantic Analysis. Outline. The role of semantic analysis in a compiler. Scope. Types. Where we are. The Compiler so far

Semantic Analysis. Outline. The role of semantic analysis in a compiler. Scope. Types. Where we are. The Compiler so far Outline Semantic Analysis The role of semantic analysis in a compiler A laundry list of tasks Scope Static vs. Dynamic scoping Implementation: symbol tables Types Statically vs. Dynamically typed languages

More information

Informatica 3 Syntax and Semantics

Informatica 3 Syntax and Semantics Informatica 3 Syntax and Semantics Marcello Restelli 9/15/07 Laurea in Ingegneria Informatica Politecnico di Milano Introduction Introduction to the concepts of syntax and semantics Binding Variables Routines

More information

G Programming Languages - Fall 2012

G Programming Languages - Fall 2012 G22.2110-003 Programming Languages - Fall 2012 Lecture 2 Thomas Wies New York University Review Last week Programming Languages Overview Syntax and Semantics Grammars and Regular Expressions High-level

More information

Intermediate Representations & Symbol Tables

Intermediate Representations & Symbol Tables Intermediate Representations & Symbol Tables Copyright 2014, Pedro C. Diniz, all rights reserved. Students enrolled in the Compilers class at the University of Southern California have explicit permission

More information

Life Cycle of Source Program - Compiler Design

Life Cycle of Source Program - Compiler Design Life Cycle of Source Program - Compiler Design Vishal Trivedi * Gandhinagar Institute of Technology, Gandhinagar, Gujarat, India E-mail: raja.vishaltrivedi@gmail.com Abstract: This Research paper gives

More information

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine.

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 2. true / false ML can be compiled. 3. true / false FORTRAN can reasonably be considered

More information

Lecture08: Scope and Lexical Address

Lecture08: Scope and Lexical Address Lecture08: Scope and Lexical Address Free and Bound Variables (EOPL 1.3.1) Given an expression E, does a particular variable reference x appear free or bound in that expression? Definition: A variable

More information

Chapter 3:: Names, Scopes, and Bindings (cont.)

Chapter 3:: Names, Scopes, and Bindings (cont.) Chapter 3:: Names, Scopes, and Bindings (cont.) Programming Language Pragmatics Michael L. Scott Review What is a regular expression? What is a context-free grammar? What is BNF? What is a derivation?

More information

Computer Science Department Carlos III University of Madrid Leganés (Spain) David Griol Barres

Computer Science Department Carlos III University of Madrid Leganés (Spain) David Griol Barres Computer Science Department Carlos III University of Madrid Leganés (Spain) David Griol Barres dgriol@inf.uc3m.es Compiler Architecture Source language Scanner (lexical analysis) tokens Parser (syntax

More information

Data Structure for Language Processing. Bhargavi H. Goswami Assistant Professor Sunshine Group of Institutions

Data Structure for Language Processing. Bhargavi H. Goswami Assistant Professor Sunshine Group of Institutions Data Structure for Language Processing Bhargavi H. Goswami Assistant Professor Sunshine Group of Institutions INTRODUCTION: Which operation is frequently used by a Language Processor? Ans: Search. This

More information

When do We Run a Compiler?

When do We Run a Compiler? When do We Run a Compiler? Prior to execution This is standard. We compile a program once, then use it repeatedly. At the start of each execution We can incorporate values known at the start of the run

More information

Assemblers. System Software by Leland L. Beck. Chapter 2

Assemblers. System Software by Leland L. Beck. Chapter 2 Assemblers System Software by Leland L. Beck Chapter 2 1 Role of Assembler Source Program Assembler Object Code Linker Executable Code Loader 2 Chapter 2 -- Outline Basic Assembler Functions Machine-dependent

More information

MODULE 5 LINKERS AND LOADERS

MODULE 5 LINKERS AND LOADERS MODULE 5 LINKERS AND LOADERS Execution phases The execution of a program involves 4 steps:- 1) Translation Converting source program to object modules. The assemblers and compilers fall under the category

More information

Chapter 5 Names, Binding, Type Checking and Scopes

Chapter 5 Names, Binding, Type Checking and Scopes Chapter 5 Names, Binding, Type Checking and Scopes Names - We discuss all user-defined names here - Design issues for names: -Maximum length? - Are connector characters allowed? - Are names case sensitive?

More information

UNIT II ASSEMBLERS www.noyesengine.com www.technoscriptz.com 1 1. BASIC ASSEMBLER FUNCTIONS 2. A SIMPLE SIC ASSEMBLER 3. ASSEMBLER ALGORITHM AND DATA STRUCTURES 4. MACHINE DEPENDENT ASSEMBLER FEATURES

More information

Lexical Scanning COMP360

Lexical Scanning COMP360 Lexical Scanning COMP360 Captain, we re being scanned. Spock Reading Read sections 2.1 3.2 in the textbook Regular Expression and FSA Assignment A new assignment has been posted on Blackboard It is due

More information

CS606- compiler instruction Solved MCQS From Midterm Papers

CS606- compiler instruction Solved MCQS From Midterm Papers CS606- compiler instruction Solved MCQS From Midterm Papers March 06,2014 MC100401285 Moaaz.pk@gmail.com Mc100401285@gmail.com PSMD01 Final Term MCQ s and Quizzes CS606- compiler instruction If X is a

More information

The SPL Programming Language Reference Manual

The SPL Programming Language Reference Manual The SPL Programming Language Reference Manual Leonidas Fegaras University of Texas at Arlington Arlington, TX 76019 fegaras@cse.uta.edu February 27, 2018 1 Introduction The SPL language is a Small Programming

More information

Theoretical Part. Chapter one:- - What are the Phases of compiler? Answer:

Theoretical Part. Chapter one:- - What are the Phases of compiler? Answer: Theoretical Part Chapter one:- - What are the Phases of compiler? Six phases Scanner Parser Semantic Analyzer Source code optimizer Code generator Target Code Optimizer Three auxiliary components Literal

More information

Dixita Kagathara Page 1

Dixita Kagathara Page 1 2014 Sem - VII Introduction 1) Explain Phases of compiler or Analysis synthesis model of compilation. The compiler is designed into two parts. The first phase is the analysis phase while the second phase

More information

Informal Semantics of Data. semantic specification names (identifiers) attributes binding declarations scope rules visibility

Informal Semantics of Data. semantic specification names (identifiers) attributes binding declarations scope rules visibility Informal Semantics of Data semantic specification names (identifiers) attributes binding declarations scope rules visibility 1 Ways to Specify Semantics Standards Documents (Language Definition) Language

More information

Outline. Programming Languages 1/16/18 PROGRAMMING LANGUAGE FOUNDATIONS AND HISTORY. Current

Outline. Programming Languages 1/16/18 PROGRAMMING LANGUAGE FOUNDATIONS AND HISTORY. Current PROGRAMMING LANGUAGE FOUNDATIONS AND HISTORY Dr. John Georgas, Northern Arizona University Copyright John Georgas All Rights Reserved Outline Current Programming languages Compiled and interpreted implementations

More information

An Overview to Compiler Design. 2008/2/14 \course\cpeg421-08s\topic-1a.ppt 1

An Overview to Compiler Design. 2008/2/14 \course\cpeg421-08s\topic-1a.ppt 1 An Overview to Compiler Design 2008/2/14 \course\cpeg421-08s\topic-1a.ppt 1 Outline An Overview of Compiler Structure Front End Middle End Back End 2008/2/14 \course\cpeg421-08s\topic-1a.ppt 2 Reading

More information

What is a compiler? Xiaokang Qiu Purdue University. August 21, 2017 ECE 573

What is a compiler? Xiaokang Qiu Purdue University. August 21, 2017 ECE 573 What is a compiler? Xiaokang Qiu Purdue University ECE 573 August 21, 2017 What is a compiler? What is a compiler? Traditionally: Program that analyzes and translates from a high level language (e.g.,

More information

Rui Wang, Assistant professor Dept. of Information and Communication Tongji University.

Rui Wang, Assistant professor Dept. of Information and Communication Tongji University. Instructions: ti Language of the Computer Rui Wang, Assistant professor Dept. of Information and Communication Tongji University it Email: ruiwang@tongji.edu.cn Computer Hierarchy Levels Language understood

More information

SEM / YEAR : VI / III CS2352 PRINCIPLES OF COMPLIERS DESIGN UNIT I - LEXICAL ANALYSIS PART - A

SEM / YEAR : VI / III CS2352 PRINCIPLES OF COMPLIERS DESIGN UNIT I - LEXICAL ANALYSIS PART - A SEM / YEAR : VI / III CS2352 PRINCIPLES OF COMPLIERS DESIGN UNIT I - LEXICAL ANALYSIS PART - A 1. What is a compiler? (A.U Nov/Dec 2007) A compiler is a program that reads a program written in one language

More information

Chapter 3:: Names, Scopes, and Bindings (cont.)

Chapter 3:: Names, Scopes, and Bindings (cont.) Chapter 3:: Names, Scopes, and Bindings (cont.) Programming Language Pragmatics Michael L. Scott Review What is a regular expression? What is a context-free grammar? What is BNF? What is a derivation?

More information

Chapter 5. Names, Bindings, and Scopes

Chapter 5. Names, Bindings, and Scopes Chapter 5 Names, Bindings, and Scopes Chapter 5 Topics Introduction Names Variables The Concept of Binding Scope Scope and Lifetime Referencing Environments Named Constants 1-2 Introduction Imperative

More information

COMPILER CONSTRUCTION LAB 2 THE SYMBOL TABLE. Tutorial 2 LABS. PHASES OF A COMPILER Source Program. Lab 2 Symbol table

COMPILER CONSTRUCTION LAB 2 THE SYMBOL TABLE. Tutorial 2 LABS. PHASES OF A COMPILER Source Program. Lab 2 Symbol table COMPILER CONSTRUCTION Lab 2 Symbol table LABS Lab 3 LR parsing and abstract syntax tree construction using ''bison' Lab 4 Semantic analysis (type checking) PHASES OF A COMPILER Source Program Lab 2 Symtab

More information

CSE 504. Expression evaluation. Expression Evaluation, Runtime Environments. One possible semantics: Problem:

CSE 504. Expression evaluation. Expression Evaluation, Runtime Environments. One possible semantics: Problem: Expression evaluation CSE 504 Order of evaluation For the abstract syntax tree + + 5 Expression Evaluation, Runtime Environments + + x 3 2 4 the equivalent expression is (x + 3) + (2 + 4) + 5 1 2 (. Contd

More information

III) EXAMINATION, 2015 CS 331 : SYSTEM PROGRAMMING AND OPERATING SYSTEM I

III) EXAMINATION, 2015 CS 331 : SYSTEM PROGRAMMING AND OPERATING SYSTEM I Total No. of Questions 4] [Total No. of Printed Pages 4 Seat No. [4718]-31 T.Y. B.Sc. (Computer Science) (Semester III) EXAMINATION, 2015 CS 331 : SYSTEM PROGRAMMING AND OPERATING SYSTEM I Paper I (2008

More information

The Structure of a Syntax-Directed Compiler

The Structure of a Syntax-Directed Compiler Source Program (Character Stream) Scanner Tokens Parser Abstract Syntax Tree Type Checker (AST) Decorated AST Translator Intermediate Representation Symbol Tables Optimizer (IR) IR Code Generator Target

More information