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

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:

[Com PortCPort263

Description: 很好用的串口通信控件!112-good use of Serial Communication Control! 112
Platform: | Size: 181662 | Author: wzs | Hits:

[Other resourcezcdyl_readme

Description: “中尺度雨量站数据软件”使用说明 目前江西省中尺度自动雨量站紧锣密鼓建设,是北京一家公司提供的硬件和服务,软件也是他们提供的。省局也开通了数据查询网站:http://172.20.112.247/ 但是这家公司的雨量查询软件还是有一些缺点,主要体现: 1. 该软件是用ASP开发的,查询数据速度慢。 2. 软件查询很不方便 3. 软件没有集中的数据显示功能 4. 软件没有报表功能,这些在实际都很有必要的 5. 该软件统计方面功能较弱 6. 如果气象局的用户需要这方面的资料,给用户资料比较麻烦 针对上述的缺点,结合我多年的软件开发经验。我用Visual Basic、Visual C和Access数据库开发了一个《中尺度自动雨量站数据管理》软件,功能主要是针对上述的不足开发的。 -"mesoscale rainfall station data software" for use in Jiangxi current mesoscale automatic intense rainfall stations, Beijing is a company providing hardware and services, software, as well as provide them. Rise also opened a data query site : http://172.20.112.247/ but this company's rainfall inquiries software still has some shortcomings, mainly reflected : 1. The software is developed using ASP, slow access to the data. 2. Software for three very inconvenient. Software is no centralized data show features four. No statements of software functions, which in practice are necessary 5. The software functions weaker statistics 6. If the Bureau of Meteorology user needs this information to the user information more trouble to address the shortcomings, I combined years of experien
Platform: | Size: 507741 | Author: hxc | 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:

[Communicationbpsk_dsss

Description: There are two files in the zip folder. bpsk_spread.m and jakesmodel.m Steps for simulation: 1] Run jakesmodel.m first 2] Then run bpsk_spread.m . 3] Note that during the first run bpsk_spread.m has no rayleigh fading.This is because the corresponding code has been commented 4] The resulting performance is stored in BER_awgn. 5] Now uncomment the Rayleigh Fading code in bpsk_spread.m file. 6] Same time comment BER_awgn (line 112) and uncomment BER_ray variable. 7] Run the simulation. To compare the perfromances of the receiver using DSSS plot the BER_awgn and BER_ray >>semilogy([1:8],BER_awgn(1:8), g* ) hold on semilogy([1:8],BER_ray(1:8), -.b* ) hold on grid on -There are two zip files in the folder. Bpsk_ spread.m and jakesmodel.m Steps for simulatio n : 1] Run jakesmodel.m first 2] Then run bpsk_spre ad.m. 3] Note that during the first run bpsk_spr ead.m has no Rayleigh fading.This is because th e corresponding code has been commented 4] The r esulting performance is stored in BER_awgn. 5] Now uncomment the Rayleigh Fading code in bpsk_ spread.m file. 6] Same time comment BER_awgn (l 112 produced mostly in developed areas) and uncomment BER_ray variable. 7] Run the simulation. To compare the perfromances of the receiver using DSSS plot and the BER_awgn BE R_ray
Platform: | Size: 2837 | Author: 朱振希 | Hits:

[Button controlWebControlsApp

Description: 信息中心通过光纤连接到校园网络,为服务器分配了一个IP地址202.112.74.100,现决定在信息中心建立自己的内部网络,需要在内部网络之间资源共享,同时内部网络可以访问外部Internet服务,但外部Internet不能访问内部网络。-Information Center through the fiber to connect to the campus network. the allocation for a server IP address 202.112.74.100. The decision by the Information Center to establish their own internal network, in between the internal network resource sharing, while the internal network can access external Internet services, but external Internet can access the internal network.
Platform: | Size: 182480 | Author: 李颖慧 | Hits:

[WEB CodeC-code

Description: C111 112
Platform: | Size: 97483 | Author: 韩胜军 | Hits:

[Crack Hack3_3des

Description: 三重DES增加了密钥长度,由56位增加到112或168位,有更高的安全性,而且在新一代因特网安全标准IPSEC协议集中已将DES作为加密标准。-3DES key length increased from 56 to 112 or 168. have higher security, and the new generation of Internet security standards IPSEC agreement has been concentrated DES encryption as a standard.
Platform: | Size: 68856 | Author: fasf | Hits:

[Compress-Decompress algrithmstupianbianxing

Description: 实例112 如何旋转显示图片实例113 如何分块显示图片实例114 如何缩放显示图片实例115 如何投射显示图片-112 examples of how to rotate images 113 examples show how to block 114 examples of how the pictures were zooming 115 pictures show examples of how the projected images
Platform: | Size: 1618506 | Author: ooyyee11 | Hits:

[Develop Toolsc28x_assmbly_guide

Description: ti 2812的 asm编程手册,对立志进行28112系统开发的编程人员是必不可少的参考手册 -ti 2812 asm2 the programming manual, to be determined for 28,112 systems development programming staff is indispensable reference manual
Platform: | Size: 1039319 | Author: 钱红艳 | Hits:

[OS program112

Description: 物资管理系统 一 开发环境 OS: Windows 2000 Server + SP2 IDE: Visual Studio 6.0 + SP5 DataBase: SQL 2000 Server + SP2 二 运行 1:创建数据库 将Material.sql中的SQL语句考入SQL Server的查询分析器中,全部运行; 2:建立ODBC数据源 数据原名称为Material_MIS
Platform: | Size: 104718 | Author: mashijia | Hits:

[Other resource112

Description: 电信电话故障台管理系统受理应用程序原形112
Platform: | Size: 565772 | Author: zhanggang | Hits:

[Communicationbpsk_dsss

Description: There are two files in the zip folder. bpsk_spread.m and jakesmodel.m Steps for simulation: 1] Run jakesmodel.m first 2] Then run bpsk_spread.m . 3] Note that during the first run bpsk_spread.m has no rayleigh fading.This is because the corresponding code has been commented 4] The resulting performance is stored in BER_awgn. 5] Now uncomment the Rayleigh Fading code in bpsk_spread.m file. 6] Same time comment BER_awgn (line 112) and uncomment BER_ray variable. 7] Run the simulation. To compare the perfromances of the receiver using DSSS plot the BER_awgn and BER_ray >>semilogy([1:8],BER_awgn(1:8), g* ) hold on semilogy([1:8],BER_ray(1:8), -.b* ) hold on grid on -There are two zip files in the folder. Bpsk_ spread.m and jakesmodel.m Steps for simulatio n : 1] Run jakesmodel.m first 2] Then run bpsk_spre ad.m. 3] Note that during the first run bpsk_spr ead.m has no Rayleigh fading.This is because th e corresponding code has been commented 4] The r esulting performance is stored in BER_awgn. 5] Now uncomment the Rayleigh Fading code in bpsk_ spread.m file. 6] Same time comment BER_awgn (l 112 produced mostly in developed areas) and uncomment BER_ray variable. 7] Run the simulation. To compare the perfromances of the receiver using DSSS plot and the BER_awgn BE R_ray
Platform: | Size: 3072 | Author: 朱振希 | Hits:

[Post-TeleCom sofeware systems112

Description: 电信电话故障台管理系统受理应用程序原形112-Telegraph and Telephone Trouble Desk Management System for the admissibility of the application prototype 112
Platform: | Size: 565248 | Author: zhanggang | Hits:

[Communication-Mobile112

Description: wap系统程序源码 用户名密码:admin-err
Platform: | Size: 778240 | Author: | Hits:

[SCM112_48_lcd_C

Description: 一个基于华邦W65132的LCD程序,48*112点阵.-Winbond W65132 based on the LCD procedure, 48* 112 dot matrix.
Platform: | Size: 2048 | Author: 李胜军 | Hits:

[SCM112-PCF8591-1602led

Description: 112-PCF8591 1602液晶显示-112-PCF8591 1602 LCD
Platform: | Size: 68608 | Author: zhizhou | Hits:

[OtherCMU-ISRI-06-112

Description: Learning to Detect Phishing Emails Ian Fette Norman Sadeh Anthony Tomasic June 2006 CMU-ISRI-06-112 Institute for Software Research International School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213
Platform: | Size: 45056 | Author: razvanr | Hits:

[Software EngineeringCHL-112-presentation-groups

Description: chl 112 iit delhi assignment
Platform: | Size: 162816 | Author: bharat bajaj | Hits:

[Other112-PCF8591 1602液晶显示

Description: 112-PCF8591 1602液晶显示(112-PCF8591 1602 liquid crystal display)
Platform: | Size: 44032 | Author: 8so46aui | Hits:
« 12 3 4 5 6 7 8 9 10 ... 16 »

CodeBus www.codebus.net