Welcome![Sign In][Sign Up]
Location:
Search - 51 164

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:

[JSP/Javachap04

Description: 实例45 选择字体 126 实例46 UDP与TCP/IP的简单应用 129 实例47 聊天室 131 实例48 浏览FTP 136 实例49 局域网广播 147 实例50 建立HTTP连接 151 实例51 迷你浏览器 152 实例52 扫描应用端口 154 实例53 监控HTTP 155 实例54 收发电子邮件 156 实例55 一个简单的代理服务器 164 实例56 扫描网站信息 173 实例57 远程方法调用 174 实例58 调用JINI方法 176
Platform: | Size: 26986 | Author: zmm | Hits:

[Windows DevelopC语言实战105例

Description: C语言实战105例 第1部分 基础篇 实例1 一个价值“三天”的BUG 2 实例2 灵活使用递增(递减)操作符 5 实例3 算术运算符计算器 7 实例4 逻辑运算符计算器 9 实例5 IP地址解析 11 实例6 用if…else语句解决奖金发放问题 13 实例7 用for循环模拟自由落体 16 实例8 用while语句求n! 19 实例9 模拟银行常用打印程序 22 实例10 使用一维数组统计选票 26 实例11 使用二维数组统计学生成绩 29 实例12 简单的计算器 32 实例13 时钟程序 35 实例14 华氏温度和摄氏温度的相互转换 38 实例15 SimpleDebug函数应用 40 第2部分 数值计算与数据结构篇 实例16 常用的几种排序方法 46 实例17 广度优先搜索及深度优先搜索 53 实例18 实现基本的串操作 59 实例19 计算各点到源点的最短距离 62 实例20 储油问题 65 实例21 中奖彩球问题 67 实例22 0-1背包问题 69 实例23 阶梯计数问题 72 实例24 二叉树算法集 74 实例25 模拟LRU页面置换算法 79 实例26 大整数阶乘新思路 82 实例27 银行事件驱动模拟程序 84 实例28 模拟迷宫探路 87 实例29 实现高随机度随机序列 89 实例30 停车场管理系统 91 第3部分 文本屏幕与文件操作篇 实例31 菜单实现 96 实例32 窗口制作 97 实例33 模拟屏幕保护程序 100 实例34 文件读写基本操作 102 实例35 格式化读写文件 105 实例36 成块读写操作 107 实例37 随机读写文件 108 实例38 文件的加密和解密 111 实例39 实现两个文件的连接 113 实例40 实现两个文件信息的合并 116 实例41 文件信息统计 118 实例42 文件分割实例 121 实例43 同时显示两个文件的内容 123 实例44 模拟Linux环境下的vi编辑器 124 实例45 文件操作综合应用——银行账户管理 128 第4部分 病毒与安全篇 实例46 实用内存清理程序 134 实例47 如何检测Sniffer  136 实例48 加密DOS批处理程序 139 实例49 使用栈实现密码设置 141 实例50 远程缓冲区溢出漏洞利用程序 144 实例51 简易漏洞扫描器 146 实例52 文件病毒检测程序 149 实例53 监测内存泄露与溢出 150 实例54 实现traceroute命令 152 实例55 实现ping程序功能 154 实例56 获取Linux本机IP地址 157 实例57 实现扩展内存的访问 161 实例58 随机加密程序 164 实例59 MD5加密程序 165 实例60 RSA加密实例 168 第5部分 图形篇 实例61 制作表格 172 实例62 用画线函数作出的图案 174 实例63 多样的椭圆 176 实例64 多变的立方体 177 实例65 简易时钟 178 实例66 跳动的小球 181 实例67 用柱状图表示学生成绩各分数段比率 183 实例68 EGA/VGA屏幕存储 187 实例69 按钮制作 190 实例70 三维视图制作 193 实例71 红旗图案制作 194 实例72 火焰动画制作 196 实例73 模拟水纹扩散 199 实例74 彩色的Photo Frame  201 实例75 火箭发射演示 203 第6部分 系统篇 实例76 恢复内存文本 208 实例77 挽救磁盘数据 210 实例78 建立和隐藏多个PRI DOS分区 213 实例79 简单的DOS下的中断服务程序 216 实例80 文件名分析程序 219 实例81 鼠标中断处理 222 实例82 实现磁盘数据的整体加密 224 实例83 揭开CMOS密码 227 实例84 获取网卡信息 229 实例85 创建自己的设备 231 实例86 设置应用程序启动密码 233 实例87 获取系统配置信息 236 实例88 硬件检测 239 实例89 管道通信 241 实例90 程序自杀技术实现 244 第7部分 游戏篇 实例91 连续击键游戏 248 实例92 掷骰子游戏 250 实例93 弹力球 252 实例94 俄罗斯方块 253 实例95 24点扑克牌游戏 257 实例96 贪吃蛇 260 实例97 潜水艇大战 262 实例98 机器人大战 265 实例99 图形模式下的搬运工 266 实例100 十全十美游戏 269 第8部分 综合篇 实例101 强大的通信录 274 实例102 模拟Windows下UltraEdit程序 277 实例103 轻松实现个人理财 279 实例104 竞技比赛打分系统 281 实例105 火车订票系统 286
Platform: | Size: 654374 | Author: jawin@126.com | Hits:

[Software Engineering程序设计实践

Description:

本书是Brian W. Kernighan和Rob Pike合著的最新力作。本书从排错、测试、性能、可移植性、设计、界面、风格和记法等方面,讨论了程序设计中实际的、又是非常深刻和具有广泛意义的思想、技术和方法,它的翻译出版将填补国内目前这方面书籍的空白。本书值得每个梦想并努力使自己成为优秀程序员的人参考,值得每个计算机专业的学生和计算机工作者阅读,也可作为程序设计高级课程的教材或参考书。

目      录

译者序

前言

第1章   风格 1

1.1   名字 2

1.2   表达式和语句 4

1.3   一致性和习惯用法 8

1.4   函数宏 14

1.5   神秘的数 15

1.6   注释 18

1.7   为何对此费心 22

第2章   算法与数据结构 23

2.1   检索 23

2.2   排序 25

2.3   库 27

2.4   一个Java快速排序 29

2.5   大O记法 31

2.6   可增长数组 33

2.7   表 35

2.8   树 39

2.9   散列表 43

2.10   小结 46

第3章   设计与实现 48

3.1   马尔可夫链算法 48

3.2   数据结构的选择 50

3.3   在C中构造数据结构 51

3.4   生成输出 54

3.5   Java 56

3.6   C++ 59

3.7   Awk和Perl 61

3.8   性能 63

3.9   经验教训 64

第4章   界面 67

4.1   逗号分隔的值 67

4.2   一个原型库 69

4.3   为别人用的库 72

4.4   C++实现 79

4.5   界面原则 82

4.6   资源管理 84

4.7   终止、重试或失败 86

4.8   用户界面 90

第5章   排错 93

5.1   排错系统 94

5.2   好线索,简单错误 95

5.3   无线索,难办的错误 98

5.4   最后的手段 101

5.5   不可重现的错误 103

5.6   排错工具 105

5.7   其他人的程序错误 107

5.8   小结 108

第6章   测试 110

6.1   在编码过程中测试 110

6.2   系统化测试 114

6.3   测试自动化 118

6.4   测试台 120

6.5   应力测试 123

6.6   测试秘诀 125

6.7   谁来测试 126

6.8   测试马尔可夫程序 127

6.9   小结 129

第7章   性能 130

7.1   瓶颈 130

7.2   计时和轮廓 135

7.3   加速策略 138

7.4   代码调整 140

7.5   空间效率 144

7.6   估计 145

7.7   小结 147

第8章   可移植性 149

8.1   语言 149

8.2   头文件和库 154

8.3   程序组织 156

8.4   隔离 159

8.5   数据交换 160

8.6   字节序 161

8.7   可移植性和升级 164

8.8   国际化 165

8.9   小结 167

第9章   记法 169

9.1   数据格式 169

9.2   正则表达式 174

9.3   可编程工具 180

9.4   解释器、编译器和虚拟机 182

9.5   写程序的程序 186

9.6   用宏生成代码 189

9.7   运行中编译 190

后记 195

附录:规则汇编 197

索引 200


Platform: | Size: 8986110 | Author: fluter | Hits:

[SCM51-74ls164

Description: 51单片机通过74164扩展串口驱动4位led显示(含sch图和源程序)-51 through 74164 microcontroller serial expansion drive led four shows (including sch map and the source)
Platform: | Size: 3072 | Author: 阿颖 | Hits:

[JSP/Javachap04

Description: 实例45 选择字体 126 实例46 UDP与TCP/IP的简单应用 129 实例47 聊天室 131 实例48 浏览FTP 136 实例49 局域网广播 147 实例50 建立HTTP连接 151 实例51 迷你浏览器 152 实例52 扫描应用端口 154 实例53 监控HTTP 155 实例54 收发电子邮件 156 实例55 一个简单的代理服务器 164 实例56 扫描网站信息 173 实例57 远程方法调用 174 实例58 调用JINI方法 176-Select the font of 126 examples of 45 examples of 46 UDP and TCP/IP simple application of 129 examples of 131 examples of 47 chat rooms 48 browse FTP 136 examples of 49 local area network broadcast 50 the establishment of 147 examples of 151 examples of HTTP connections 51 Mini browser 152 examples of 52-port 154 scanning application examples 53 monitor HTTP 155 examples of 156 examples of 54 e-mail 55 a simple proxy server 164 examples of 56 scan website 173 examples 57 remote method invocation 174 examples of 58 calls JINI method 176
Platform: | Size: 26624 | Author: zmm | Hits:

[SCM51Registers

Description: 51单片机常用寄存器速查表,51使用手册(英文)-51 registers
Platform: | Size: 324608 | Author: 朱柏 | Hits:

[SCMWavecomQ2430A

Description: 包含:(1)单片机51与Q2403A模块的通信程序。KEIL C编译。注释详细。 (2)SONIX单片机读写164的程序-Include: (1) The MCU 51 and Q2403A module communication program. KEIL C compiler. Comment in detail. (2) SONIX MCU 164 programs to read and write
Platform: | Size: 10240 | Author: MR | Hits:

[SCM51

Description: SmartM学习板51部分源代码,内含1602 12468 164 串口 网口 看门狗 中断 频率计等实验详细源码,适合初学者使用-SmartM learning board 51 part of the source code, containing the serial network port 160,212,468,164 watchdog interrupt source frequency meter and other experimental details, suitable for beginners
Platform: | Size: 861184 | Author: anson | Hits:

[Embeded-SCM Developbingzhuanchuan

Description: 51单片机实验,IO口链接165进行并转串口得实验,有源码以及仿真电路图-51 single-chip experiment, IO port 164 link to serial to parallel port was experimental, there is source code and circuit simulation
Platform: | Size: 34816 | Author: ai溺 | Hits:

[SCM00~99

Description: 用51单片机通过控制164译码使得数码管从0~99秒计时-164 with 51 single-chip decoder by making the digital control from 0 to 99 second timer
Platform: | Size: 1024 | Author: 姚恒勇 | Hits:

[SCM164

Description: 74LS164的驱动程序,51单片机的C程序-74LS164' s driver
Platform: | Size: 13312 | Author: 周彦明 | Hits:

[SCM89c51_74ls164

Description: 51单片机 4片74ls164级联,数码管显示,走了很多的弯路,下了不少的程序,最后把所有程序全部调试通过,保证是对你最有用的164的资料!-51 single-chip 4 74ls164 cascade, digital display, and take a lot of detours, under a lot of procedures, all procedures through debugging, guaranteed to be the most useful to you 164!
Platform: | Size: 61440 | Author: 巩固 | Hits:

[SCM电科164 孙延猛 外部中断作业

Description: 无刷电机驱动,电调,控制原理和电路分析,福利自制必看Brushless motor drive circuit(Brushless motor drive circuit)
Platform: | Size: 27648 | Author: 也这样 | Hits:

[SCM电科164孙延猛 呼吸灯

Description: 呼吸灯pwm51单片机pwm控制灯光强弱呼吸(Control of light and weak breathing by 51 single chip microcomputer PWM)
Platform: | Size: 90112 | Author: 也这样 | Hits:

CodeBus www.codebus.net