《(2.3)--Samuel's Ch1_1编译原理与实践英文版.ppt》由会员分享,可在线阅读,更多相关《(2.3)--Samuel's Ch1_1编译原理与实践英文版.ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Chapter 1 Chapter 1 Introduction Introduction by the end of the lesson students will be able to make sure the mainframe of the compiler constructiontell the features of the problem computer can solveCompilerS2ObjectivesObjectivesCompilers are computer programs that translate one language to another.
2、Very complex program from 10,000 to 1,000,000 lines of code.Its input is a program written in its source language.Usually,the source language is a high-level language(C,C+,etc).It produces an equivalent program written in its target language.The target language is object code(machine code)for the ta
3、rget machine.CompilerS3CompilersCompilersA person who knows and uses two languages.In everyday use the word bilingual usually means a person who speaks,reads,or understands two languages equally well(a balanced bilingual),but a bilingual person usually has a better knowledge of one language than of
4、the other.CompilerS4BilingualBilingualEnglishSource languageCompilerS5CompilersCompilers一个能运用两种语言的人。一个能运用两种语言的人。在他的日常生活中能将一门外语和本族语基本等在他的日常生活中能将一门外语和本族语基本等同地运用于听、说、读、写,当然他的母语语言同地运用于听、说、读、写,当然他的母语语言知识和能力通常是大于第二语言的。知识和能力通常是大于第二语言的。CompilerS6双语双语ChineseTarget languageAn interpreter is a language transla
5、tor like a compiler.The difference:the source program is executed immediately,not after translation is complete.CompilerS7Interpreters Interpreters The use of a second or foreign language in school for the teaching of content subjects.The use of the childs home language when the child enters school
6、but later a gradual change to the use of the school language for teaching some subjects and the home language for teaching others.This is sometimes called maintenance bilingual education.CompilerS8Bilingual educationBilingual educationEnglishSource languageThe use of a second or foreign language in
7、school for the teaching of content subjects.The use of the childs home language when the child enters school but later a gradual change to the use of the school language for teaching some subjects and the home language for teaching others.This is sometimes called maintenance bilingual education.Comp
8、ilerS9Bilingual educationBilingual educationThe use of a second or foreign language in school for the teaching of content subjects.能在学校里使用第二语言或外语进行各门学科的教学。能在学校里使用第二语言或外语进行各门学科的教学。The use of the childs home language when the child enters school 学生刚进入学校时使用本族语学生刚进入学校时使用本族语but later a gradual change to
9、the use of the school language for teaching some subjects 然后逐渐地使用第二语言进行部分学科的教学然后逐渐地使用第二语言进行部分学科的教学and the home language for teaching others.其它学科仍使用母语教学其它学科仍使用母语教学This is sometimes called maintenance bilingual education.这种模式称之为:保持型双语教学。这种模式称之为:保持型双语教学。CompilerS10Bilingual educationBilingual education
10、Chinese?Target language?An interpreter is a language translator like a compiler.The difference:the source program is executed immediately,not after translation is complete.Programming language can be either interpreted or compiled.Interpreted languages:BASIC,LISP,JavaCompiled languages:FORTRAN,C,C+.
11、Interpreters share many operations with compilers.CompilerS11Interpreters Interpreters Initially,the programs were written in machine language numeric codes that represented the actual machine operations to be performed.C7 06 0000 0002 moves number 2 to the location 0000.Writing such codes is time c
12、onsuming and tedious.CompilerS12Machine Language Machine Language In assembly language instructions and memory locations are given symbolic forms.MOV X,2An assembler translates the symbolic codes and memory locations into corresponding numeric codes.Advantages:Great improvement in speed and accuracy
13、 of writing programs.Still used today.Disadvantages:Still not easy to write and difficult to read and understand.Machine dependent.CompilerS13Assembly LanguageAssembly LanguageNearly resembles mathematical notation or natural language.Independent on any particular machine.Capable of being translated
14、 into executable codeX=2Need a program that performs translation.Is it possible?Is generated object code efficient?CompilerS14High-level LanguagesHigh-level LanguagesNoam Chomskys study of the structure of natural languages.Classification of languages according to the complexity of their grammars an
15、d the algorithms to recognize them.Context-free grammars are the most useful for programming languages Study of the parsing problem,which become a standard part of compiler theory.Study of finite automata and regular expressions.Led to symbolic methods for expressing the structure of words of a prog
16、ramming languageOptimization techniques(code improvement techniques).CompilerS15Theoretical FoundationsTheoretical FoundationsWhat machine-independent optimizations are applicable to the following example?CompilerS16A Code Optimization ExampleA Code Optimization ExampleCompilerS17A Code Optimization
17、 Example:ResultA Code Optimization Example:ResultCompilers are computer programs that translate one language to another.Very complex program from 10,000 to 1,000,000 lines of code.Its input is a program written in its source language.It produces an equivalent program written in its target language.C
18、ompilerS18CompilersCompilersIf you wanna translate English into Chinese,how many steps will you follow?And what are they?The left sideOn the other hand,when you translate a Chinese sentence into an English one,what are you going to do?The right side Step by step,tell me the steps.CompilerS19Discussi
19、on 1Discussion 1CompilerS20Push the elephant into the refrigeratorPush the elephant into the refrigeratorGO!CompilerS21Translation ProcessTranslation ProcessThis is a book.Step 1:lexical analysisThis/is/a/book/.Step 2:syntax analysisThis subjectis predicatea quantifierbook object.endStep 3:semantic analysisThis pronoun 这is copula 是a numeral 一book noun 书.period 。Step 4:This is a book.Step 5:这是一书。Step 6:这是一本书。