SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
Compiler Construction
2
Texts:
Compiler Construction Principles and Practice
by Kenneth C. Louden
Compilers
by Afred, Jaffery Ulman
Introduction
3
4
A Compiler is a program that Reads one
Language (Source Code) and Translate it into
an equivalent another Language (Target Code)
CompilerSource Code Target Code
5
Source Code
usually in a high-level language,
e.g. C++, JAVA, VB, FORTAN, PASCAL, etc.
Target Code
usually in machine language (object code) or
assembly language (assembly code).
6
Thus a Compiler specifically is an executable
program that Reads a source code written in
usually some high-level language and Translates it
into an equivalent object code (machine language)
or assembly code (assembly language)
Compiler
code in
high-level
language
outputExecutable program
in machine language
executable program
in machine code or
assembly code
input
Definition
Complexity
A compiler may be a complex from program from
10,000 to 100,000 lines of source code.
7
Uses
compiler construction techniques have a large scope of
applications and these are used almost in every
field of computer sciences.
8
Our Task ?
Our task is to understand the basic organization,
structure and operations of a compiler.
9
Prerequisites
 Data Structures
 Discrete Mathematics
 Programming Languages
 Computer Architectures
 Assembly Languages
 Automata Theory (most helpful)
10
Design Issues
Programming Language Design issues are actually
Based on Language Design Issues so will discuss
the both ones.
11
Why Compiler ?
The Background
12
Machine Language
With the advent of Stored Program Computer in
late 1940’s by John Von Neumann, it was time
To write Computer Programs (sequence of steps),
that needed a Compiler to interpret these
Programs.
Initially these programs were written in the actual
Machine Codes.
exp.
Task: move a number 2 to memory location 0000.
Machine Code Instruction c7 06 0000 0002
13
Programming was much difficult in such language
thus a symbolic language was introduced, and that
language is called Assembly Language
exp.
Task: move a number 2 to memory location 0000.
Machine Code Instruction: c7 06 0000 0002
Assembly Code Instruction: move x , 2
where x is symbolic memory location.
14
Assembly Language
Machine Dependency
Difficult to Read (understand) & Write
15
Drawbacks
The next step in programming was the advent of
high level languages, exp.
Task: move a number 2 to memory location 0000.
Machine Code Instruction: c7 06 0000 0002
Assembly Code Instruction: move x , 2
High Level Instruction: x = 2 ;
16
High Level Language
Machine Independency
Easy to Read (understand) & Write
Close to human nature
mathematically & logically
17
Advantages
FORTRAN (1954 - 1957)
FORTRAN was the first high level language
developed in 195- 1954
Thus the first compiler for FORTRAN was
developed by the team at IBM led by John Backus
between 1954 and 1957.
18
Noam Chomsky
When the first compiler was under construction
during 195- 1954, Noam Chomsky was working on
the structure of Natural Languages
Chomsky’s research work also helped the
construction of first compiler.
19
Chomsky Hierarchy
Chomsky classified the languages according to the
complexity of their grammar
These Hierarchies are;
Type 0
Type 1
Type 2
Type 3
Where each next type is an advance form of their
previous type.
20
Parsing Problem
The next step in the development of compilers
was the study of parsing problem during 1960 to
1970,
During that study CFL and the problem to find out
efficient algorithms for the recognition of CFL
were studied.
21
Recent Work
Currently scientists are continuously working and
trying to find efficient methods of object code
generation. Its really difficult to generate truly
optimal code, but they only increase its efficiency.
Similarly work is being on the automation of
different phases, i.e., scanner generators, parser
Generators, etc.
22
Recent Work
Scientists are also working to develop
different sophisticated algorithms for pre analysis
of source code, like Unification Algorithm
Development of more enhanced and rich window
based IDE’s
Standardization of such environments.
etc,
23
(1) for development of new languages.
- language extensions & improvement
- more rich/formal specification of languages
- development of 4th generation languages
(2) for Standardization of Construction Process.
(3) for parallelizing compilers & related tools.
(4) for new development platforms.
24
Importance
(5) theories learned in this course are applicable to
other fields
e.g.,
prototyping tools,
database languages
text formatter
FSM (Finite State Machine) translator
query interpreter
command line interpreter
interface programs
Silicon Compilers, etc.
(6) for improving capabilities of existing
compiler/interpreter
25
Silicon compiler
- A silicon compiler is a software system that takes a
user's specifications and automatically generates an
integrated circuit (IC). The process is sometimes
referred to as hardware compilation.
- Source language: conventional programming
language
- Variables
Represents not the location but logical signals (0 or 1)
or groups of signals in a switching circuit.
- Output : circuit design in an appropriate language
26
Assignment # 1
27

Mais conteúdo relacionado

Mais procurados

PROGRAMMING LANGUAGES
PROGRAMMING LANGUAGESPROGRAMMING LANGUAGES
PROGRAMMING LANGUAGESABHINAV SINGH
 
generation of programming language
 generation of programming language generation of programming language
generation of programming languagekunalkumar500
 
Programming Fundamental Presentation
Programming Fundamental PresentationProgramming Fundamental Presentation
Programming Fundamental Presentationfazli khaliq
 
Generations of Programming Languages
Generations of Programming LanguagesGenerations of Programming Languages
Generations of Programming Languagesjocleph
 
Programming languages
Programming languagesProgramming languages
Programming languagesSimon Mui
 
Introduction of c programming
Introduction of c programmingIntroduction of c programming
Introduction of c programmingTarun Sharma
 
Computer Programming Overview
Computer Programming OverviewComputer Programming Overview
Computer Programming Overviewagorolabs
 
Theory of programming
Theory of programmingTheory of programming
Theory of programmingtcc_joemarie
 
introduction to c programming language
introduction to c programming languageintroduction to c programming language
introduction to c programming languagesanjay joshi
 
C Unit 1 notes PREPARED BY MVB REDDY
C Unit 1 notes PREPARED BY MVB REDDYC Unit 1 notes PREPARED BY MVB REDDY
C Unit 1 notes PREPARED BY MVB REDDYRajeshkumar Reddy
 
Program & language generation
Program & language generationProgram & language generation
Program & language generationBuxoo Abdullah
 
Generations of Programming Languages
Generations of Programming LanguagesGenerations of Programming Languages
Generations of Programming LanguagesTarun Sharma
 
Generations of programming_language.kum_ari11-1-1-1
Generations of programming_language.kum_ari11-1-1-1Generations of programming_language.kum_ari11-1-1-1
Generations of programming_language.kum_ari11-1-1-1lakshmi kumari neelapu
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languagesVarun Garg
 
Generations Of Programming Languages
Generations Of Programming LanguagesGenerations Of Programming Languages
Generations Of Programming Languagespy7rjs
 

Mais procurados (20)

PROGRAMMING LANGUAGES
PROGRAMMING LANGUAGESPROGRAMMING LANGUAGES
PROGRAMMING LANGUAGES
 
Introduction of c language
Introduction of c languageIntroduction of c language
Introduction of c language
 
Programming landuages
Programming landuagesProgramming landuages
Programming landuages
 
generation of programming language
 generation of programming language generation of programming language
generation of programming language
 
Programming Fundamental Presentation
Programming Fundamental PresentationProgramming Fundamental Presentation
Programming Fundamental Presentation
 
Generations of Programming Languages
Generations of Programming LanguagesGenerations of Programming Languages
Generations of Programming Languages
 
Programing Language
Programing LanguagePrograming Language
Programing Language
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Introduction of c programming
Introduction of c programmingIntroduction of c programming
Introduction of c programming
 
Computer Programming Overview
Computer Programming OverviewComputer Programming Overview
Computer Programming Overview
 
Theory of programming
Theory of programmingTheory of programming
Theory of programming
 
introduction to c programming language
introduction to c programming languageintroduction to c programming language
introduction to c programming language
 
C Unit 1 notes PREPARED BY MVB REDDY
C Unit 1 notes PREPARED BY MVB REDDYC Unit 1 notes PREPARED BY MVB REDDY
C Unit 1 notes PREPARED BY MVB REDDY
 
Program & language generation
Program & language generationProgram & language generation
Program & language generation
 
Generations of Programming Languages
Generations of Programming LanguagesGenerations of Programming Languages
Generations of Programming Languages
 
Evolution of Computer Languages
Evolution of Computer LanguagesEvolution of Computer Languages
Evolution of Computer Languages
 
Generations of programming_language.kum_ari11-1-1-1
Generations of programming_language.kum_ari11-1-1-1Generations of programming_language.kum_ari11-1-1-1
Generations of programming_language.kum_ari11-1-1-1
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languages
 
Generations Of Programming Languages
Generations Of Programming LanguagesGenerations Of Programming Languages
Generations Of Programming Languages
 
Presentation on Programming Languages.
Presentation on Programming Languages.Presentation on Programming Languages.
Presentation on Programming Languages.
 

Semelhante a Lecture # 1

all languages in computer programming
all languages in computer programmingall languages in computer programming
all languages in computer programminghamza239523
 
Basic programming concepts
Basic programming conceptsBasic programming concepts
Basic programming conceptssalmankhan570
 
Compiler Construction Lecture One .pptx
Compiler Construction Lecture One  .pptxCompiler Construction Lecture One  .pptx
Compiler Construction Lecture One .pptxانشال عارف
 
Introduction To Computer Programming
Introduction To Computer ProgrammingIntroduction To Computer Programming
Introduction To Computer ProgrammingHussain Buksh
 
History of Computer Programming Languages.pptx
History of Computer Programming Languages.pptxHistory of Computer Programming Languages.pptx
History of Computer Programming Languages.pptxAliAbbas906043
 
Introduction to compiler development
Introduction to compiler developmentIntroduction to compiler development
Introduction to compiler developmentDeepOad
 
English de lenguaje de programacion
English de lenguaje de programacionEnglish de lenguaje de programacion
English de lenguaje de programacionVillalba Griselda
 
Introduction to Computer
Introduction to ComputerIntroduction to Computer
Introduction to Computerzaheeriqbal41
 
Introduction Programming Languages
Introduction Programming LanguagesIntroduction Programming Languages
Introduction Programming LanguagesManish Kharotia
 
Lesson 1-3 Fundamentals of Programming.pptx
Lesson 1-3 Fundamentals of Programming.pptxLesson 1-3 Fundamentals of Programming.pptx
Lesson 1-3 Fundamentals of Programming.pptxDysRobles
 
Programming lesson1
Programming lesson1Programming lesson1
Programming lesson1camfollower
 
computerprogramminglanguages-201216152310.pptx
computerprogramminglanguages-201216152310.pptxcomputerprogramminglanguages-201216152310.pptx
computerprogramminglanguages-201216152310.pptxSubramanian Mani
 

Semelhante a Lecture # 1 (20)

all languages in computer programming
all languages in computer programmingall languages in computer programming
all languages in computer programming
 
Basic programming concepts
Basic programming conceptsBasic programming concepts
Basic programming concepts
 
Compiler Construction Lecture One .pptx
Compiler Construction Lecture One  .pptxCompiler Construction Lecture One  .pptx
Compiler Construction Lecture One .pptx
 
Introduction To Computer Programming
Introduction To Computer ProgrammingIntroduction To Computer Programming
Introduction To Computer Programming
 
History of Computer Programming Languages.pptx
History of Computer Programming Languages.pptxHistory of Computer Programming Languages.pptx
History of Computer Programming Languages.pptx
 
Introduction to compiler development
Introduction to compiler developmentIntroduction to compiler development
Introduction to compiler development
 
English de lenguaje de programacion
English de lenguaje de programacionEnglish de lenguaje de programacion
English de lenguaje de programacion
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Introduction to Computer
Introduction to ComputerIntroduction to Computer
Introduction to Computer
 
Introduction Programming Languages
Introduction Programming LanguagesIntroduction Programming Languages
Introduction Programming Languages
 
Plc part 1
Plc part 1Plc part 1
Plc part 1
 
Lesson 1-3 Fundamentals of Programming.pptx
Lesson 1-3 Fundamentals of Programming.pptxLesson 1-3 Fundamentals of Programming.pptx
Lesson 1-3 Fundamentals of Programming.pptx
 
Code learning
Code learningCode learning
Code learning
 
Programming lesson1
Programming lesson1Programming lesson1
Programming lesson1
 
CS3251-_PIC
CS3251-_PICCS3251-_PIC
CS3251-_PIC
 
computerprogramminglanguages-201216152310.pptx
computerprogramminglanguages-201216152310.pptxcomputerprogramminglanguages-201216152310.pptx
computerprogramminglanguages-201216152310.pptx
 
SS UI Lecture 1
SS UI Lecture 1SS UI Lecture 1
SS UI Lecture 1
 
Ss ui lecture 1
Ss ui lecture 1Ss ui lecture 1
Ss ui lecture 1
 
Introduction to C Programming
Introduction to C ProgrammingIntroduction to C Programming
Introduction to C Programming
 
Computer programming languages
Computer programming languagesComputer programming languages
Computer programming languages
 

Último

BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...Sapna Thakur
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingTeacherCyreneCayanan
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room servicediscovermytutordmt
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 

Último (20)

BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 

Lecture # 1

  • 1.
  • 2. Compiler Construction 2 Texts: Compiler Construction Principles and Practice by Kenneth C. Louden Compilers by Afred, Jaffery Ulman
  • 4. 4 A Compiler is a program that Reads one Language (Source Code) and Translate it into an equivalent another Language (Target Code) CompilerSource Code Target Code
  • 5. 5 Source Code usually in a high-level language, e.g. C++, JAVA, VB, FORTAN, PASCAL, etc. Target Code usually in machine language (object code) or assembly language (assembly code).
  • 6. 6 Thus a Compiler specifically is an executable program that Reads a source code written in usually some high-level language and Translates it into an equivalent object code (machine language) or assembly code (assembly language) Compiler code in high-level language outputExecutable program in machine language executable program in machine code or assembly code input Definition
  • 7. Complexity A compiler may be a complex from program from 10,000 to 100,000 lines of source code. 7
  • 8. Uses compiler construction techniques have a large scope of applications and these are used almost in every field of computer sciences. 8
  • 9. Our Task ? Our task is to understand the basic organization, structure and operations of a compiler. 9
  • 10. Prerequisites  Data Structures  Discrete Mathematics  Programming Languages  Computer Architectures  Assembly Languages  Automata Theory (most helpful) 10
  • 11. Design Issues Programming Language Design issues are actually Based on Language Design Issues so will discuss the both ones. 11
  • 12. Why Compiler ? The Background 12
  • 13. Machine Language With the advent of Stored Program Computer in late 1940’s by John Von Neumann, it was time To write Computer Programs (sequence of steps), that needed a Compiler to interpret these Programs. Initially these programs were written in the actual Machine Codes. exp. Task: move a number 2 to memory location 0000. Machine Code Instruction c7 06 0000 0002 13
  • 14. Programming was much difficult in such language thus a symbolic language was introduced, and that language is called Assembly Language exp. Task: move a number 2 to memory location 0000. Machine Code Instruction: c7 06 0000 0002 Assembly Code Instruction: move x , 2 where x is symbolic memory location. 14 Assembly Language
  • 15. Machine Dependency Difficult to Read (understand) & Write 15 Drawbacks
  • 16. The next step in programming was the advent of high level languages, exp. Task: move a number 2 to memory location 0000. Machine Code Instruction: c7 06 0000 0002 Assembly Code Instruction: move x , 2 High Level Instruction: x = 2 ; 16 High Level Language
  • 17. Machine Independency Easy to Read (understand) & Write Close to human nature mathematically & logically 17 Advantages
  • 18. FORTRAN (1954 - 1957) FORTRAN was the first high level language developed in 195- 1954 Thus the first compiler for FORTRAN was developed by the team at IBM led by John Backus between 1954 and 1957. 18
  • 19. Noam Chomsky When the first compiler was under construction during 195- 1954, Noam Chomsky was working on the structure of Natural Languages Chomsky’s research work also helped the construction of first compiler. 19
  • 20. Chomsky Hierarchy Chomsky classified the languages according to the complexity of their grammar These Hierarchies are; Type 0 Type 1 Type 2 Type 3 Where each next type is an advance form of their previous type. 20
  • 21. Parsing Problem The next step in the development of compilers was the study of parsing problem during 1960 to 1970, During that study CFL and the problem to find out efficient algorithms for the recognition of CFL were studied. 21
  • 22. Recent Work Currently scientists are continuously working and trying to find efficient methods of object code generation. Its really difficult to generate truly optimal code, but they only increase its efficiency. Similarly work is being on the automation of different phases, i.e., scanner generators, parser Generators, etc. 22
  • 23. Recent Work Scientists are also working to develop different sophisticated algorithms for pre analysis of source code, like Unification Algorithm Development of more enhanced and rich window based IDE’s Standardization of such environments. etc, 23
  • 24. (1) for development of new languages. - language extensions & improvement - more rich/formal specification of languages - development of 4th generation languages (2) for Standardization of Construction Process. (3) for parallelizing compilers & related tools. (4) for new development platforms. 24 Importance
  • 25. (5) theories learned in this course are applicable to other fields e.g., prototyping tools, database languages text formatter FSM (Finite State Machine) translator query interpreter command line interpreter interface programs Silicon Compilers, etc. (6) for improving capabilities of existing compiler/interpreter 25
  • 26. Silicon compiler - A silicon compiler is a software system that takes a user's specifications and automatically generates an integrated circuit (IC). The process is sometimes referred to as hardware compilation. - Source language: conventional programming language - Variables Represents not the location but logical signals (0 or 1) or groups of signals in a switching circuit. - Output : circuit design in an appropriate language 26