VIP会员
作者:CSDN
出版社:CSDN《程序员》
ISBN:1111111111117
VIP会员免费
(仅需0.8元/天)
¥ 40000.0
温馨提示: 价值40000元的1000本电子书,VIP会员随意看哦!
电子书推荐
-
编译原理及实践PDF版 评分:
编译原理及实践 学计算机的同志们不得不看的课程啊
上传时间:2008-12 大小:7.26MB
- 7.25MB
编译原理及实践
2008-02-22本书系统介绍了经典的编译理论和技术,同时也包含了面向对象语言等当前较新语言的编译技术。本书更可贵之处在于提供了较完整的适用于教学实践的样例语言,是一本理论和实践内容相结合的、不可多得的好书。 本书可用作大专院校教材、教师参考书以及编译器研究人员的参考资料。 <br>目 录<br>译者序<br>前言<br>第1章 概论 1<br>1.1 为什么要用编译器 2<br>1.2 与编译器相关的程序 3<br>1.3 翻译步骤 5<br>1.4 编译器中的主要数据结构 8<br>1.5 编译器结构中的其他问题 10<br>1.6 自举与移植 12<br>1.7 TINY样本语言与编译器 14<br>1.7.1 TINY语言 15<br>1.7.2 TINY编译器 15<br>1.7.3 TM机 17<br>1.8 C-Minus:编译器项目的一种语言 18<br>练习 19<br>注意与参考 20<br>第2章 词法分析 21<br>2.1 扫描处理 21<br>2.2 正则表达式 23<br>2.2.1 正则表达式的定义 23<br>2.2.2 正则表达式的扩展 27<br>2.2.3 程序设计语言记号的正则表达式 29<br>2.3 有穷自动机 32<br>2.3.1 确定性有穷自动机的定义 32<br>2.3.2 先行、回溯和非确定性自动机 36<br>2.3.3 用代码实现有穷自动机 41<br>2.4 从正则表达式到DFA 45<br>2.4.1 从正则表达式到NFA 45<br>2.4.2 从NFA到DFA 48<br>2.4.3 利用子集构造模拟NFA 50<br>2.4.4 将DFA中的状态数最小化 51<br>2.5 TINY扫描程序的实现 52<br>2.5.1 为样本语言TINY实现一个扫描<br>程序 53<br>2.5.2 保留字与标识符 56<br>2.5.3 为标识符分配空间 57<br>2.6 利用Lex 自动生成扫描程序 57<br>2.6.1 正则表达式的Lex 约定 58<br>2.6.2 Lex输入文件的格式 59<br>2.6.3 使用Lex的TINY扫描程序 64<br>练习 65<br>编程练习 67<br>注意与参考 67<br>第3章 上下文无关文法及分析 69<br>3.1 分析过程 69<br>3.2 上下文无关文法 70<br>3.2.1 与正则表达式比较 70<br>3.2.2 上下文无关文法规则的说明 71<br>3.2.3 推导及由文法定义的语言 72<br>3.3 分析树与抽象语法树 77<br>3.3.1 分析树 77<br>3.3.2 抽象语法树 79<br>3.4 二义性 83<br>3.4.1 二义性文法 83<br>3.4.2 优先权和结合性 85<br>3.4.3 悬挂else问题 87<br>3.4.4 无关紧要的二义性 89<br>3.5 扩展的表示法:EBNF和语法图 89<br>3.5.1 EBNF表示法 89<br>3.5.2 语法图 91<br>3.6 上下文无关语言的形式特性 93<br>3.6.1 上下文无关语言的形式定义 93<br>3.6.2 文法规则和等式 94<br>3.6.3 乔姆斯基层次和作为上下文无关<br>规则的语法局限 95<br>3.7 TINY语言的语法 97<br>3.7.1 TINY的上下文无关文法 97<br>3.7.2 TINY编译器的语法树结构 98<br>练习 101<br>注意与参考 104<br>第4章 自顶向下的分析 105<br>4.1 使用递归下降分析算法进行自顶向下<br>的分析 105<br>4.1.1 递归下降分析的基本方法 105<br>4.1.2 重复和选择:使用EBNF 107<br>4.1.3 其他决定问题 112<br>4.2 LL(1)分析 113<br>4.2.1 LL(1)分析的基本方法 113<br>4.2.2 LL(1)分析与算法 114<br>4.2.3 消除左递归和提取左因子 117<br>4.2.4 在LL(1)分析中构造语法树 124<br>4.3 First集合和Follow集合 125<br>4.3.1 First 集合 125<br>4.3.2 Follow 集合 130<br>4.3.3 构造LL(1)分析表 134<br>4.3.4 再向前:LL(k)分析程序 135<br>4.4 TINY语言的递归下降分析程序 136<br>4.5 自顶向下分析程序中的错误校正 137<br>4.5.1 在递归下降分析程序中的错误<br>校正 138<br>4.5.2 在LL(1)分析程序中的错误校正 140<br>4.5.3 在TINY分析程序中的错误校正 141<br>练习 143<br>编程练习 146<br>注意与参考 148<br>第5章 自底向上的分析 150<br>5.1 自底向上分析概览 151<br>5.2 LR(0)项的有穷自动机与LR(0)分析 153<br>5.2.1 LR(0)项 153<br>5.2.2 项目的有穷自动机 154<br>5.2.3 LR(0)分析算法 157<br>5.3 SLR(1)分析 160<br>5.3.1 SLR(1)分析算法 160<br>5.3.2 用于分析冲突的消除二义性<br>规则 163<br>5.3.3 SLR(1)分析能力的局限性 164<br>5.3.4 SLR(k)文法 165<br>5.4 一般的LR(1)和LALR(1)分析 166<br>5.4.1 LR(1)项的有穷自动机 166<br>5.4.2 LR(1)分析算法 169<br>5.4.3 LALR(1)分析 171<br>5.5 Yacc:一个LALR(1)分析程序的<br>生成器 173<br>5.5.1 Yacc基础 173<br>5.5.2 Yacc选项 176<br>5.5.3 分析冲突与消除二义性的规则 180<br>5.5.4 描述Yacc分析程序的执行 183<br>5.5.5 Yacc中的任意值类型 184<br>5.5.6 Yacc中嵌入的动作 185<br>5.6 使用Yacc生成TINY分析程序 186<br>5.7 自底向上分析程序中的错误校正 188<br>5.7.1 自底向上分析中的错误检测 188<br>5.7.2 应急方式错误校正 188<br>5.7.3 Yacc中的错误校正 189<br>5.7.4 TINY中的错误校正 192<br>练习 192<br>编程练习 195<br>注意与参考 197<br>第6章 语义分析 198<br>6.1 属性和属性文法 199<br>6.1.1 属性文法 200<br>6.1.2 属性文法的简化和扩充 206<br>6.2 属性计算算法 207<br>6.2.1 相关图和赋值顺序 208<br>6.2.2 合成和继承属性 212<br>6.2.3 作为参数和返回值的属性 219<br>6.2.4 使用扩展数据结构存储属性值 221<br>6.2.5 语法分析时属性的计算 223<br>6.2.6 语法中属性计算的相关性 226<br>6.3 符号表 227<br>6.3.1 符号表的结构 228<br>6.3.2 说明 230<br>6.3.3 作用域规则和块结构 232<br>6.3.4 同层说明的相互作用 236<br>6.3.5 使用符号表的属性文法的一个<br>扩充例子 237<br>6.4 数据类型和类型检查 241<br>6.4.1 类型表达式和类型构造器 242<br>6.4.2 类型名、类型说明和递归类型 246<br>6.4.3 类型等价 248<br>6.4.4 类型推论和类型检查 253<br>6.4.5 类型检查的其他主题 255<br>6.5 TINY语言的语义分析 257<br>6.5.1 TINY的符号表 258<br>6.5.2 TINY语义分析程序 259<br>练习 260<br>编程练习 264<br>注意与参考 264<br>第7章 运行时环境 266<br>7.1 程序执行时的存储器组织 266<br>7.2 完全静态运行时环境 269<br>7.3 基于栈的运行时环境 271<br>7.3.1 没有局部过程的基于栈的环境 271<br>7.3.2 带有局部过程的基于栈的环境 281<br>7.3.3 带有过程参数的基于栈的环境 284<br>7.4 动态存储器 286<br>7.4.1 完全动态运行时环境 286<br>7.4.2 面向对象的语言中的动态存储器 287<br>7.4.3 堆管理 289<br>7.4.4 堆的自动管理 292<br>7.5 参数传递机制 292<br>7.5.1 值传递 293<br>7.5.2 引用传递 294<br>7.5.3 值结果传递 295<br>7.5.4 名字传递 295<br>7.6 TINY语言的运行时环境 296<br>练习 297<br>编程练习 303<br>注意与参考 304<br>第8章 代码生成 305<br>8.1 中间代码和用于代码生成的数据<br>结构 305<br>8.1.1 三地址码 306<br>8.1.2 用于实现三地址码的数据结构 308<br>8.1.3 P-代码 310<br>8.2 基本的代码生成技术 312<br>8.2.1 作为合成属性的中间代码或目标<br>代码 312<br>8.2.2 实际的代码生成 314<br>8.2.3 从中间代码生成目标代码 317<br>8.3 数据结构引用的代码生成 319<br>8.3.1 地址计算 319<br>8.3.2 数组引用 320<br>8.3.3 栈记录结构和指针引用 325<br>8.4 控制语句和逻辑表达式的代码生成 328<br>8.4.1 if 和while 语句的代码生成 328<br>8.4.2 标号的生成和回填 330<br>8.4.3 逻辑表达式的代码生成 330<br>8.4.4 if 和while 语句的代码生成过程<br>样例 331<br>8.5 过程和函数调用的代码生成 334<br>8.5.1 过程和函数的中间代码 334<br>8.5.2 函数定义和调用的代码生成过程 336<br>8.6 商用编译器中的代码生成:两个案<br>例研究 339<br>8.6.1 对于80×86的Borland 3.0版C编<br>译器 339<br>8.6.2 Sun SparcStation的Sun 2.0 C编<br>译器 343<br>8.7 TM:简单的目标机器 346<br>8.7.1 Tiny Machine的基本结构 347<br>8.7.2 TM模拟器 349<br>8.8 TINY语言的代码生成器 351<br>8.8.1 TINY代码生成器的TM接口 351<br>8.8.2 TINY代码生成器 352<br>8.8.3 用TINY编译器产生和使用TM<br>代码文件 354<br>8.8.4 TINY编译器生成的TM代码文<br>件示例 355<br>8.9 代码优化技术考察 357<br>8.9.1 代码优化的主要来源 358<br>8.9.2 优化分类 360<br>8.9.3 优化的数据结构和实现技术 362<br>8.10 TINY代码生成器的简单优化 366<br>8.10.1 将临时变量放入寄存器 366<br>8.10.2 在寄存器中保存变量 367<br>8.10.3 优化测试表达式 367<br>练习 368<br>编程练习 371<br>注意与参考 372<br>附录A 编译器设计方案 373<br>附录B 小型编译器列表 381<br>附录C Tiny Machine模拟器列表 417<br>
- 11.32MB
编译原理及实践.pdf
2021-04-15编译原理及实践.pdf
- 11.27MB
编译原理及实践(高清版)
2019-01-09编译器是将一种语言翻译为另一种语言的计算机程序。编译器将源程序( source language) 编写的程序作为输入,而产生用目标语言( t a rget language)编写的等价程序。通常地,源程 序为高级语言( high-level language),如C或C + +,而目标语言则是目标机器的目标代码 (object code,有时也称作机器代码(machine code)),也就是写在计算机机器指令中的用于运 行的代码。
- 7.25MB
《编译原理及实践》电子书下载
2010-03-25目 录 译者序 前言 第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)分析能力的局限性
- 3.75MB
编译原理及实践课后习题答案.pdf
2021-12-29编译原理及实践课后习题答案
- 7.25MB
编译原理及实践 中文版
2010-05-18编译原理及实践 PDF 格式中文版 compiler Construction Principles and Practice !
- 7.26MB
编译原理及实践 超清晰电子书
2010-07-20编译原理及实践 超清晰电子书 编译原理及实践 超清晰电子书
- 13.47MB
编译原理 PPT 课件 PDF版.zip
2020-12-15《编译原理》课程是计算机科学与技术专业的必修课程。本课程主要介绍程序设计语言编译程序构造的基本原理和设计方法,包括:编译程序概述、高级语言及其语法描述、词法分析、语法分析、属性文法和语法制导翻译、语义...
- 11.32MB
编译原理及实践 Kenneth C.Louden 冯博琴
2009-06-17编译原理及实践 名著 pdf 超清晰版 有完整的书签 非常好的书 Kenneth C.Louden 冯博琴 本书系统介绍了经典的编译理论和技术,同时也包含了面向对象语言等当前较新语言的编译技术。本书更可贵之处在于提供了较完整...
- 98KB
《编译原理及实践》源码
2010-08-29学习编译原理很好的范例,更可贵的是作者还附带了一个模拟器来运行目标程序。
- 14.30MB
编译原理与实践 Compiler Construction Principles and Practice 英文版 2-1
2019-02-16编译原理与实践 英文版 械工业出版社(经典原版书库) PDF格式,由djvu转换而来,扫描版,包括附录B、C,非转载。 A5页面,450dpi,已识别文字。 译版文笔生硬,晦涩难懂,还不如看英文的 PDF格式便于做记录 分两部分,part2-1
- 962KB
编译原理第三版课后习题及答案
2014-06-08不可多得,适合学习的编译原理资料
- 147KB
编译原理及实践教程(黄贤英王柯柯编著)习题答案.pdf
2021-12-20编译原理及实践教程(黄贤英王柯柯编著)习题答案.pdf
- 12.37MB
《编译原理及实践》— 劳顿
2011-03-21Kenneth C.Louden,加拿大麦吉尔大学获得博士学位之后,曾在多所大学任教。他的主要研究领域是统和统译器,涉及范畴论及其编程、形式语义、编译器优化与自动化技术等。1985年在美国圣何塞州立大学任教至今。...
- 253KB
编译原理实践教程 标准版
2009-07-29《编译原理实践教程》作为《编译原理和技术》课程的延伸,其目的是让大家动手设计和实现某一规模适中的语言的编译器,该编译器不仅涉及编译程序的各个阶段,而且也强调了编译的总体设计、各个阶段的接口安排等等。...
- 20.43MB
编译原理及实践教程新建文件夹.rar
2021-04-19有答案
- 448KB
编译原理和技术实践2017.pdf
2021-09-15编译原理和技术实践2017.pdf
- 2.96MB
编译原理及实践_中文版
2012-11-18编译原理及实践 中文版 清晰 非扫描 pdf
- 7.26MB
编译原理及实践.rar
2009-04-17编译原理及实践,高清晰,非扫描的pdf。编译原理及实践
- 20KB
PL0编译原理实践.pdf
2021-10-02PL0编译原理实践.pdf
- 1.62MB
python大作业 含爬虫、数据可视化、地图、报告、及源码(整和为一个文件)(2014-2020全国各地区原油加工量).rar
2021-12-03(含源码及报告)本程序分析了自2014年到2020年每年我国原油加工的产量,并且分析了2019年全国各地区原油加工量,含饼状图,柱状图,折线图,数据在地图上显示。运行本程序需要requests、bs4、csv、pandas、matplotlib、pyecharts库的支持,如果缺少某库请自行安装后再运行。文件含2个excel表,4个csv文件以及一个名字为render的html文件(需要用浏览器打开),直观的数据处理部分是图片以及html文件,数据处理的是excel文件。不懂可以扫文件中二维码在微信里面问。
- 192KB
仿真电路以及操作方法
2020-12-20用一片通用四运放芯片LM324组成电路,实现以下功能:用低频信号源产生ui1=0.1sin2πft(V),f=500Hz的正弦波信号,加至加法器的输入端,加法器的另输入端加入有自制振荡器产生的信号uo1。要求加法器的输出电压ui2=10 ui1+ uo1。ui2经选频滤波器滤除uo1频率分量,选出f信号为uo2,uo2为峰峰值等于9V的正弦信号。uo2信号经比较器后在1KΩ负载上得到峰峰值2V的输出电压uo3。用NI Multisim 打开即可,参数已调好。对应博客:https://blog.csdn.net/weixin_43723423/article/details/90761331
- 6.17MB
【纯干货啊】华为IPD流程管理(完整版).pptx
2020-06-01华为IPD产品研发流程完整版。非常的详细,很适合给新是的实习生做培训用!是我一直在用的流程管理,很适合学习与交流。
- 11.57MB
可编程语言标准IEC61131-3中文版.pdf
2022-01-09可编程语言标准IEC61131-3中文版
- 6KB
OFDM完整仿真过程与教程.zip
2019-10-04辛苦写了关于OFDM的详细仿真,从产生信息流到最终解调,包含星座图,误码率图。包括了相关技术的详细解释,(信道编码,扩频,导频,信道估计等)。注:本段程序不包括射频传输部分,即载波调制,基带调制为QPSK。具体的教程可以参考我的相关文章。
- 10.80MB
信号与系统——保研复习资料.pdf
2020-09-16本文档为本人保研复习过程中撰写的信号与系统复习文档,参考书籍为吴大正老师主编的信号与线性系统分析(第四版),全文共43页,包含以下内容: 一、信号与系统(绪论) 二、连续系统的时域分析 三、离散系统的时域分析 四、傅里叶变换和系统的频域分析 五、连续系统的s域分析 六、离散系统的z域分析 七、系统函数 八、少量经典面试题(保研)