SlideShare uma empresa Scribd logo
1 de 42
UNIT-III
Programming Language
• Lexical and Syntactic features of a
programming Language are specified by its
grammar
• Language:- collection of valid sentences.
• Sentences: These are the sequence of words.
• Word:- Sequence of letters of graphic symbols.
• The Language specified in this manner is
called as formal Language.
Programming Language Grammar
• A formal Language is a set of rules which
precisely specify the sentence of L.
• Formal Grammar can be represented as :-
• G= {∑ , NT, S, P}
– ∑ set of terminals
– NT set of non terminals
– S Distinguished symbol (Starting symbol)
– P set of productions.
• Terminal Symbol:- These are the symbols
which can not further sub divided
– Ex:- ∑= { a, b,c,d…….0,1,2,3……}
• No terminal symbols:- These are the
combination of terminal symbols which can be
further sub divided.
– Ex:- <A> or <Noun>
• Production :- It is called as re-writing rule
• It can be represented as :-
– Each production consists of a No terminal
followed by an arrow (-) or equal to (=),
followed by string of Non terminals and terminals
– Ex:- A  b
S  Aa
Syntax Tree
• A Graphical representation of any statement
of a Language is called as syntax tree.
id
id+id*id
Derivation
• The replacement of Non terminal symbols
according to the given production rule is
called as derivation
• Types of Derivation:
– Leftmost derivation
– Rightmost derivation
Rules for English Language
1) <Sentence>  <NP><VP>
2) <NP>  <article><noun>
3) <VP>  <verb>
4) <VP>  <verb><adverb>
5) <article>  The
6) <noun>  student
7) <verb>  studies
8) <adverb>  hard
9) <adverb>  slowly
Derivation
• Structure Rules applied
• <Sentence>
• <NP><VP> (1)
• <article><noun>< VP> (2)
• <article><noun> <verb><adverb> (4)
• The <noun> <verb><adverb> (5)
• The student <verb> <adverb> (6)
• The student studies <adverb> (7)
• The student studies hard (8)
• Ex. Consider the full grammar,
• E → E+E
• E → E*E
• E → id
• Let us derive the string “ id + id * id”
Using leftmost derivation:-
Using Right most derivation:-
Rules
Required string is bbaa
• Derive the string
–babbaaaba
Required string is
baab
Reduction
• It is the process of replacement of string or
part of string by non terminal according to the
production rule.
• Structure Rules applied
• The student studies hard
• <article> student studies hard (5)
• <article><noun> studies hard (6)
• <article><noun> <verb> hard (7)
• <article><noun> <verb> <adverb> (8)
• <NP> <verb> <adverb> (2)
• <NP><VP> (4)
• <Sentence> (1)
Ambiguity of Grammar
• The Grammar for a language is said to be
ambiguous if there exists at least one string
which can be generated (or, derived) in more
than one way
• i. e. there can be more than one leftmost
derivations, more than one rightmost
derivations & also more than one derivation
trees associated with such a string.
• Ex. Consider the full grammar,
• E → E+E
• E → E*E
• E → id
• Let us derive the string “ id + id * id”
id id
Compiler
• Complier:-
• These are the system programs which will
automatically translate the High level language
program in to the machine language program
Compiler
Database
Source program
High level Lang.
Prog.
Target program /
M/C Lang. Prog.
• Cross Compiler:-
• These are the system programs which will automatically
translate the HLL program compatible with M/C A, in to the
machine language program compatible with M/C A , but the
underlying M/C is M/C B
Cross Compiler
Source program
HLL Prog.
Compatible with
M/C A
Target program /
M/C Lang. Prog.
M/C B
P Code Compiler
Source
Program
Compiler
Obj
Program
Exexute
P-Code interpreter
P-Code interpreter
• Very similar in concept of Interpreter
• In pseudo- code complier program is analyzed
and converted into an intermediate form,
which is then executed interpretively.
• The source program is compiled, the resulted
object program is in p-code. This p-code
program is then read and executed under
control of p-code interpreter.
Compilation process overview
• Compilation process is vast and complex.
• Hence it is divided into a series of subtasks
called as phases.
• Each of which transform the source program
form one representation to another.
• The compilation process involves two major
tasks.
Compilation process overview
Analysis of + Synthesis of = Translation
source text Target text of prog in
obj form
• Analysis of source text
– Lexical Analysis (Scanner)
– Syntax Analysis (Parser)
– Semantic analysis.
• Synthesis of target text
– Storage allocation
– Code generation
Analysis of source text
• Determine validity of source statement from
the analysis view point.
• Determine the content of source statement.
• Construct the suitable representation of the
source statement f0r use by the subsequent
analysis phase or by the synthesis phase of
compiler.
Synthesis of target text
• Memory allocation:- It is the simple task given to
the presence of symbol table. The memory
requirement of an identifier is computed from its
length, type and dimension and memory is
allocated to it.
• Code generation:- the code generation uses the
knowledge of target architecture , knowledge of
instruction and also the addressing modes in the
target computer to select the appropriate
instruction.
Synthesis of target text
• The important issues in code generation are
– Determine the space where the intermediate
results should ne kept i.e. whether they should be
kept in memory location or held in machine
register.
– Determine which instruction should be used for
type conversion operation.
– Determine which addressing mode should be
used.
Phase Structure of Compiler
Code Optimization
• This is an optional phase to improve the
intermediate code so that ultimate object
program can run faster and also take less phase.
• The ultimate aim of this technique is to
improve the execution efficiency of a program by
– Eliminating redundancies
– Rearranging the computation in the program with out
affecting target machine.
Code optimization techniques
1. Compile time evaluation
2. Elimination of common sub expressions
3. Frequency reduction
4. Strength reduction
5. Dead code elimination
6. Boolean sub expressions optimization
7. Local and Global optimization.

Mais conteúdo relacionado

Mais procurados

Chap 1-language processor
Chap 1-language processorChap 1-language processor
Chap 1-language processorshindept123
 
Fundamentals of Language Processing
Fundamentals of Language ProcessingFundamentals of Language Processing
Fundamentals of Language ProcessingHemant Sharma
 
Cd ch2 - lexical analysis
Cd   ch2 - lexical analysisCd   ch2 - lexical analysis
Cd ch2 - lexical analysismengistu23
 
Compiler Design Lecture Notes
Compiler Design Lecture NotesCompiler Design Lecture Notes
Compiler Design Lecture NotesFellowBuddy.com
 
Lecture 1 introduction to language processors
Lecture 1  introduction to language processorsLecture 1  introduction to language processors
Lecture 1 introduction to language processorsRebaz Najeeb
 
Compiler Construction | Lecture 1 | What is a compiler?
Compiler Construction | Lecture 1 | What is a compiler?Compiler Construction | Lecture 1 | What is a compiler?
Compiler Construction | Lecture 1 | What is a compiler?Eelco Visser
 
Techniques & applications of Compiler
Techniques & applications of CompilerTechniques & applications of Compiler
Techniques & applications of CompilerPreethi AKNR
 
Ppl for students unit 1,2 and 3
Ppl for students unit 1,2 and 3Ppl for students unit 1,2 and 3
Ppl for students unit 1,2 and 3Akshay Nagpurkar
 
Introduction to Programming
Introduction to ProgrammingIntroduction to Programming
Introduction to ProgrammingChaffey College
 
Learning New Semi-Supervised Deep Auto-encoder Features for Statistical Machi...
Learning New Semi-Supervised Deep Auto-encoder Features for Statistical Machi...Learning New Semi-Supervised Deep Auto-encoder Features for Statistical Machi...
Learning New Semi-Supervised Deep Auto-encoder Features for Statistical Machi...Vimukthi Wickramasinghe
 

Mais procurados (20)

Compiler design Project
Compiler design ProjectCompiler design Project
Compiler design Project
 
Chap 1-language processor
Chap 1-language processorChap 1-language processor
Chap 1-language processor
 
Fundamentals of Language Processing
Fundamentals of Language ProcessingFundamentals of Language Processing
Fundamentals of Language Processing
 
Cd ch2 - lexical analysis
Cd   ch2 - lexical analysisCd   ch2 - lexical analysis
Cd ch2 - lexical analysis
 
Compilers Design
Compilers DesignCompilers Design
Compilers Design
 
Compiler Design Unit 1
Compiler Design Unit 1Compiler Design Unit 1
Compiler Design Unit 1
 
Compiler Design
Compiler DesignCompiler Design
Compiler Design
 
C basics
C basicsC basics
C basics
 
Compiler Design Lecture Notes
Compiler Design Lecture NotesCompiler Design Lecture Notes
Compiler Design Lecture Notes
 
Lecture 1 introduction to language processors
Lecture 1  introduction to language processorsLecture 1  introduction to language processors
Lecture 1 introduction to language processors
 
Compiler construction
Compiler constructionCompiler construction
Compiler construction
 
Compiler Construction | Lecture 1 | What is a compiler?
Compiler Construction | Lecture 1 | What is a compiler?Compiler Construction | Lecture 1 | What is a compiler?
Compiler Construction | Lecture 1 | What is a compiler?
 
Techniques & applications of Compiler
Techniques & applications of CompilerTechniques & applications of Compiler
Techniques & applications of Compiler
 
Ppl for students unit 1,2 and 3
Ppl for students unit 1,2 and 3Ppl for students unit 1,2 and 3
Ppl for students unit 1,2 and 3
 
Introduction to Programming
Introduction to ProgrammingIntroduction to Programming
Introduction to Programming
 
Compiler design
Compiler designCompiler design
Compiler design
 
Learning New Semi-Supervised Deep Auto-encoder Features for Statistical Machi...
Learning New Semi-Supervised Deep Auto-encoder Features for Statistical Machi...Learning New Semi-Supervised Deep Auto-encoder Features for Statistical Machi...
Learning New Semi-Supervised Deep Auto-encoder Features for Statistical Machi...
 
Compilers
CompilersCompilers
Compilers
 
Introduction to compilers
Introduction to compilersIntroduction to compilers
Introduction to compilers
 
Cs111 ch01 v4
Cs111 ch01 v4Cs111 ch01 v4
Cs111 ch01 v4
 

Destaque

Unitiv 111206005201-phpapp01
Unitiv 111206005201-phpapp01Unitiv 111206005201-phpapp01
Unitiv 111206005201-phpapp01riddhi viradiya
 
Designing language courses
Designing language coursesDesigning language courses
Designing language courseszesi rusma
 
Unit ii-111206004636-phpapp01
Unit ii-111206004636-phpapp01Unit ii-111206004636-phpapp01
Unit ii-111206004636-phpapp01riddhi viradiya
 
Public speaking (touring to cordova)
Public speaking (touring to cordova)Public speaking (touring to cordova)
Public speaking (touring to cordova)zesi rusma
 
chuyên dịch vụ giúp việc nhà có kinh nghiệm tại sài gòn
chuyên dịch vụ giúp việc nhà có kinh nghiệm tại sài gònchuyên dịch vụ giúp việc nhà có kinh nghiệm tại sài gòn
chuyên dịch vụ giúp việc nhà có kinh nghiệm tại sài gònjarrett864
 
Unit1 111206003944-phpapp02
Unit1 111206003944-phpapp02Unit1 111206003944-phpapp02
Unit1 111206003944-phpapp02riddhi viradiya
 
Curriculum development in_language_teaching
Curriculum development in_language_teachingCurriculum development in_language_teaching
Curriculum development in_language_teachingzesi rusma
 

Destaque (9)

Unitiv 111206005201-phpapp01
Unitiv 111206005201-phpapp01Unitiv 111206005201-phpapp01
Unitiv 111206005201-phpapp01
 
Designing language courses
Designing language coursesDesigning language courses
Designing language courses
 
Unit ii-111206004636-phpapp01
Unit ii-111206004636-phpapp01Unit ii-111206004636-phpapp01
Unit ii-111206004636-phpapp01
 
Public speaking (touring to cordova)
Public speaking (touring to cordova)Public speaking (touring to cordova)
Public speaking (touring to cordova)
 
chuyên dịch vụ giúp việc nhà có kinh nghiệm tại sài gòn
chuyên dịch vụ giúp việc nhà có kinh nghiệm tại sài gònchuyên dịch vụ giúp việc nhà có kinh nghiệm tại sài gòn
chuyên dịch vụ giúp việc nhà có kinh nghiệm tại sài gòn
 
Unit1 111206003944-phpapp02
Unit1 111206003944-phpapp02Unit1 111206003944-phpapp02
Unit1 111206003944-phpapp02
 
Dhamdhere
DhamdhereDhamdhere
Dhamdhere
 
Curriculum development in_language_teaching
Curriculum development in_language_teachingCurriculum development in_language_teaching
Curriculum development in_language_teaching
 
Full form
Full formFull form
Full form
 

Semelhante a Unit iii-111206004501-phpapp02

Semelhante a Unit iii-111206004501-phpapp02 (20)

Compier Design_Unit I.ppt
Compier Design_Unit I.pptCompier Design_Unit I.ppt
Compier Design_Unit I.ppt
 
Compier Design_Unit I.ppt
Compier Design_Unit I.pptCompier Design_Unit I.ppt
Compier Design_Unit I.ppt
 
Basics of C Prog Lang.pdf
Basics of C Prog Lang.pdfBasics of C Prog Lang.pdf
Basics of C Prog Lang.pdf
 
Compiler Design Introduction
Compiler Design Introduction Compiler Design Introduction
Compiler Design Introduction
 
Embedded c c++ programming fundamentals master
Embedded c c++ programming fundamentals masterEmbedded c c++ programming fundamentals master
Embedded c c++ programming fundamentals master
 
Compiler Construction
Compiler ConstructionCompiler Construction
Compiler Construction
 
System software module 4 presentation file
System software module 4 presentation fileSystem software module 4 presentation file
System software module 4 presentation file
 
Introduction
IntroductionIntroduction
Introduction
 
Introduction
IntroductionIntroduction
Introduction
 
Introduction to compiler
Introduction to compilerIntroduction to compiler
Introduction to compiler
 
4_5802928814682016556.pptx
4_5802928814682016556.pptx4_5802928814682016556.pptx
4_5802928814682016556.pptx
 
CD - CH1 - Introduction to compiler design.pptx
CD - CH1 - Introduction to compiler design.pptxCD - CH1 - Introduction to compiler design.pptx
CD - CH1 - Introduction to compiler design.pptx
 
Fundamentals of Data Structures Unit 1.pptx
Fundamentals of Data Structures Unit 1.pptxFundamentals of Data Structures Unit 1.pptx
Fundamentals of Data Structures Unit 1.pptx
 
C language unit-1
C language unit-1C language unit-1
C language unit-1
 
C LANGUAGE UNIT-1 PREPARED BY M V BRAHMANANDA REDDY
C LANGUAGE UNIT-1 PREPARED BY M V BRAHMANANDA REDDYC LANGUAGE UNIT-1 PREPARED BY M V BRAHMANANDA REDDY
C LANGUAGE UNIT-1 PREPARED BY M V BRAHMANANDA REDDY
 
C languaGE UNIT-1
C languaGE UNIT-1C languaGE UNIT-1
C languaGE UNIT-1
 
Phases of compiler
Phases of compilerPhases of compiler
Phases of compiler
 
Compiler design
Compiler designCompiler design
Compiler design
 
Cd econtent link1
Cd econtent link1Cd econtent link1
Cd econtent link1
 
Chapter 1.pptx
Chapter 1.pptxChapter 1.pptx
Chapter 1.pptx
 

Unit iii-111206004501-phpapp02

  • 2. Programming Language • Lexical and Syntactic features of a programming Language are specified by its grammar • Language:- collection of valid sentences. • Sentences: These are the sequence of words. • Word:- Sequence of letters of graphic symbols. • The Language specified in this manner is called as formal Language.
  • 3. Programming Language Grammar • A formal Language is a set of rules which precisely specify the sentence of L. • Formal Grammar can be represented as :- • G= {∑ , NT, S, P} – ∑ set of terminals – NT set of non terminals – S Distinguished symbol (Starting symbol) – P set of productions.
  • 4. • Terminal Symbol:- These are the symbols which can not further sub divided – Ex:- ∑= { a, b,c,d…….0,1,2,3……} • No terminal symbols:- These are the combination of terminal symbols which can be further sub divided. – Ex:- <A> or <Noun>
  • 5. • Production :- It is called as re-writing rule • It can be represented as :- – Each production consists of a No terminal followed by an arrow (-) or equal to (=), followed by string of Non terminals and terminals – Ex:- A  b S  Aa
  • 6. Syntax Tree • A Graphical representation of any statement of a Language is called as syntax tree.
  • 8. Derivation • The replacement of Non terminal symbols according to the given production rule is called as derivation • Types of Derivation: – Leftmost derivation – Rightmost derivation
  • 9. Rules for English Language 1) <Sentence>  <NP><VP> 2) <NP>  <article><noun> 3) <VP>  <verb> 4) <VP>  <verb><adverb> 5) <article>  The 6) <noun>  student 7) <verb>  studies 8) <adverb>  hard 9) <adverb>  slowly
  • 10. Derivation • Structure Rules applied • <Sentence> • <NP><VP> (1) • <article><noun>< VP> (2) • <article><noun> <verb><adverb> (4) • The <noun> <verb><adverb> (5) • The student <verb> <adverb> (6) • The student studies <adverb> (7) • The student studies hard (8)
  • 11. • Ex. Consider the full grammar, • E → E+E • E → E*E • E → id • Let us derive the string “ id + id * id”
  • 13. Using Right most derivation:-
  • 14. Rules
  • 16. • Derive the string –babbaaaba
  • 17.
  • 19.
  • 20. Reduction • It is the process of replacement of string or part of string by non terminal according to the production rule.
  • 21. • Structure Rules applied • The student studies hard • <article> student studies hard (5) • <article><noun> studies hard (6) • <article><noun> <verb> hard (7) • <article><noun> <verb> <adverb> (8) • <NP> <verb> <adverb> (2) • <NP><VP> (4) • <Sentence> (1)
  • 22. Ambiguity of Grammar • The Grammar for a language is said to be ambiguous if there exists at least one string which can be generated (or, derived) in more than one way • i. e. there can be more than one leftmost derivations, more than one rightmost derivations & also more than one derivation trees associated with such a string.
  • 23. • Ex. Consider the full grammar, • E → E+E • E → E*E • E → id • Let us derive the string “ id + id * id”
  • 24.
  • 25.
  • 26. id id
  • 28. • Complier:- • These are the system programs which will automatically translate the High level language program in to the machine language program Compiler Database Source program High level Lang. Prog. Target program / M/C Lang. Prog.
  • 29. • Cross Compiler:- • These are the system programs which will automatically translate the HLL program compatible with M/C A, in to the machine language program compatible with M/C A , but the underlying M/C is M/C B Cross Compiler Source program HLL Prog. Compatible with M/C A Target program / M/C Lang. Prog. M/C B
  • 31. • Very similar in concept of Interpreter • In pseudo- code complier program is analyzed and converted into an intermediate form, which is then executed interpretively. • The source program is compiled, the resulted object program is in p-code. This p-code program is then read and executed under control of p-code interpreter.
  • 32. Compilation process overview • Compilation process is vast and complex. • Hence it is divided into a series of subtasks called as phases. • Each of which transform the source program form one representation to another. • The compilation process involves two major tasks.
  • 33. Compilation process overview Analysis of + Synthesis of = Translation source text Target text of prog in obj form
  • 34. • Analysis of source text – Lexical Analysis (Scanner) – Syntax Analysis (Parser) – Semantic analysis. • Synthesis of target text – Storage allocation – Code generation
  • 35. Analysis of source text • Determine validity of source statement from the analysis view point. • Determine the content of source statement. • Construct the suitable representation of the source statement f0r use by the subsequent analysis phase or by the synthesis phase of compiler.
  • 36. Synthesis of target text • Memory allocation:- It is the simple task given to the presence of symbol table. The memory requirement of an identifier is computed from its length, type and dimension and memory is allocated to it. • Code generation:- the code generation uses the knowledge of target architecture , knowledge of instruction and also the addressing modes in the target computer to select the appropriate instruction.
  • 37. Synthesis of target text • The important issues in code generation are – Determine the space where the intermediate results should ne kept i.e. whether they should be kept in memory location or held in machine register. – Determine which instruction should be used for type conversion operation. – Determine which addressing mode should be used.
  • 38. Phase Structure of Compiler
  • 39.
  • 40.
  • 41. Code Optimization • This is an optional phase to improve the intermediate code so that ultimate object program can run faster and also take less phase. • The ultimate aim of this technique is to improve the execution efficiency of a program by – Eliminating redundancies – Rearranging the computation in the program with out affecting target machine.
  • 42. Code optimization techniques 1. Compile time evaluation 2. Elimination of common sub expressions 3. Frequency reduction 4. Strength reduction 5. Dead code elimination 6. Boolean sub expressions optimization 7. Local and Global optimization.