第3章 语法分析
- 格式:ppt
- 大小:1.41 MB
- 文档页数:255
第3章程序设计语言习题一、选择题1. A2. A3. D4. A5. AB6. C7.D8.C9.D 10. D11.ABCD 12.B 13.A 14.ABD二、简答题1.简述程序的概念。
答:一个程序就是能够实现特定功能的一组指令序列的集合。
或者程序=算法+数据结构。
2. 简述程序设计语言的发展阶段。
经历了机器语言、汇编语言和高级语言三个发展阶段。
机器语言又称面向机器的语言,是特定的计算机硬件系统所固有的语言,是CPU唯一能够真正不经过翻译而直接识别和执行的语言。
相比而言,其他任何语言编写的程序都必须最终转换成机器语言以后才能在CPU上执行。
由于二进制编码形式的机器指令不便于记忆和使用,人们很快引入了便于记忆、易于阅读和理解、由英文单词或其缩写符号表示的指令,称为汇编指令,又称符号指令或助记符。
利用汇编指令编写得到的程序称为汇编语言程序。
通过引入汇编语言,在一定程度上解决了低级语言程序设计的问题,之后又出现了程序的“可移植性”问题,即程序员编写的源程序如何从一台计算机方便地转移到另一台计算机上执行。
为了解决这个问题,人们引入了高级语言。
高级语言是一种利用意义比较直观的各种“单词”和“公式”,按照一定的“语法规则”来编写程序的语言,又称为程序设计语言或算法语言。
高级语言之所以“高级”,是因为高级语言把很多硬件上复杂费解的概念抽象化了,从而使得程序员可以绕开复杂的计算机硬件的问题、无需了解计算机的指令系统,就能完成程序设计的工作。
3. 简述程序设计过程的一般步骤。
程序设计的过程一般有四个步骤。
(1)分析问题在着手解决问题之前,应该通过分析,充分理解问题,明确原始数据、解题要求、需要输出的数据及形式等。
(2)设计算法算法是解题的过程。
首先集中精力于算法的总体规划,然后逐层降低问题的抽象性,逐步充实细节,直到最终把抽象的问题具体化成可用程序语句表达的算法。
这是一个自上而下、逐步细化的过程。
(3)编码利用程序设计语言表示算法的过程称为编码。
初二英语上册第三单元语法
初二英语上册第三单元的语法主要涉及现在进行时的用法。
现在进行时表示正在进行的动作或存在的状态,其构成是be动词(am/is/are)+动词ing形式。
例如,I am studying for the test. (我正在为考试而学习。
)在这个句子中,am是be动词,studying是动词ing形式,表示正在进行的动作。
现在进行时的用法还包括一些常用的现在进行时句型,如询问对方正在做什么:What are you doing?回答可以用I am doing sth.(我正在做某事)。
此外,还可以用be动词+动词ing形式+副词表示正在进行的动作,如He is running fast.(他正在快速地跑。
)。
第二章 高级语言及其语法描述6.(1)L (G 6)={0,1,2,......,9}+(2)最左推导:N=>ND=>NDD=>NDDD=>DDDD=>0DDD=>01DD=>012D=>0127 N=>ND=>DD=>3D=>34N=>ND=>NDD=>DDD=>5DD=>56D=>568 最右推导:N=>ND =>N7=>ND7=>N27=>ND27=>N127=>D127=>0127 N=>ND=>N4=>D4=>34N=>ND=>N8=>ND8=>N68=>D68=>5687.【答案】G:S →ABC | AC | CA →1|2|3|4|5|6|7|8|9B →BB|0|1|2|3|4|5|6|7|8|9C →1|3|5|7|98.(1)最左推导:E=>E+T=>T+T=>F+T=>i+T=>i+T*F=>i+F*F=>i+i*F=>i+i*iE=>T=>T*F=>F*F=>i*F=>i*(E)=>i*(E+T)=>i*(T+T)=>i*(F+T)=>i*(i+T)=>i*(i+F)=> i*(i+i) 最右推导:E=>E+T=>E+T*F=>E+T*i=>E+F*i=>E+i*i=>T+i*i=>F+i*i=>i+i*iE=>T=>T*F=>T*(E)=>T*(E+T)=>T*(E+F)=>T*(E+i)=>T*(T+i)=>T*(F+i)=>T*(i+i)=>F*(i+i)=>i*(i+i) (2)9.证明:该文法存在一个句子iiiei 有两棵不同语法分析树,如下所示,因此该文法是二义的。
《编译原理第三版》(选择题)详解第一章绪论【解答】(1) 编译程序可以将用高级语言编写的源程序转换成与之在逻辑上等价的目标程序,而目标程序可以是汇编语言程序或机器语言程序。
故选A。
(2) 分多遍完成编译过程可使整个编译程序的逻辑结构更加清晰。
故选B。
(3) 构造编译程序应掌握源程序、目标语言和编译方法这三方面内容。
故选D。
(4) 编译各阶段的工作都涉及到构造、查找或更新有关表格,即编译过程的绝大部分时间都用在造表、查表和更新表格的事务上。
故选D。
(5) 由(1)可知,编译程序实际上实现了对高级语言程序的翻译。
故选D。
第二章词法分析【解答】(1) 由教材第一章1.3节中的词法分析,可知词法分析所遵循的是语言的构词规则。
故选B。
(2) 词法分析器的功能是输入源程序,输出单词符号。
故选B。
(3) 词法分析器输出的单词符号通常表示为二元式:(单词种别,单词自身的值)。
故选B。
(4) 由S→xSx | y可知该文法所识别的语言一定是:y左边出现的x与y 右边出现的x相等。
故选C。
(5) 虽然选项A、B、D都满足题意,但选项D更准确。
故选D。
(6) 3型文法即正规文法,它的识别系统是有限状态自动机。
故选C。
(7) NFA可以有DFA与之等价,即两者描述能力相同;也即,对于任一给定的NFA M,一定存在一个DFA M',使L(M)=L(M′)。
故选B。
(8) DFA便于识别,易于计算机实现,而NFA便于定理的证明。
故选C。
(9) 本题虽然是第二章的题,但答案参见第三章3.1.3节。
即选C。
第三章语法分析【解答】(1) 参见第四章4.1.1节,语义分析不像词法分析和语法分析那样可以分别用正规文法和上下文无关文法描述,由于语义是上下文有关的,因此语义分析须用上下文有关文法描述。
即选B。
(2) 2型文法对应下推自动机。
故选C。
(3) 由于不存在:3型语言 2型语言 1型语言 0型语言。
故选D。
(4) 最左简单子树的末端结点组成的符号串为句柄。
七年级下册英语第三单元语法English: The third unit of the seventh grade English textbook focuses on grammar.Chinese: 七年级英语教材的第三单元着重于语法知识。
English: Understanding grammar is essential for language learning as it provides a foundation for effective communication.Chinese: 理解语法对于语言学习至关重要,因为它为有效交流提供了基础。
English: Students in seventh grade are introduced to various grammar concepts such as present simple, past simple, and future tense.Chinese: 七年级学生将接触到各种语法概念,比如现在简单时、过去简单时和将来时。
English: By grasping these grammar rules, students will be able to construct sentences correctly and express their ideas more clearly.Chinese: 通过掌握这些语法规则,学生将能够正确构造句子,并更清晰地表达他们的观点。
English: Practice plays a crucial role in mastering grammar, so students are encouraged to do exercises and drills to reinforce their understanding.Chinese: 在掌握语法知识方面,练习起着至关重要的作用,因此鼓励学生进行练习和 drills 以加强他们的理解。