SlideShare a Scribd company logo
1 of 8
Compiler Passes
1
• Pass is a complete traversal of the source
program.
• Compiler has two passes to traverse the source
program.
– Multi-pass Compiler
– One-pass Compiler
Multi-pass Compiler
2
• Multi pass compiler is used to process the source code of a
program several times.
• In the first pass, compiler can read the source program,
scan it, extract the tokens and store the result in an output
file.
• In the second pass, compiler can read the output file
produced by first pass, build the syntactic tree and perform
the syntactical analysis. The output of this phase is a file
that contains the syntactical tree.
• In the third pass, compiler can read the output file
produced by second pass and check that the tree follows
the rules of language or not. The output of semantic
analysis phase is the annotated tree syntax.
• This pass is going on, until the target output is produced.
One-pass Compiler
3
• One-pass compiler is used to traverse the program only
once. The one-pass compiler passes only once through the
parts of each compilation unit. It translates each part into
its final machine code.
• In the one pass compiler, when the line source is
processed, it is scanned and the token is extracted.
• Then the syntax of each line is analyzed and the tree
structure is build. After the semantic part, the code is
generated.
• The same process is repeated for each line of code until the
entire program is compiled.
Bootstrapping
4
•Bootstrapping is widely used in the compilation
development.
•Bootstrapping is used to produce a self-hosting compiler.
Self-hosting compiler is a type of compiler that can compile
its own source code.
•Bootstrap compiler is used to compile the compiler and then
you can use this compiled compiler to compile everything else
as well as future versions of itself.
A compiler can be characterized by three languages:
1.Source Language
2.Target Language
3.Implementation Language
Implementing a Bootstrap compiler
5
•Compilers are of two kinds
1. Native Compiler
2. Cross Compiler
•Native Compiler: Native compilers are written in the
same language as the target language.
•E.g. SMM is a compiler for the language S that is in a
language that runs on machine M and generates
output code that runs on machine M.
Implementing a Bootstrap compiler
6
•Follow some steps to produce a new language L for
machine A:
1.Create a compiler S
CA
A
for subset, S of the desired language, L
using language "A" and that compiler runs on machine A.
2.Create a compiler L
CS
A
for language L written in a subset of L.
3. Compile L
CS
A
using the compiler S
CA
A
to obtain L
CA
A
. L
CA
A
is a
compiler for language L, which runs on machine A and
produces code for machine A.
Implementing a Bootstrap compiler
7
Cross Compiler: Cross compilers are written in different
language as the target language.
•E.g. SNM is a compiler for the language S that is in a
language that runs on machine N and generates output code
that runs on machine M.
Steps involving to produce a compiler for a different machine
B (or cross compiler):
1. Convert in to ( by hand, if necessary). Recall that language
S is a subset of language L.
2. Compile to produce , a cross-compiler for L which runs on
machine A and produces code for machine B.
3. Compile with the cross-compiler to produce , a compiler
for language L which runs on machine B
Implementing a Bootstrap compiler
8

More Related Content

What's hot

Compiler Design Basics
Compiler Design BasicsCompiler Design Basics
Compiler Design BasicsAkhil Kaushik
 
Bootstrapping in Compiler
Bootstrapping in CompilerBootstrapping in Compiler
Bootstrapping in CompilerAkhil Kaushik
 
Top Down Parsing, Predictive Parsing
Top Down Parsing, Predictive ParsingTop Down Parsing, Predictive Parsing
Top Down Parsing, Predictive ParsingTanzeela_Hussain
 
Lexical Analysis - Compiler Design
Lexical Analysis - Compiler DesignLexical Analysis - Compiler Design
Lexical Analysis - Compiler DesignAkhil Kaushik
 
Syntax Analysis in Compiler Design
Syntax Analysis in Compiler Design Syntax Analysis in Compiler Design
Syntax Analysis in Compiler Design MAHASREEM
 
Performance analysis(Time & Space Complexity)
Performance analysis(Time & Space Complexity)Performance analysis(Time & Space Complexity)
Performance analysis(Time & Space Complexity)swapnac12
 
Lecture 24 iterative improvement algorithm
Lecture 24 iterative improvement algorithmLecture 24 iterative improvement algorithm
Lecture 24 iterative improvement algorithmHema Kashyap
 
I.ITERATIVE DEEPENING DEPTH FIRST SEARCH(ID-DFS) II.INFORMED SEARCH IN ARTIFI...
I.ITERATIVE DEEPENING DEPTH FIRST SEARCH(ID-DFS) II.INFORMED SEARCH IN ARTIFI...I.ITERATIVE DEEPENING DEPTH FIRST SEARCH(ID-DFS) II.INFORMED SEARCH IN ARTIFI...
I.ITERATIVE DEEPENING DEPTH FIRST SEARCH(ID-DFS) II.INFORMED SEARCH IN ARTIFI...vikas dhakane
 
Type checking in compiler design
Type checking in compiler designType checking in compiler design
Type checking in compiler designSudip Singh
 
RECURSIVE DESCENT PARSING
RECURSIVE DESCENT PARSINGRECURSIVE DESCENT PARSING
RECURSIVE DESCENT PARSINGJothi Lakshmi
 

What's hot (20)

Compiler Design Basics
Compiler Design BasicsCompiler Design Basics
Compiler Design Basics
 
Bfs and Dfs
Bfs and DfsBfs and Dfs
Bfs and Dfs
 
Bootstrapping in Compiler
Bootstrapping in CompilerBootstrapping in Compiler
Bootstrapping in Compiler
 
Symbol Table
Symbol TableSymbol Table
Symbol Table
 
Top Down Parsing, Predictive Parsing
Top Down Parsing, Predictive ParsingTop Down Parsing, Predictive Parsing
Top Down Parsing, Predictive Parsing
 
Lexical Analysis - Compiler Design
Lexical Analysis - Compiler DesignLexical Analysis - Compiler Design
Lexical Analysis - Compiler Design
 
Syntax Analysis in Compiler Design
Syntax Analysis in Compiler Design Syntax Analysis in Compiler Design
Syntax Analysis in Compiler Design
 
Unit 4 sp macro
Unit 4 sp macroUnit 4 sp macro
Unit 4 sp macro
 
Performance analysis(Time & Space Complexity)
Performance analysis(Time & Space Complexity)Performance analysis(Time & Space Complexity)
Performance analysis(Time & Space Complexity)
 
1.Role lexical Analyzer
1.Role lexical Analyzer1.Role lexical Analyzer
1.Role lexical Analyzer
 
Cocomo model
Cocomo modelCocomo model
Cocomo model
 
Lecture 24 iterative improvement algorithm
Lecture 24 iterative improvement algorithmLecture 24 iterative improvement algorithm
Lecture 24 iterative improvement algorithm
 
Linker and Loader
Linker and Loader Linker and Loader
Linker and Loader
 
Yacc
YaccYacc
Yacc
 
Role-of-lexical-analysis
Role-of-lexical-analysisRole-of-lexical-analysis
Role-of-lexical-analysis
 
Predicate logic
 Predicate logic Predicate logic
Predicate logic
 
I.ITERATIVE DEEPENING DEPTH FIRST SEARCH(ID-DFS) II.INFORMED SEARCH IN ARTIFI...
I.ITERATIVE DEEPENING DEPTH FIRST SEARCH(ID-DFS) II.INFORMED SEARCH IN ARTIFI...I.ITERATIVE DEEPENING DEPTH FIRST SEARCH(ID-DFS) II.INFORMED SEARCH IN ARTIFI...
I.ITERATIVE DEEPENING DEPTH FIRST SEARCH(ID-DFS) II.INFORMED SEARCH IN ARTIFI...
 
Type checking in compiler design
Type checking in compiler designType checking in compiler design
Type checking in compiler design
 
Specification-of-tokens
Specification-of-tokensSpecification-of-tokens
Specification-of-tokens
 
RECURSIVE DESCENT PARSING
RECURSIVE DESCENT PARSINGRECURSIVE DESCENT PARSING
RECURSIVE DESCENT PARSING
 

Similar to Passes of compilers

Passes of Compiler.pptx
Passes of Compiler.pptxPasses of Compiler.pptx
Passes of Compiler.pptxSanjay Singh
 
Compiler Design Introduction
Compiler Design Introduction Compiler Design Introduction
Compiler Design Introduction Thapar Institute
 
Introduction to Compilers
Introduction to CompilersIntroduction to Compilers
Introduction to CompilersAkhil Kaushik
 
4_5802928814682016556.pptx
4_5802928814682016556.pptx4_5802928814682016556.pptx
4_5802928814682016556.pptxAshenafiGirma5
 
Cd ch1 - introduction
Cd   ch1 - introductionCd   ch1 - introduction
Cd ch1 - introductionmengistu23
 
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.pptxZiyadMohammed17
 
Compiler Design Basics
Compiler Design BasicsCompiler Design Basics
Compiler Design BasicsAkhil Kaushik
 
Language translator
Language translatorLanguage translator
Language translatorasmakh89
 
Pros and cons of c as a compiler language
  Pros and cons of c as a compiler language  Pros and cons of c as a compiler language
Pros and cons of c as a compiler languageAshok Raj
 
System software module 1 presentation file
System software module 1 presentation fileSystem software module 1 presentation file
System software module 1 presentation filejithujithin657
 
Compiler an overview
Compiler  an overviewCompiler  an overview
Compiler an overviewamudha arul
 
compiler and their types
compiler and their typescompiler and their types
compiler and their typespatchamounika7
 
Compiler - Computer Programming - UOZ
Compiler - Computer Programming - UOZ Compiler - Computer Programming - UOZ
Compiler - Computer Programming - UOZ Safen D Taha
 

Similar to Passes of compilers (20)

COMPILER DESIGN PPTS.pptx
COMPILER DESIGN PPTS.pptxCOMPILER DESIGN PPTS.pptx
COMPILER DESIGN PPTS.pptx
 
Passes of Compiler.pptx
Passes of Compiler.pptxPasses of Compiler.pptx
Passes of Compiler.pptx
 
Compiler Design Introduction
Compiler Design Introduction Compiler Design Introduction
Compiler Design Introduction
 
Introduction to Compilers
Introduction to CompilersIntroduction to Compilers
Introduction to Compilers
 
4_5802928814682016556.pptx
4_5802928814682016556.pptx4_5802928814682016556.pptx
4_5802928814682016556.pptx
 
Cd ch1 - introduction
Cd   ch1 - introductionCd   ch1 - introduction
Cd ch1 - introduction
 
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
 
Compiler Design Basics
Compiler Design BasicsCompiler Design Basics
Compiler Design Basics
 
Compiler type
Compiler typeCompiler type
Compiler type
 
Compiler lecture 01
Compiler lecture 01Compiler lecture 01
Compiler lecture 01
 
Chapter 1.pptx
Chapter 1.pptxChapter 1.pptx
Chapter 1.pptx
 
Language translator
Language translatorLanguage translator
Language translator
 
Pros and cons of c as a compiler language
  Pros and cons of c as a compiler language  Pros and cons of c as a compiler language
Pros and cons of c as a compiler language
 
System software module 1 presentation file
System software module 1 presentation fileSystem software module 1 presentation file
System software module 1 presentation file
 
Compiler an overview
Compiler  an overviewCompiler  an overview
Compiler an overview
 
compiler and their types
compiler and their typescompiler and their types
compiler and their types
 
Introduction to compilers
Introduction to compilersIntroduction to compilers
Introduction to compilers
 
Phases of Compiler
Phases of CompilerPhases of Compiler
Phases of Compiler
 
Chap01-Intro.ppt
Chap01-Intro.pptChap01-Intro.ppt
Chap01-Intro.ppt
 
Compiler - Computer Programming - UOZ
Compiler - Computer Programming - UOZ Compiler - Computer Programming - UOZ
Compiler - Computer Programming - UOZ
 

Recently uploaded

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Recently uploaded (20)

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 

Passes of compilers

  • 1. Compiler Passes 1 • Pass is a complete traversal of the source program. • Compiler has two passes to traverse the source program. – Multi-pass Compiler – One-pass Compiler
  • 2. Multi-pass Compiler 2 • Multi pass compiler is used to process the source code of a program several times. • In the first pass, compiler can read the source program, scan it, extract the tokens and store the result in an output file. • In the second pass, compiler can read the output file produced by first pass, build the syntactic tree and perform the syntactical analysis. The output of this phase is a file that contains the syntactical tree. • In the third pass, compiler can read the output file produced by second pass and check that the tree follows the rules of language or not. The output of semantic analysis phase is the annotated tree syntax. • This pass is going on, until the target output is produced.
  • 3. One-pass Compiler 3 • One-pass compiler is used to traverse the program only once. The one-pass compiler passes only once through the parts of each compilation unit. It translates each part into its final machine code. • In the one pass compiler, when the line source is processed, it is scanned and the token is extracted. • Then the syntax of each line is analyzed and the tree structure is build. After the semantic part, the code is generated. • The same process is repeated for each line of code until the entire program is compiled.
  • 4. Bootstrapping 4 •Bootstrapping is widely used in the compilation development. •Bootstrapping is used to produce a self-hosting compiler. Self-hosting compiler is a type of compiler that can compile its own source code. •Bootstrap compiler is used to compile the compiler and then you can use this compiled compiler to compile everything else as well as future versions of itself. A compiler can be characterized by three languages: 1.Source Language 2.Target Language 3.Implementation Language
  • 5. Implementing a Bootstrap compiler 5 •Compilers are of two kinds 1. Native Compiler 2. Cross Compiler •Native Compiler: Native compilers are written in the same language as the target language. •E.g. SMM is a compiler for the language S that is in a language that runs on machine M and generates output code that runs on machine M.
  • 6. Implementing a Bootstrap compiler 6 •Follow some steps to produce a new language L for machine A: 1.Create a compiler S CA A for subset, S of the desired language, L using language "A" and that compiler runs on machine A. 2.Create a compiler L CS A for language L written in a subset of L. 3. Compile L CS A using the compiler S CA A to obtain L CA A . L CA A is a compiler for language L, which runs on machine A and produces code for machine A.
  • 7. Implementing a Bootstrap compiler 7 Cross Compiler: Cross compilers are written in different language as the target language. •E.g. SNM is a compiler for the language S that is in a language that runs on machine N and generates output code that runs on machine M. Steps involving to produce a compiler for a different machine B (or cross compiler): 1. Convert in to ( by hand, if necessary). Recall that language S is a subset of language L. 2. Compile to produce , a cross-compiler for L which runs on machine A and produces code for machine B. 3. Compile with the cross-compiler to produce , a compiler for language L which runs on machine B
  • 8. Implementing a Bootstrap compiler 8

Editor's Notes

  1. Example : If you write a program in C, you lose the ability you had in assembly language to specify register allocation; if you write in Prolog, you lose the ability you had in C to specify arbitrary linked structures using pointers. There is a natural tension between striving for the concise, clear and reliable expression of a computation in a high-level abstraction, and wanting the flexibility of specifying the computation in detail. An abstraction can never be as exact or optimal as a low level specification.
  2. Example : If you write a program in C, you lose the ability you had in assembly language to specify register allocation; if you write in Prolog, you lose the ability you had in C to specify arbitrary linked structures using pointers. There is a natural tension between striving for the concise, clear and reliable expression of a computation in a high-level abstraction, and wanting the flexibility of specifying the computation in detail. An abstraction can never be as exact or optimal as a low level specification.
  3. Example : If you write a program in C, you lose the ability you had in assembly language to specify register allocation; if you write in Prolog, you lose the ability you had in C to specify arbitrary linked structures using pointers. There is a natural tension between striving for the concise, clear and reliable expression of a computation in a high-level abstraction, and wanting the flexibility of specifying the computation in detail. An abstraction can never be as exact or optimal as a low level specification.
  4. Example : If you write a program in C, you lose the ability you had in assembly language to specify register allocation; if you write in Prolog, you lose the ability you had in C to specify arbitrary linked structures using pointers. There is a natural tension between striving for the concise, clear and reliable expression of a computation in a high-level abstraction, and wanting the flexibility of specifying the computation in detail. An abstraction can never be as exact or optimal as a low level specification.
  5. Example : If you write a program in C, you lose the ability you had in assembly language to specify register allocation; if you write in Prolog, you lose the ability you had in C to specify arbitrary linked structures using pointers. There is a natural tension between striving for the concise, clear and reliable expression of a computation in a high-level abstraction, and wanting the flexibility of specifying the computation in detail. An abstraction can never be as exact or optimal as a low level specification.
  6. Example : If you write a program in C, you lose the ability you had in assembly language to specify register allocation; if you write in Prolog, you lose the ability you had in C to specify arbitrary linked structures using pointers. There is a natural tension between striving for the concise, clear and reliable expression of a computation in a high-level abstraction, and wanting the flexibility of specifying the computation in detail. An abstraction can never be as exact or optimal as a low level specification.
  7. Example : If you write a program in C, you lose the ability you had in assembly language to specify register allocation; if you write in Prolog, you lose the ability you had in C to specify arbitrary linked structures using pointers. There is a natural tension between striving for the concise, clear and reliable expression of a computation in a high-level abstraction, and wanting the flexibility of specifying the computation in detail. An abstraction can never be as exact or optimal as a low level specification.
  8. Example : If you write a program in C, you lose the ability you had in assembly language to specify register allocation; if you write in Prolog, you lose the ability you had in C to specify arbitrary linked structures using pointers. There is a natural tension between striving for the concise, clear and reliable expression of a computation in a high-level abstraction, and wanting the flexibility of specifying the computation in detail. An abstraction can never be as exact or optimal as a low level specification.