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

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:

[Static controlps7219

Description: 在没有外界反馈电路时所测出的电压放大倍数。Auo越高, 所构成的运算电路越稳定,运算精度也越高。Auo一般约为 104 107。-in the absence of external feedback circuit by measuring the voltage amplification. Auo higher posed by computing circuit, the more stable operating precision higher. Auo normally about # 104 61630 107.
Platform: | Size: 4378 | Author: 赵风 | Hits:

[Other resourceVHDL范例

Description: 最高优先级编码器 8位相等比较器 三人表决器(三种不同的描述方式) 加法器描述 8位总线收发器:74245 (注2) 地址译码(for m68008) 多路选择器(使用select语句) LED七段译码 多路选择器(使用if-else语句) 双2-4译码器:74139 多路选择器(使用when-else语句) 二进制到BCD码转换 多路选择器 (使用case语句) 二进制到格雷码转换 双向总线(注2) 汉明纠错吗译码器 三态总线(注2) 汉明纠错吗编码器 解复用器 -highest priority encoder, compared to eight for phase three of the vote (the description of three different ways) Adder Description eight bus Transceivers : 74,245 (Note 2) address decoder (for m68008) Multiple choice (use select statement) LED paragraph 107 of decoding multiple choice ( use if-else statements) 2-4 dual decoder : over 74,139 road choice (use when-else statements) of the binary conversion BCD multiple choice (use case statement) binary Gray code conversion to a two-way bus (Note 2)? Hamming error correction decoder three-state Bus (Note 2)? Hamming error correction encoder demultiplexer
Platform: | Size: 42884 | Author: kerty | Hits:

[Other resource二进制小数转换

Description: 二进制小数转为十进制BCD码的汇编程序,结果保留四位并在七段数码管上输出-decimal to binary decimal BCD compilation procedures, and results in four reservations in paragraph 107 digital output tube
Platform: | Size: 1551 | Author: 段琪炜 | Hits:

[Other传奇虚拟玩家登陆系统

Description: w4tw34tRe:相关工具下载 我也带给大家一些工具,望大家欢迎! 1。 WinSock Expert v0.6...WPEPRO 0.9A http://bbs.gameres.com/showthread.asp?threadid=21029 帮大家找了几个不太好找的东西(二) Trainer Maker Kit 1.... www.gameres.com/bbs/showthread.asp?thread ... 111K 2005-11-21 - 百度快照 无标题文档 这是一个木马下载器,用于下载并执行木马,这个病毒工作于Windows 32平台。 47. Win32.Troj.Small...Win32.Hack.WpePro.a.184320 106. Win32.Hack.Agobot.nq.122880 107. Win32.Hack.EggDrop.15.6619 108. Win32... www.hznet.gov.cn/hzeic2004/sqfw/dnbd/bdyb ... 12K 2005-7-1 - 百度快照 -w4tw34tRe : download tools I bring you some tools, we look welcome! 1. WinSock Expert v0.6 ... WPEPRO 0.9A http : / / bbs.gameres.com / showthread.asp threadid = 21,029 to help you find a few not so good to find things (2) Trainer Maker Kit 1. ... www.gameres.com / bulletin board / showthread.asp thr ead ... 111K 2005-11-21 - Baidu snapshots without a title document is a Trojan downloader, for Trojan downloaded and executed, the virus work on the Windows 32 platform. 47. Win32.Hack.WpePro Win32.Troj.Small .... a.184320 106. a Win32.Hack.Agobot.nq.122880 07. Win32.Hack.EggDrop.15.6619 108. Win32 .. . www.hznet.gov.cn/hzeic2004/sqfw/dnbd/bd Sales ... 1-15 2005-7-1 - Baidu snapshot
Platform: | Size: 172790 | Author: yyg | Hits:

[Other汇编七段数码管显示系统时间

Description: 双击启动程序。以暗色背景,白色前景的七段数码管显示当前系统时间。 按键。改变七段数码管的前景颜色。 按ESC。退出程序。 -double-click to launch the program. A dark background, the prospect of a white in paragraph 107 of the current digital control system show time. Keys. Changes in paragraph 107 of the prospects for digital color control. According to the ESC. Exit procedures.
Platform: | Size: 2529 | Author: 成朝夕 | Hits:

[Other resource物流源代码

Description: 管理系统.rar - RAR 压缩文件, 解包大小为 107,263,136 字节-management system. Rar - RAR compressed files, unpacks size of 107,263,136 bytes
Platform: | Size: 1316061 | Author: 王凯 | Hits:

[Menu control电子表

Description: 电子表软见,用于用七段数的格式显示出当前时刻.-electronic see Table soft for use in paragraph 107 of the few shows that the current format moment.
Platform: | Size: 18824 | Author: 李峰 | Hits:

[Other resource107

Description: 这是本人刚学VB做的呀 不知道做的好不好呀 希望自己做的越来越好-This is just learning VB I do not know ah done extremely nice to want to do more good
Platform: | Size: 30528 | Author: 王明 | Hits:

[Other resourceqiduanmaxianshi

Description: 七段数码管显示的小程序需要多硬件有些了解不过很实用-paragraph 107 of the Digital Display small programs need more hardware but some very practical understanding
Platform: | Size: 30388 | Author: 余天 | Hits:

[OS programxp163.com.107

Description: 一个简单的聊天系统 希望大家喜欢-a simple chat system hope you like
Platform: | Size: 315842 | Author: 白依岑 | Hits:

[Other resourcesvpwm-program

Description: 使用七段方式(软件法)的开环控制三相异步电动机SVPWM控制.-use methods in paragraph 107 (software) of the open-loop control of three-phase asynchronous motors SVPWM.
Platform: | Size: 12956 | Author: Bruce | Hits:

[Other resourceLED7

Description: 单片机的七段数码管的数字生成代码的转换小工具,希望对大家有益-SCM digital paragraph 107 of the code generation digital conversion of small tools, we hope to benefit
Platform: | Size: 323102 | Author: Bruce | Hits:

[uCOSSTM32_F107_lwIP_uCOS

Description: ST CONTEX M3 107 移植原码-ST CONTEX M3 107 Transplant source code
Platform: | Size: 3728384 | Author: tyler | Hits:

[Windows CECABIntegr-v1.107-green

Description: cab编辑工具 CABIntegr V1.107 FOR PPC 绿色汉化版 世界上第一个可以工作于windows mobile 平台的cab编辑工具。 特点: 创建新的CAB文件 编辑CAB文件 添加文件 一个操作中添加多个文件 添加注册表项 从REG文件导入注册表项 添加自定义快捷键* CAB文件的压缩支持** 前,后的XML配置文件支持*** 总经理删除该程序所需的信息存储 查看所有CAB文件的设备上可用 查看CAB文件的内容 CAB文件中提取内容 创建新的CAB配置文件 REG文件转换为CAB文件 接口的支持几种语言 支持QVGA/VGA-The cab Editor of wincephone user
Platform: | Size: 389120 | Author: CHNAR | Hits:

[JSP/Java107-Javascript-used-statement

Description: 107条Javascript的常用语句,很好很实用。-107 Javascript used statement
Platform: | Size: 9216 | Author: 陈志安 | Hits:

[Technology Management107

Description: 杨凡-107课-从0开始学习入侵网站学习资料-Yang Fan-107 lesson- learning from zero intrusion learning materials website
Platform: | Size: 4096 | Author: luotianyi | Hits:

[RichEdit107-Gbs-coherent-optical-OFDM-transmission

Description: 107 Gbs coherent optical OFDM transmission
Platform: | Size: 131072 | Author: anh tu | Hits:

[Other107-按键 12864显示

Description: 107-按键 12864显示(107- button 12864 display)
Platform: | Size: 22528 | Author: 1rh53vzr | Hits:

[Software EngineeringMicron mt41k256m16tw-107 (d9shd) 4gb ddr3l

Description: Micron mt41k256m16tw-107 (d9shd) 4gb ddr3l
Platform: | Size: 2572883 | Author: agefaa | Hits:
« 12 3 4 5 6 7 8 9 10 »

CodeBus www.codebus.net