Welcome![Sign In][Sign Up]
Location:
Search - 125

Search list

[ELanguage编译原理及实践

Description:

目      录
译者序
前言
第1章   概论 1
1.1   为什么要用编译器 2
1.2   与编译器相关的程序 3
1.3   翻译步骤 5
1.4   编译器中的主要数据结构 8
1.5   编译器结构中的其他问题 10
1.6   自举与移植 12
1.7   TINY样本语言与编译器 14
1.7.1   TINY语言 15
1.7.2   TINY编译器 15
1.7.3   TM机 17
1.8   C-Minus:编译器项目的一种语言 18
练习 19
注意与参考 20
第2章   词法分析 21
2.1   扫描处理 21
2.2   正则表达式 23
2.2.1   正则表达式的定义 23
2.2.2   正则表达式的扩展 27
2.2.3   程序设计语言记号的正则表达式 29
2.3   有穷自动机 32
2.3.1   确定性有穷自动机的定义 32
2.3.2   先行、回溯和非确定性自动机 36
2.3.3   用代码实现有穷自动机 41
2.4   从正则表达式到DFA 45
2.4.1   从正则表达式到NFA 45
2.4.2   从NFA到DFA 48
2.4.3   利用子集构造模拟NFA 50
2.4.4   将DFA中的状态数最小化 51
2.5   TINY扫描程序的实现 52
2.5.1   为样本语言TINY实现一个扫描
程序 53
2.5.2   保留字与标识符 56
2.5.3   为标识符分配空间 57
2.6   利用Lex 自动生成扫描程序 57
2.6.1   正则表达式的Lex 约定 58
2.6.2   Lex输入文件的格式 59
2.6.3   使用Lex的TINY扫描程序 64
练习 65
编程练习 67
注意与参考 67
第3章   上下文无关文法及分析 69
3.1   分析过程 69
3.2   上下文无关文法 70
3.2.1   与正则表达式比较 70
3.2.2   上下文无关文法规则的说明 71
3.2.3   推导及由文法定义的语言 72
3.3   分析树与抽象语法树 77
3.3.1   分析树 77
3.3.2   抽象语法树 79
3.4   二义性 83
3.4.1   二义性文法 83
3.4.2   优先权和结合性 85
3.4.3   悬挂else问题 87
3.4.4   无关紧要的二义性 89
3.5   扩展的表示法:EBNF和语法图 89
3.5.1   EBNF表示法 89
3.5.2   语法图 91
3.6   上下文无关语言的形式特性 93
3.6.1   上下文无关语言的形式定义 93
3.6.2   文法规则和等式 94
3.6.3   乔姆斯基层次和作为上下文无关
规则的语法局限 95
3.7   TINY语言的语法 97
3.7.1   TINY的上下文无关文法 97
3.7.2   TINY编译器的语法树结构 98
练习 101
注意与参考 104
第4章   自顶向下的分析 105
4.1   使用递归下降分析算法进行自顶向下
的分析 105
4.1.1   递归下降分析的基本方法 105
4.1.2   重复和选择:使用EBNF 107
4.1.3   其他决定问题 112
4.2   LL(1)分析 113
4.2.1   LL(1)分析的基本方法 113
4.2.2   LL(1)分析与算法 114
4.2.3   消除左递归和提取左因子 117
4.2.4   在LL(1)分析中构造语法树 124
4.3   First集合和Follow集合 125
4.3.1   First 集合 125
4.3.2   Follow 集合 130
4.3.3   构造LL(1)分析表 134
4.3.4   再向前:LL(k)分析程序 135
4.4   TINY语言的递归下降分析程序 136
4.5   自顶向下分析程序中的错误校正 137
4.5.1   在递归下降分析程序中的错误
校正 138
4.5.2   在LL(1)分析程序中的错误校正 140
4.5.3   在TINY分析程序中的错误校正 141
练习 143
编程练习 146
注意与参考 148
第5章   自底向上的分析 150
5.1   自底向上分析概览 151
5.2   LR(0)项的有穷自动机与LR(0)分析 153
5.2.1   LR(0)项 153
5.2.2   项目的有穷自动机 154
5.2.3   LR(0)分析算法 157
5.3   SLR(1)分析 160
5.3.1   SLR(1)分析算法 160
5.3.2   用于分析冲突的消除二义性
规则 163
5.3.3   SLR(1)分析能力的局限性 164
5.3.4   SLR(k)文法 165
5.4   一般的LR(1)和LALR(1)分析 166
5.4.1   LR(1)项的有穷自动机 166
5.4.2   LR(1)分析算法 169
5.4.3   LALR(1)分析 171
5.5   Yacc:一个LALR(1)分析程序的
生成器 173
5.5.1   Yacc基础 173
5.5.2   Yacc选项 176
5.5.3   分析冲突与消除二义性的规则 180
5.5.4   描述Yacc分析程序的执行 183
5.5.5   Yacc中的任意值类型 184
5.5.6   Yacc中嵌入的动作 185
5.6   使用Yacc生成TINY分析程序 186
5.7   自底向上分析程序中的错误校正 188
5.7.1   自底向上分析中的错误检测 188
5.7.2   应急方式错误校正 188
5.7.3   Yacc中的错误校正 189
5.7.4   TINY中的错误校正 192
练习 192
编程练习 195
注意与参考 197
第6章   语义分析 198
6.1   属性和属性文法 199
6.1.1   属性文法 200
6.1.2   属性文法的简化和扩充 206
6.2   属性计算算法 207
6.2.1   相关图和赋值顺序 208
6.2.2   合成和继承属性 212
6.2.3   作为参数和返回值的属性 219
6.2.4   使用扩展数据结构存储属性值 221
6.2.5   语法分析时属性的计算 223
6.2.6   语法中属性计算的相关性 226
6.3   符号表 227
6.3.1   符号表的结构 228
6.3.2   说明 230
6.3.3   作用域规则和块结构 232
6.3.4   同层说明的相互作用 236
6.3.5   使用符号表的属性文法的一个
扩充例子 237
6.4   数据类型和类型检查 241
6.4.1   类型表达式和类型构造器 242
6.4.2   类型名、类型说明和递归类型 246
6.4.3   类型等价 248
6.4.4   类型推论和类型检查 253
6.4.5   类型检查的其他主题 255
6.5   TINY语言的语义分析 257
6.5.1   TINY的符号表 258
6.5.2   TINY语义分析程序 259
练习 260
编程练习 264
注意与参考 264
第7章   运行时环境 266
7.1   程序执行时的存储器组织 266
7.2   完全静态运行时环境 269
7.3   基于栈的运行时环境 271
7.3.1   没有局部过程的基于栈的环境 271
7.3.2  带有局部过程的基于栈的环境 281
7.3.3   带有过程参数的基于栈的环境 284
7.4   动态存储器 286
7.4.1   完全动态运行时环境 286
7.4.2   面向对象的语言中的动态存储器 287
7.4.3   堆管理 289
7.4.4   堆的自动管理 292
7.5   参数传递机制 292
7.5.1   值传递 293
7.5.2   引用传递 294
7.5.3   值结果传递 295
7.5.4   名字传递 295
7.6   TINY语言的运行时环境 296
练习 297
编程练习 303
注意与参考 304
第8章   代码生成 305
8.1   中间代码和用于代码生成的数据
结构 305
8.1.1   三地址码 306
8.1.2   用于实现三地址码的数据结构 308
8.1.3   P-代码 310
8.2   基本的代码生成技术 312
8.2.1   作为合成属性的中间代码或目标
代码 312
8.2.2   实际的代码生成 314
8.2.3   从中间代码生成目标代码 317
8.3   数据结构引用的代码生成 319
8.3.1   地址计算 319
8.3.2   数组引用 320
8.3.3   栈记录结构和指针引用 325
8.4   控制语句和逻辑表达式的代码生成 328
8.4.1   if 和while 语句的代码生成 328
8.4.2   标号的生成和回填 330
8.4.3   逻辑表达式的代码生成 330
8.4.4   if 和while 语句的代码生成过程
样例 331
8.5   过程和函数调用的代码生成 334
8.5.1   过程和函数的中间代码 334
8.5.2   函数定义和调用的代码生成过程 336
8.6   商用编译器中的代码生成:两个案
例研究 339
8.6.1   对于80×86的Borland 3.0版C编
译器 339
8.6.2   Sun SparcStation的Sun 2.0 C编
译器 343
8.7   TM:简单的目标机器 346
8.7.1   Tiny Machine的基本结构 347
8.7.2   TM模拟器 349
8.8   TINY语言的代码生成器 351
8.8.1   TINY代码生成器的TM接口 351
8.8.2   TINY代码生成器 352
8.8.3   用TINY编译器产生和使用TM
代码文件 354
8.8.4   TINY编译器生成的TM代码文
件示例 355
8.9   代码优化技术考察 357
8.9.1   代码优化的主要来源 358
8.9.2   优化分类 360
8.9.3   优化的数据结构和实现技术 362
8.10   TINY代码生成器的简单优化 366
8.10.1   将临时变量放入寄存器 366
8.10.2   在寄存器中保存变量 367
8.10.3   优化测试表达式 367
练习 368
编程练习 371
注意与参考 372
附录A   编译器设计方案 373
附录B   小型编译器列表 381
附录C   Tiny Machine模拟器列表 417


Platform: | Size: 7612048 | Author: wesong | Hits:

[Other resourcewendu111

Description: 温度控制器V1.5 显示为三个共阳极LED 温度传感器用单总线DS18B20 CPU为2051,四个按键,分别为UP,DOWN,SET 温度调节上限为125度,下限为-55度 只能用于单只18B20-Temperature Controller V1.5 show for a total of three LED anode temperature sensor with single CPU for the bus DS18B20 2051, four keys, respectively UP, DOWN, SET temperature regulator ceiling of 125 degrees and lower limits of -55 degrees can only be used solely 18B20
Platform: | Size: 108592 | Author: | Hits:

[Other resourcexinpiankongneng

Description: 7400 2输入端四与非门 7401 集电极开路2输入端四与非门 7402 2输入端四或非门 7403 集电极开路2输入端四与非门 7404 六反相器 7405 集电极开路六反相器 7406 集电极开路六反相高压驱动器 7407 集电极开路六正相高压驱动器 7408 2输入端四与门 7409 集电极开路2输入端四与门 7410 3输入端3与非门 74107 带清除主从双J-K触发器 74109 带预置清除正触发双J-K触发器 7411 3输入端3与门 74112 带预置清除负触发双J-K触发器 7412 开路输出3输入端三与非门 74121 单稳态多谐振荡器 74122 可再触发单稳态多谐振荡器 74123 双可再触发单稳态多谐振荡器 74125 三态输出高有效四总线缓冲门 74126 三态输出低有效四总线缓冲门 7413 4输入端双与非施密特触发器 74132 2输入端四与非施密特触发器 74133 13输入端与非门 74136 四异或门 74138 3-8线译码器/复工器 74139 双2-4线译码器/复工器 7414 六反相施密特触发器 74145 BCD—十进制译码/驱动器 7415 开路输出3输入端三与门 74150 16选1数据选择/多路开关 74151 8选1数据选择器 74153 双4选1数据选择器 74154 4线—16线译码器 -7400 2 input and four-door 7401 collector open two input and four-door 7402 2 input four-door or open collector 7403 two input and four-door 7404 RP-6 to pave the way for 7,405 collector 6 collector RP-7406 to pave the way for RP-6 drives 7,407 collector is open six high-pressure phase drives 740 input 8 2 4 7409 with the door open collector input 2 and 4 door 7410 3-3 and the importation of non-door 7410 seven main belt removal from double-J-K with preset trigger 74,109 removals are trigger-J-K-7411 3 Trigger input with the three-door with 74,112 removals preset trigger negative double-J-K-7412 to pave the way Trigger input-output and three-door 74,121 monostable multivibrator 74,122 can be triggered monostable multivibrator 74,123-can be triggered monostable Multivibrator 74,125 three-st
Platform: | Size: 7035 | Author: 黄邦青 | Hits:

[Button control125

Description: 外挂学习经典 外挂学习经典-external pylons learning classical learning classical learning classical pieces
Platform: | Size: 252724 | Author: lipu721 | Hits:

[Other resourceIDMancherst

Description: em4100卡读卡程序,使用125KHZ只读卡-em4100 card reader, the use of CD-125 kHz cards
Platform: | Size: 79493 | Author: 阿拉丁 | Hits:

[Communication-MobileIA4420

Description: IA4420 工作在315/433/868/915MHz 频段(IA4421 工作在433/868/915MHz 频段); 2. 低电压工作,工作电压2.2V~5.4V; 3. 低功耗模式,待机电流0.3uA; 4. 调制模式FSK,并具备高度集成的PLL; 5. 低发射功率、高接收灵敏度设计,发射功率5~10 dbm 可调,接收灵敏度-109 dbm; 6. 内置时钟输出,可省掉MCU 的晶振; 7. 传输数据率高,数字信号可达115.2 kbit/s,模拟信号可达256 kbit/s; 8. 发射频偏与接收带宽可调; 9. 内部有数字滤波器,并可以根据要求选择不同的方式; 10. SPI 的控制接口,方便使用; 11. 接收时有数据同步码识别器,系统检测同步码后将后面的数据输出; 12. 有16 位的收发缓存器,用来缓存接收到或要发送的数据(接收数据有两种方式,用户可以按需选择); 13. 有低电压检测器,从2.2-5.4V 可调; 14. 有定时唤醒功能,定时时间可达几天; 15. 天线的兼容性强,有天线自动调节功能,并可采用PCB 或外置天线; 16. 工作温度范围-40~85,储存温度范围-55~125℃; 17. 采用微小TSSOP16 封装。 -315/433/868/915MHz IA4420 work in the band (IA4421 Working in 433 / 868/915MHz band); 2. Low-voltage, voltage 2.2 V ~ 5.4V; 3. Low-power mode, standby current 0.3 uA 169 * 85 *; 4. FSK modulation mode, and highly integrated PLL; 5. Low emission power and high receiver sensitivity, launched power 5 ~ 10 dbm adjustable, -109 dbm receiver sensitivity; 6. Built-in clock output can be saved MCU resonator; 7. Higher data transmission rate, digital signal of up to 115.2 kbit / s, analog signal up to 256 kbit / s; 8. Emission Offset and receiving adjustable bandwidth; 9. Internal digital filters, and may request to have a choice of different ways; 10. SPI control interface, and ease of use; 11. When receiving data synchronization code identifier, the system will detect synchronous code behind the
Platform: | Size: 39433 | Author: songxiaoyan2008 | Hits:

[Other resourcefuhuaqi

Description: 本文介绍了基于DS18B20单线数字温度传感器的电子孵化器的设计实现。设计中基本涵盖了对单线数字温度传感器DS18B20的原理的运用。在电子孵化器的制作过程中,硬件电路由单线数字温度传感器DS18B20和继电器的连接,电路可以把温度转化成数字用LED数码显示器显示输出。本设计采用外部供电方式(即用吹风机加热)。单线数字温度传感器DS18B20的温度测量范围从—55℃到+125℃,我们在设计中要求温度的范围是30℃到35℃(即温度下限为30℃,上限为35℃),温度低于30℃或者温度高于35℃,继电器自动断电,系统就会自动进行加热,以使温度控制在30℃到35℃之间。利用这个原理来实现电子孵化器。
Platform: | Size: 1520 | Author: zk | Hits:

[Other resourcempoint

Description: 算法实现题2 算m点问题 « 问题描述: 给定k 个正整数,用算术运算符“+”,“- ”,“* ”,“/ ”将这k 个正整数连接起来,使最 终的得数恰为m。 « 编程任务: 对于给定的k个正整数,给出计算m的算术表达式。 « 数据输入: 由文件input.txt给出输入数据。第一行有2 个正整数k和m,表示给定k个正整数,且 最终的得数恰为m。接下来的1 行中,有k个正整数。 « 结果输出: 将计算m的算术表达式输出到文件output.txt。如果有多个满足要求的表达式,只要输 出1 组,每一步算式用分号隔开。如果无法得到m则输出“No Solution!”。 输入文件示例: input.txt output.txt 5 125 2 2 12 3 7 输出文件示例: 7*3=21 21*12=252 252-2=250 250/2=125
Platform: | Size: 1571 | Author: sanfy chen | Hits:

[assembly language%D3%C389C2051%D7%F60-125%B6%C8%B5%C4%CE%C2%B6%C8%B

Description: 可以测量0到125度之间的温度计,是用89c2051来完成的
Platform: | Size: 29490 | Author: 叶晓帆 | Hits:

[SCMwendu111

Description: 温度控制器V1.5 显示为三个共阳极LED 温度传感器用单总线DS18B20 CPU为2051,四个按键,分别为UP,DOWN,SET 温度调节上限为125度,下限为-55度 只能用于单只18B20-Temperature Controller V1.5 show for a total of three LED anode temperature sensor with single CPU for the bus DS18B20 2051, four keys, respectively UP, DOWN, SET temperature regulator ceiling of 125 degrees and lower limits of-55 degrees can only be used solely 18B20
Platform: | Size: 108544 | Author: | Hits:

[assembly language%D3%C389C2051%D7%F60-125%B6%C8%B5%C4%CE%C2%B6%C8%B

Description: 可以测量0到125度之间的温度计,是用89c2051来完成的-Can be measured between 0-125 degrees of the thermometer, is to be completed 89C2051
Platform: | Size: 29696 | Author: 叶晓帆 | Hits:

[SCM18b20C

Description: 一线总线”数字化温度传感器是DALLAS最新单线数字温度传感器, 同DS1820一样,DS18B20也 支持“一线总线”接口,测量温度范围为 -55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。DS1822的精度较差为± 2°C 。现场温度直-Bus line " digital temperature sensors are single-DALLAS latest digital temperature sensor, with the DS1820, as, DS18B20 also supports" bus line " interface, measurement temperature range of-55 ° C ~+125 ° C, at-10 ~+85 ° C range, the accuracy of ± 0.5 ° C. DS1822 relatively poor for the accuracy of ± 2 ° C. scene straight temperature
Platform: | Size: 3072 | Author: long | Hits:

[JSP/Java125

Description: 125条常见的java面试笔试题汇总 125条常见的java面试笔试题汇总-java
Platform: | Size: 69632 | Author: skywalker | Hits:

[Other Embeded programRFID-security-system

Description: This project aimed to develop a wireless system to detect and allow only the authorized persons. The system was based on Radio Frequency Identification (RFID) technology and consists of a passive RFID tag. The passive micro transponder tag collects power from the 125 KHz magnetic field generated by the base station, gathers information about the Tag ID and sends this information to the base station. The base station receives, decodes and checks the information available in its Database and Manchester code was used to send those information. The system performed as desired with a 10cm diameter antenna attached to the transponder. The Base Station is built by using the Popular 8051 family Microcontroller. It gets the tag ID and if the tag ID is stored in its memory then the microcontroller will allow the person inside. RFID Reader Module, are also called as interrogators.
Platform: | Size: 111616 | Author: Binu | Hits:

[JSP/Java125-tiao-java-mian-shi-ti-zong-hui

Description: 125条常见的java面试笔试题大汇总 可能 会对你有帮助,呵呵 我也喜欢Java的,不过 学得 不怎么样!-125 tiao java mian shi ti
Platform: | Size: 193536 | Author: oracle | Hits:

[JSP125-java

Description: java面试题汇总--125道java经典面试题,希望对你有帮助-java face questions Summary- 125 java classic face questions, I hope to help you
Platform: | Size: 79872 | Author: wenguang | Hits:

[Otherpb-125(5629)crack

Description: pb 125(5629)crack powerbuilder12.5版本5629包含.net部分的破解补丁-pb 125(5629)crack in(class & .net)
Platform: | Size: 1089536 | Author: tianyun | Hits:

[assembly language125-kHz-RFID-READER

Description: 125 KHz RFID reader with Tiny85
Platform: | Size: 1547264 | Author: curinga | Hits:

[Other125-超温报警测试

Description: 125-超温报警测试(125- overtemperature alarm test)
Platform: | Size: 24576 | Author: 7nv35phh | Hits:

[Software EngineeringMicron memory IC mt41k256m16ha-125 (d9pxv)

Description: mt41k256m16ha-125 (d9pxv) 4gb
Platform: | Size: 2490494 | Author: agefaa | Hits:
« 12 3 4 5 6 7 8 9 10 ... 17 »

CodeBus www.codebus.net