[龙书]理论练习题(一)

若有不对之处,敬请指出。

1、先分别用以下文法推导出id+id+id*id,并画出推导过程对应的分析树;最后比较三个文法生成的语言有什么不同。

文法1:E→ E+T | T    T→
T*F | F     F→
id

文法2:E→
T+E | T    T→
F*T | F     F→
id

文法3:E→
E*T | T    T→
T+F | F     F→
id

文法1:E→ E+T | T    T→
T*F | F     F→
id

文法2:E→ T+E | T    T→
F*T | F     F→
id

文法3:E→
E*T | T    T→
T+F | F     F→
id

三个文法均包括两个运算+和*,但在结合性和优先级的处理上有所不同:

文法1左结合,先*后+

文法2右结合,先*后+

文法3左结合,先+后*

2、指出下列错误可在编译的哪个阶段被发现

(1)关键字拼写错误    语法分析

(2)缺少运算对象      语法分析

(3)实参与形参的类型不一致    语义分析

(4)所引用的变量没有定义  语义分析

(5)数组下标越界              语义分析

(6)本应为常数,但却在数中出现了非数字字符

词法分析

3.编译器和解释器之间的区别是什么?

编译器将高级语言编写的源程序翻译成等价的,用低级语言编写的目标程序,解释器则是执行源程序,只是将源程序转换成一次执行的中间代码,并不生成目标程序。

4.编译器相对于解释器的优点是什么?解释器相对于编译器的优点是什么?

由于编译器生成的目标程序将多次执行,故编译过程中优化工作非常重要,产生的目标程序比解释执行更为高效。

由于解释器是逐句执行,故其错误诊断效果好于编译器。

5.下面关于解释程序的说法正确的是:

①.解释程序解决了编译程序不能解决的问题。

‚②.Basic语言编写的程序采用的执行方式是解释执行。

ƒ③.解释语言的特点是执行程序时不产生目标代码。

A.‚
①②
    B. ②③
  C.③①
ƒ   
D.③

B. Basic 执行是解释型即解释便运行

6.描述一种语言的文法是:

A.唯一的      B.不唯一的    C.个数有限的   D.不能确定

B

7.下面哪些不是语法分析器的任务。

①分析单词是怎样构成的

‚②分析单词串是如何构成语句和说明的

ƒ③分析语句和说明是如何构成程序的

„④分析程序的结构

7.给定文法G[A]:
A→bA|cc,则下面的符号串中,该文法的句子有:

cc     ‚bcbc    
ƒbcbcc  
„bbbcc

cc bbbcc

8.描述语言L={a^mb^n|n≥m≥
1}的文法为:

A、   Z→ABb      
A→aA|a        
B→bB|b

B、   Z→ABb      
A→Aa|a        
B→aBb|b

C、   Z→Ab         
A→aAb|a

D、   Z→aAb       
A→Ab|aAb|ε

D

时间: 2024-10-06 00:28:03

[龙书]理论练习题(一)的相关文章

[龙书]理论练习题(二)

不对之处,敬请指出! 3.3.3:试说明在一个长度为n的字符串中,分别有多少个 3.3.5:写出以下语言的正规式定义 (1)顺序包含所有5个元音字母的小写字符串. NonVowel → [b-df-hj-np-tv-z] L→(NonVowel| a)*a(NonVowel|e)*e(NonVowel|i)*i(NonVowel|o)*o(NonVowel|u)*uNonVowel* (2)所有字母按升序排列的小写字母串 a*b*c*...y*z* (3)注释,即/*和*/之间的串,且串中没有不

DirectX 9.0c游戏开发手记之“龙书”第二版学习笔记之8: Chap10: Lighting

这一章讲的是光照.光照(lighting)是Direct3D中非常重要的概念,而与之相对应的是材质(material)的概念.如果没有材质的话,那么光照的作用也无法体现. 在较早一些的关于DirectX 9的编程入门书籍里,一般是使用D3DLIGHT9结构体来建立一个光源,而用D3DMATERIAL9结构体来定义物体的材质.我们要做的就是一些很琐碎的家务活,基本上就是创建这些结构体对象.设定其中的参数.启用光照之类的,至于具体实现的细节就非吾等所需(和所能)操心的了. 不过在我们的"龙书&quo

龙书(Dragon book) +鲸书(Whale book)+虎书(Tiger book)

1.龙书(Dragon book)书名是Compilers: Principles,Techniques,and Tools作者是:Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman国内所有的编译原理教材都是抄的它的,而且只是抄了最简单的前端的一些内容.龙书中文版第一版龙书英文版第二版 2.鲸书(Whale book)书名是:Advanced Compiler Design and Implementation作者是:Steven S.Muchnick也就是高级编译

龙书学习笔记(三)

在将第五章每个示例代码过了一遍之后,大致明白了光照这一章的内容,主要分为四点: 一.光照的类型分为三种,并且均通过结构D3DCOLORVALUE或D3DXCOLOR来表示光线的颜色 环境光(Ambient Light)经其它表面反射到达物体表面,并照亮整个场景,通常用做较低代价的粗略模拟. 漫射光(Diffuse Light)沿着特定的方向传播,到达某个表面后将沿着各个方向均匀反射,因此从各个方向观察物体表面亮度均相同. 镜面光(Specular Light)沿着特定的方向传播,到达一表面后将沿

龙书11_chapter_4 一: GameTime解读

看龙书DX11,首先是第四章,本文对GameTime类进行解释 问:此类主要实现了什么功能? 答:Returns the total time elapsed since Reset() was called, NOT counting any time when the clock is stopped. 从渲染窗口Reset开始记时,记录总共的时间.不包括此间的pause时间. 问:关键时间接口? 答: 1. //获取频率(取决于主板 OS相关,不是CPU的主频)参考:http://www.

龙书学习笔记(二)

补线代之余抽空把第四章上色学了,之所以说之余,是因为这一章内容确实不怎么多,不过为了巩固知识,便结合刚学的上色又做了一个小程序. 首先进行回顾,这一章学到的一共有四点: 一.Direct3D中颜色用RGB(Red.Green.Blue)三元组表示,用两种结构来保存 D3DCOLOR,即unsigned long,共32位,分成4个8位项,分别保存Alpha(这玩意的作用会在第七章学到).红.绿.蓝,均在0x00~0xff之间取值(就是0~255) 通过结构体来保存(D3DXCOLOR和D3DCO

龙书常见错误解决方案

龙书简单地看了一遍,但是大部分内容只能勉强弄懂原理,一些算法只知其然而不知其所以然.不过饭还是要一口一口地吃,图形学的一些算法需要自己多多积累学习探索,早日成竹在胸.游刃有余. 龙书中例子都很经典,但是不少例子无法编译成功,下面就是一些常见的解决方案: ①将字符集改为使用多字节字符集,这样可以解决无法从“const char”转换为“LPCWSTR”问题,当然也可以在所有字符串前面加上TEXT(). ②CD3DFont也可以使用,但是编译错误会很多,比如经典的strcpy问题,以及众多类似问题.

编译原理三大经典书籍(龙书 虎书 鲸书)

1.龙书(Dragon book)  英文名:Compilers: Principles,Techniques,and Tools  作者:Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman  中文名:编译原理技术和工具   第一版龙书   第二版龙书 龙书”.龙书是Alfred V. Aho等人于1986年出版的,由于出版年代较早,其中包含部分过时的技术并且没有反映一些新的编译技术.新编的<编译原理>抛弃诸如算符优先分析等过时技术,增加面向对象编译.类型检查等新

Directx10 龙书笔记- 雾效的实现

雾 : 说白了就是一层有颜色的(一般是白色,灰色) 蒙蒙的感觉 混在光线里面. 不管是白天还是黑天. 龙书里面是这样实现的: 1.  给雾定义一个颜色 float3 gFogColor={0.7f,0.7f,0.7f}; 2. 然后呢在顶点着色器里面计算出 顶点级别的雾化需要的颜色加成比例 加成比例: 意思是当距离摄像机,就是你的眼睛越远,雾的浓度越大,就是颜色越深. 根据这个得出一个(0,1)的和距离有关的比例系数 vout.fogLerp = saturate((d-gFogStart)/g