Top Banner
Chapter 1: Language Processor Mrs. Sunita M Dol (Aher), Assistant Professor, Computer Science and Engineering Department, Walchand Institute of Technology, Solapur, Maharashtra
86

Chapter 1 Language Processor

Apr 16, 2017

Download

Engineering

Sunita Aher
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Chapter 1 Language Processor

Chapter 1: Language Processor

Mrs. Sunita M Dol (Aher),Assistant Professor,

Computer Science and Engineering Department,Walchand Institute of Technology, Solapur, Maharashtra

Page 2: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 2

Chapter 1: Language Processor• Introduction• Language Processing Activities• Fundamentals of Language Processing• Fundamentals of Language Specification• Language Processing Development Tools

Page 3: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 3

Chapter 1: Language Processor

• Introduction• Language Processing Activities• Fundamentals of Language Processing• Fundamentals of Language Specification• Language Processing Development Tools

Page 4: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 4

Introduction• Why Language Processor?

– Difference between the manner in which software designer describes the ideas concerning the behavior of a software and the manner in which these ideas are implemented in the computer system

– Semantic gap is the gap between the semantics of two domains

Page 5: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 5

Semantic Gap

Application Domain

Execution Domain

Software Development

Team

Designer of Programming Language

Processor

Introduction

Page 6: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 6

• Consequences of Semantic Gap1. Large development times2. Large development efforts3. Poor quality of software

• Issues are tackled by Software Engineering through the use of methodologies and Programming Language.

Introduction

Page 7: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 7

Application Domain

Execution Domain

PL Domain

Specification Gap Execution Gap

Introduction

Page 8: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 8

Introduction• Specification Gap

– The semantic gap between two specification of the same task.

• Execution Gap– The gap between the semantics of programs written

in different programming languages.

• Each domain has a specification language

Page 9: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 9

• A Language Processor is a software which bridges a specification or execution gap.

• Program formed input to a Language Processor is referred as a Source Program and output as Target Program.

• Languages in which they are written are called as source language and target languages respectively.

Introduction

Page 10: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 10

A Spectrum of Language Processor

• A language translator bridges an execution gap to the machine language of a computer system.

• A detranslator bridges the same execution gap as the language translator but in reverse direction.

• A Preprocessor is a language processor which bridges an execution gap but is not a language translator.

• A language migrator bridges the specification gap between two PL’s.

Page 11: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 11

C++ preprocessor

C++ program

Cprogram

Errors

C++ translator

Errors

C++ program

Machine languageprogram

Figure : a

Figure : b

A Spectrum of Language Processor

Page 12: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 12

Interpreters• An interpreter is a language processor which bridges an

execution gap without generating a machine language program.

• Here execution gap vanishes totally.

Application Domain

PL Domain

Execution Domain

Interpreter Domain

Page 13: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 13

Application Domain

Problem Oriented Language

Execution Domain

Problem oriented language Domain

Specification Gap Execution Gap

• These languages are used for specific application

Page 14: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 14

Procedure Oriented Language

Application Domain

Execution Domain

PL Domain

Specification Gap Execution Gap

• These languages provides general purpose facilities required in most application domain.

Page 15: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 15

Chapter 1: Language Processor

• Introduction• Language Processing Activities• Fundamentals of Language Processing• Fundamentals of Language Specification• Language Processing Development Tools

Page 16: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 16

Language Processing Activities

• Language processing activities are divided into those that bridge the specification gap and those that bridge the execution gap.1. Program generation activities.2. Program execution activities.

Page 17: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 17

Program generator

Program specification

Program in target PL

Errors

Language Processing Activities• Program Generation:

−It is a software which accepts the specification of a program to be generated and generates a program in the target PL.

−Program generator introduces a new domain between the application and PL domain.

Page 18: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 18Application

DomainExecution Domain

PL Domain

Specification Gap

Program generator domain

Language Processing Activities

• Program Generation:−Program generator introduces a new domain between

the application and PL domain.

Page 19: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 19

• Program Generation Example:– A screen handling Program

• Specification is given as below

Employee name : char : start(line=2,position=25) end(line=2,position=80)

Married : char : start(line =10, position=25) end(line=10,position=27) default(‘Yes’)

Language Processing Activities

Page 20: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 20

Yes

Employee Name

Address

Married

Age Gender

Figure: Screen displayed by a screen handling program

• Program Generation Example:

Language Processing Activities

Page 21: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 21

• Program Execution– Two models of Program Execution

• Program translation• Program interpretation

Language Processing Activities

Page 22: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 22

• Program Translation:– Program translation model bridges the execution gap

by translating a program written in PL i.e Source Program into machine language i.e Target Program.

Translator m/c language program

Source Program

Target Program

Errors Data

Figure: Program translation model

Language Processing Activities

Page 23: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 23

• Program Interpretation– Interpreter reads the source program and stores it in

its memory.– During interpretation it determines the meaning of the

statement.

Language Processing Activities

Page 24: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 24

• Program Interpretation:– The CPU uses a program counter (PC) to note the

address of the next address.– Instruction Execution Cycle

1. Fetch the instruction2. Decode the instruction and determine the operation to

be performed.3. Execute the instruction.

Language Processing Activities

Page 25: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 25

• Program Interpretation:– Interpretation Cycle consists of—

1. Fetch the statement.2. Analyze the statement and determine its meaning.3. Execute the meaning of the statement.

Language Processing Activities

Page 26: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 26

Source program +

Data

Interpreter Memory

PC

Machine language program

+ Data

CPU Memory

PC

Errors

Figure (a) : Interpretation Figure (b) : Program Execution

Language Processing Activities

• Program Interpretation

Page 27: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 27

• Program Interpretation– Characteristics of interpretation

1. Source program is retained in the source form itself i.e. no target program.

2. A statement is analyzed during its interpretation.

Language Processing Activities

Page 28: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 28

Chapter 1: Language Processor

• Introduction• Language Processing Activities• Fundamentals of Language Processing• Fundamentals of Language Specification• Language Processing Development Tools

Page 29: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 29

Fundamentals of Language Processing

• Language Processing = Analysis of Source Program

+ Synthesis of Target Program

• Analysis consists of three steps1. Lexical rule identifies the valid lexical units2. Syntax rules identifies the valid statements3. Semantic rules associate meaning with valid statement.

Page 30: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 30

Example:- percent_profit := (profit * 100) / cost_price;

Lexical analysis identifies------- :=, * and / as operators100 as constant Remaining strings as identifiers.

Syntax analysis identifies the statement as the assignment statement.

Semantic analysis determines the meaning of the statement as profit x 100

cost_priceto percent_profit

Fundamentals of Language Processing

Page 31: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 31

• Synthesis Phase1. Creation of Data Structure2. Generation of target code Referred as memory allocation and code generation,

respectively.

MOVER AREG, PROFITMULT AREG, 100DIV AREG, COST_PRICEMOVEM AREG, PERCENT_PROFIT-------------------PERCENT_PROFIT DW 1PROFIT DW 1COST_PRICE DW 1

Fundamentals of Language Processing

Page 32: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 32

• Phases and Passes of Language Processor− Analysis Phase and Synthesis phase is not feasible

due to1. Forward References2. Memory Requirement

Fundamentals of Language Processing

Analysis Phase

Synthesis Phase

Errors

Source Program

Target Program

Errors

Language Processor

Schematic of Language Processor

Page 33: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 33

• Forward Reference– It is a reference to the entity which precedes its

definition in the program.

percent_profit := (profit * 100) / cost_price; …….. …….. long profit;

Fundamentals of Language Processing

Page 34: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 34

• Language Processor Pass– Pass I : performs analysis of SP and notes relevant

information.– Pass II: performs synthesis of target program.

Pass I analyses SP and generates IR which is given as input to Pass II to generate target code.

Fundamentals of Language Processing

Page 35: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 35

• Intermediate Representation– An IR reflects the effect of some but not all, analysis

and synthesis tasks performed during language processing.

Front End Back End

Intermediate Representation

(IR)

Source Program

Target Program

Fundamentals of Language Processing

Page 36: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 36

• Properties of Intermediate Representation(IR)1. Ease of use.2. Processing efficiency.3. Memory efficiency.

Fundamentals of Language Processing

Page 37: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 37

• Toy Compiler– Front End: Performs lexical, syntax and semantic

analysis of SP.– Each kind of analysis involves

1. Determine validity of source stmt.2. Determine the content of source stmt.3. Construct a suitable representation.

Fundamentals of Language Processing

Page 38: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 38

• Output of Front End1. Tables of information: The most important table

is Symbol Table which contains information concerning all identifiers used in the source program

2. Intermediate code (IC): IC is a sequence of IC units, represents meaning of one action in SP

Fundamentals of Language Processing

Page 39: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 39

• Output of Front End Example i: integer;a,b: real;a := b+i;

Symbol Table

Intermediate code1. Convert (id, #1) to real, giving (id, #4)2. Add (id, #4) to (id, #3) giving (id, #5)3. Store (id, #5) in (Id, #2)

No. Symbol Type Length Address 1 i int 2 a real 3 b real4 i* real5 temp real

Fundamentals of Language Processing

Page 40: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 40

• Toy Compiler– Lexical or Linear Analysis (Scanning)

• Identifies lexical units in a source statement.• Classifies units into different classes e.g. id’s,

constants, reserved id’s etc and enters them into different tables

Fundamentals of Language Processing

Page 41: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 41

• Toy Compiler• Token contains

– Class code and number in class

Code #no Id #10e.g.

• ExampleStatement a := b + i;

a := b + i ;

Id #2 Op #5 Id #3 Op #3 Id #1 Op #10

Fundamentals of Language Processing

Page 42: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 42

• Toy Compiler– Syntax or Hierarchical Analysis (Parsing)

• Determines the statement class such as assignment statement, if stmt etc.

e.g.:- a , b : real; and a = b + I ;

real

a b

:=

a+

b i

Fundamentals of Language Processing

Page 43: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 43

• Toy Compiler– Semantic Analysis

• Determines the meaning of the SP• Results in addition of info such as type, length etc.• Determines the meaning of the subtree in IC and adds

info to the IC tree.

Fundamentals of Language Processing

Page 44: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 44

• Toy Compiler– Semantic Analysis

• Stmt a := b +i; proceeds as 1. Type is added to the IC tree2. Rules of assignment indicate expression on RHS

should be evaluated first.3. Rules of addition indicate i should be converted before

additioni. Convert i to real giving i*;ii. Add i* to b giving temp.iii. Store temp in a.

Fundamentals of Language Processing

Page 45: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 45

:=

a, real +

b, real i, int

(a)

:=

a, real +

b, real i*, int

(b)

:=

a, real temp, real

(c)

• Toy Compiler– Semantic Analysis

• Stmt a := b +i; proceeds as

Fundamentals of Language Processing

Page 46: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 46

Scanning

Parsing

Semantic analysis

Symbol tableConstant table

Other table

Source Program

Lexical errors

Syntax errors

Semantic errors

IC

IR Figure: Front end of a Toy Compiler

tokens

Parse tree

• Toy Compiler (Front End)

Fundamentals of Language Processing

Page 47: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 47

• Back End– Memory Allocation: Calculated form its type, length

and dimensionality.

No. Symbol Type Length Address 1 i int 2000

2 a real 2001

3 b real 2002

Fundamentals of Language Processing

Page 48: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 48

• Code generation1. Determine places where results should be kept in

registers/memory location.2. Determine which instruction should be used for type

conversion operations.3. Determine which addressing modes should be used

for accessing variables.

Fundamentals of Language Processing

CONV_R AREG, IADD_R AREG, BMOVEM AREG, A

Figure: Target Code a:= b+ i

Page 49: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 49

Memory allocation

Code generation

Symbol tableConstants table

Other tables

Target program

IR

IC

Figure: Back End of the toy compiler

• Toy Compiler (Back End)

Fundamentals of Language Processing

Page 50: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 50

Chapter 1: Language Processor

• Introduction• Language Processing Activities• Fundamentals of Language Processing• Fundamentals of Language Specification• Language Processing Development Tools

Page 51: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 51

Fundamentals of Language Specification

• Programming Language grammars.

alphabets

Words / Strings

Sentences/ Statements

Language

Page 52: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 52

Terminal symbols, alphabet and strings

• Terminals symbol, alphabet and strings– The alphabet of L is represented by a Greek symbol

Σ.– A symbol in the alphabet is known as a terminal

symbol of language L.– Σ = {a , b , ….z, 0, 1,…. 9}– A string is a finite sequence of symbols.

α= axy

Page 53: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 53

Terminal symbols, alphabet and strings

• Nonterminal Symbols:– A nonterminal symbol is the name of a syntax

category of a language.– E.g. noun, verb, etc.

Page 54: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 54

• Production– Also called as rewriting rule, is a rule of the grammar.

A nonterminal symbol ::= String of Terminals and Nonterminals

e.g.: <Noun Phrase> ::= <Article> <Noun><Article> ::= a| an | the<Noun> ::= boy | apple

Fundamentals of Language Specification

Page 55: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 55

• Grammar– A grammar G of a language LG is a quadruple (Σ,

SNT, S, P) where• Σ is the alphabet• SNT is the set of NT’s• S is the distinguished symbol• P is the set of productions

Fundamentals of Language Specification

Page 56: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 56

• Derivation– Derivation is used to generate valid strings.– Let production P1 of grammar G be of the form

P1 : A ::= αAnd let β be such that β = γAθ then replacement of A by α in string β constitute a derivation

β = γαθ

Fundamentals of Language Specification

Page 57: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 57

• Derivation Example

<Sentence> :: = <Noun Phrase> <Verb Phrase><Noun Phrase> ::= <Article> <Noun><Verb Phrase> ::= <Verb> <Noun Phrase><Article> ::= a| an| the<Noun> ::= boy | apple<Verb> ::= ate

Fundamentals of Language Specification

Page 58: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 58

• Derivation Example− Derivation for ‘the boy ate an apple’

<Sentence> <Noun Phrase> <Verb Phrase><Article> <Noun> <Verb Phrase><Article> <Noun> <Verb> <Noun Phrase>the <Noun> <Verb> <Article> <Noun> the boy <Verb> <Article> <Noun> the boy ate <Article> <Noun> the boy ate an <Noun> the boy ate an apple

Fundamentals of Language Specification

Page 59: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 59

• Reduction– Derivation is used to recognize valid string.– Let production P1 of grammar G be of the form

P1 : A ::= αAnd let β be such that β = γ α θ then replacement of α by A in string β constitute a derivation

β = γαθ

Fundamentals of Language Specification

Page 60: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 60

• Reduction Example

<Sentence> :: = <Noun Phrase> <Verb Phrase><Noun Phrase> ::= <Article> <Noun><Verb Phrase> ::= <Verb> <Noun Phrase><Article> ::= a| an| the<Noun> ::= boy | apple<Verb> ::= ate

Fundamentals of Language Specification

Page 61: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 61

• Reduction Example− Reduction for ‘the boy ate an apple’

the boy ate an apple the boy ate an <Noun> the boy ate <Article> <Noun> the boy <Verb> <Article> <Noun> the <Noun> <Verb> <Article> <Noun><Article> <Noun> <Verb> <Noun Phrase><Article> <Noun> <Verb Phrase><Noun Phrase> <Verb Phrase><Sentence>

Fundamentals of Language Specification

Page 62: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 62

• Parse Tree– A sequence of derivation or reduction reveals the

syntactic structure of a string with respect to grammar G.

– We depict the syntactic structure in the form of parse tree.

Fundamentals of Language Specification

Page 63: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 63

• Parse Tree Example− Parse Tree for ‘the boy ate an apple’

Fundamentals of Language Specification

<Sentence>

<Noun Phrase> <Verb Phrase>

<Article> <Noun> <Verb> <Noun Phrase>

<Article> <Noun>

the boy ate an apple

1 2 3

4 5

6

7

8

9

Page 64: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 64

• Recursive Specification– The RHS alternative employing recursion is called a

recursive rule.– Recursive rules are classified into left recursive and

right recursive rules.– Indirect recursion occurs when two or more

nonterminals are defined in terms of one another.

Fundamentals of Language Specification

Page 65: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 65

• Recursive Specification Example<exp> ::= <exp> + <term> | <term><term> ::= <term> * <factor> | <factor><factor> ::= <factor> ↑ <primary> | <primary><primary> ::= <id> | <const> | (<exp>)<id> ::= <letter> | <id>[<letter | digit>]<const> ::= [+ | -] <digit> | <const> <digit><letter> ::= a | b | …. | z<digit> ::= 0 | 1|….| 9

Fundamentals of Language Specification

Page 66: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 66

• Recursive Specification Example– The rule for <id> and <const> are equivalent to the

rules<id> ::= <letter> | <id> <letter> | <id> <digit>]<const> ::= + <digit> | - <digit> | <const> <digit>

– Controlled recurrence may be specified for <id> as follows<id> ::= <letter> {<letter> | <digit>}0

15

Fundamentals of Language Specification

Page 67: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 67

• Classification of Grammars– Type-0 grammar or Unstructured or Phrase Structured

grammarα ::= β

– Type-1 grammar or Context Sensitive grammarα Aβ ::= α πβ

– Type-3 grammar or Context Free grammarA ::= π

Fundamentals of Language Specification

Page 68: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 68

• Classification of Grammars– Type-4 grammar or Linear Grammar

A ::= tB | t orA ::= Bt | t

– Operator Grammar: a grammar none of whose production contain two or more consecutive nonterminals in any RHS alternative.e.g. E ::= E + E | E – E | E * E | E / E | id

Fundamentals of Language Specification

Page 69: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 69

• Ambiguity in grammar specification– Ambiguity implies the possibility of different

interpretation of a source string.E.g. E ::= E + E | E * E | (E) | id

– An ambiguous grammar should be rewritten to eliminate ambiguityE ::= E + E | E * E | (E) | id

Fundamentals of Language Specification

After eliminating ambiguity from grammar

E ::= E + T | TT ::= T * F | FF ::= (E) | id

Page 70: Chapter 1 Language Processor

• Binding and Binding Times– Program entity pei in program P has a some

attributes. pei

kind

variable procedure Reserved id etc

type dimension Memoryaddress

etc

size

Mrs. Sunita M Dol, CSE Dept.05/03/2023 70

Fundamentals of Language Specification

Page 71: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 71

• Binding and Binding Times– A binding is an association of an attribute of a

program entity with a value.– Binding time is the time at which binding is performed.

int a;

Fundamentals of Language Specification

Page 72: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 72

• Binding and Binding Times1. Language definition time of language L2. Language implementation time of language L3. Compilation time of program P4. Execution init time of procedure proc5. Execution time of procedure proc

Fundamentals of Language Specification

Page 73: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 73

program bindings(input , output);var

i : integer;a,b : real;

procedure proc (x: real; j: integer);var

info : array[1…10,1…5] of integer;p : ↑ integer;

begin new (p);

end;begin

proc(a,i);end

Fundamentals of Language Specification

Page 74: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 74

• Binding and Binding Times– Binding of keywords with its meaning.

e.g.: program, procedure, begin and end.– Size of type int is bind to n bytes (Language

implementation time)– Binding of var to its type. (Compilation time)– Memory addresses are allocated to the variables.

(Execution init time)– Values are binded to memory address. (Execution

time of procedure)

Fundamentals of Language Specification

Page 75: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 75

• Importance of binding times– The binding time of an attribute of a program entity determines

the manner in which a language processor can handle the use of the entity.e.g. procedure pl1_proc (x, j, info_size, columns)declare x float;declare (j, info_size, columns) fixed;declare pl1_info (1: info_size, 1: columns) fixed;…. end pl1_proc

– An early binding provides greater execution efficiency whereas a late binding provides greater flexibility in the writing of a program.

Fundamentals of Language Specification

Page 76: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 76

• Static and dynamic binding– Static Binding: Binding is performed before the

execution of a program begins.

– Dynamic Binding:Binding is performed after the execution of a program has begun.

Fundamentals of Language Specification

Page 77: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 77

Chapter 1: Language Processor

• Introduction• Language Processing Activities• Fundamentals of Language Processing• Fundamentals of Language Specification• Language Processing Development Tools

Page 78: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 78

Language Processor Development Tools (LPDT)

• LPDT requires two inputs:1. Specification of a grammar of language L2. Specification of semantic actions

• Two LPDT’s which are widely used1. LEX (Lexical analyzer)2. YACC (Parser Generator)

Page 79: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 79

• LPDT contains translation rules of form: <string specification> { <semantic action>}

Front end generator

Grammar of L

Semantic action

Scanning

Parsing

Semantic analysis

Source Program

IR

Front end

Language Processor Development Tools (LPDT)

Figure: Language Processor Development Tool

Page 80: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 80

Scanner

Parser

LEX

YACC

Source Program in L

IR

Lexical Specification

Syntax Specification

Language Processor Development Tools (LPDT)

Figure: Using LEX and YACC

Page 81: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 81

• LEX– LEX consists of two components

• Specification of strings such as id’s, constants etc.• Specification of semantic action

Language Processor Development Tools (LPDT)

Page 82: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 82

%{//Symbols definition; 1st section

%}

%%//translation rules; 2nd sectionSpecification Action

%%

//Routines; 3rd section

• LEX

Language Processor Development Tools (LPDT)

Page 83: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 83

% { letter [A-Za-z]digit [0-9]

}%%%

begin {return(BEGIN);}end {return(END);}{letter} ( {letter}|{digit})* {yylval = enter_id(); return(ID);}{digit}+ {yylval=enter_num(); return(NUM);}

%%enter_id() { /*enters id in symbol table*/ }enter_num() {/* enters number in constabts table */}

• LEX Example

Language Processor Development Tools (LPDT)

Page 84: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 84

• YACC– String specification resembles grammar production.– YACC performs reductions according to the grammar.

Language Processor Development Tools (LPDT)

Page 85: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 85

%%E : E+T {$$ = gencode(‘+’, $1, $3);}

| T {$$ = $1;}T : T*V {$$ = gencode(‘*’, $1, $3);}

| V {$$ = $1;}V : id {$$ = gendesc($1);}

%%gencode (operator, operand_1, operand_2){ }gendesc(symbol) { }

• YACC Example

Language Processor Development Tools (LPDT)

Page 86: Chapter 1 Language Processor

05/03/2023 Mrs. Sunita M Dol, CSE Dept. 86

• YACC Example– Parsing the string b + c * d where a, b and c are of type

real using parser generated by YACC leads to the following calls on C-routinesGendesc(Id#1)

Gendesc(Id#2)Gendesc(Id#3)Gencode(*, c,real , d,real)Gencode(+, b,real , t,real)

Language Processor Development Tools (LPDT)