دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش:
نویسندگان: 费希尔
سری: 计算机科学丛书
ISBN (شابک) : 7111164741, 9787111164746
ناشر: 机械工业出版社
سال نشر:
تعداد صفحات: 548
زبان: Chinese
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 28 مگابایت
در صورت تبدیل فایل کتاب 编译器构造C语言描述 به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب 编译器构造C语言描述 نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
این کتاب تئوری و اجرای طراحی کامپایلر را در دو بخش تشریح میکند، مباحث مربوط به طراحی کامپایلر استاندارد را مورد بحث قرار میدهد و روشهای نوآورانه ساخت کامپایلر را ارائه میدهد.
本书讲述了编译器设计中的理论与实现两大部分,讨论了标准编译器设计的相关主题,提供了创新的编译器构造方法。
封面 书名 版权 前言 目录 第1章 绪论 1.1 概述和历史 1.2 编译器可以做什么 1.3 编译器结构 1.4 程序设计语言的语法和语义 1.5 编译器设计与程序设计语言设计 1.6 编译器分类 1.7 影响编译器设计的因素 练习 第2章 一个简单编译器 2.1 Micro编译器结构 2.2 Micro词法分析器 2.3 Micro语法 2.4 递归下降语法分析 2.5 翻译Micro 2.5.1 目标语言 2.5.2 临时变量 2.5.3 动作符号 2.5.4 语义信息 2.5.5 Micro动作符号 练习 第3章 词法分析——理论和实践 3.1 概述 3.2 正则表达式 3.3 有限自动机和词法分析器 3.4 使用词法分析器生成器 3.4.1 ScanGen 3.4.2 Lex 3.5 实现时考虑的问题 3.5.1 保留字 3.5.2 编译器指示与源程序行列表 3.5.3 符号表中的标识符条目 3.5.4 词法分析器的终止 3.5.5 多字符的超前搜索 3.5.6 词法错误恢复 3.6 将正则表达式转换为有限自动机 3.6.1 构造确定的有限自动机 3.6.2 优化有限自动机 练习 第4章 文法和语法分析 4.1 上下文无关文法:概念与记号 4.2 上下文无关文法中的错误 4.3 转换扩展BNF文法 4.4 语法分析器与识别器 4.5 文法分析算法 练习 第5章 LL(1)文法及分析器 5.1 LL(1)Predict函数 5.2 LL(1)分析表 5.3 从LL(1)分析表构造递归下降分析器 5.4 LL(1)分析器驱动程序 5.5 LL(1)动作符号 5.6 文法的LL(1)化 5.7 LL(1)分析中的If-Then-Else问题 5.8 LLGen—LL(1)语法分析器生成器 5.9 LL(1)分析器的性质 5.10 LL(k)分析 练习 第6章 LR分析 6.1 移进-归约分析器 6.2 LR分析器 6.2.1 LR(0)分析 6.2.2 如何判定LR(0)分析程序工作的正确性 6.3 LR(1)分析 6.3.1 LR(1)分析的正确性 6.4 SLR(1)分析 6.4.1 SLR(1)分析的正确性 6.4.2 SLR(1)技术的局限性 6.5 LALR(1)分析 6.5.1 构造LALR(1)分析器 6.5.2 LALR(1)分析的正确性 6.6 在移进-归约分析器中调用语义例程 6.7 使用语法分析器生成器 6.7.1 LALRGen语法分析器生成器 6.7.2 Yacc 6.7.3 可控二义性的使用和误用 6.8 优化分析表 6.9 实用的LR(1)分析器 6.10 LR分析的性质 6.11 LL(1)和LALR(1)分析方法的比较 6.12 其他的移进-归约技术 6.12.1 扩展的超前搜索技术 6.12.2 优先级技术 6.12.3 一般的上下文无关分析器 练习 第7章 语义处理 7.1 语法制导翻译 7.1.1 使用分析的语法树表示 7.1.2 编译器组织的候选形式 7.1.3 一遍编译中的分析、检查和翻译 7.2 语义处理技术 7.2.1 LL分析器和动作符号 7.2.2 LR分析器和动作符号 7.2.3 语义记录表示 7.2.4 实现动作控制的语义栈 7.2.5 分析器控制的语义栈 7.3 中间表示和代码生成 7.3.1 比较中间表示和直接代码生成 7.3.2 中间表示的形式 7.3.3 一个元组语言 练习 第8章 符号表 8.1 符号表接口 8.2 基本实现技术 8.2.1 二叉搜索树 8.2.2 哈希表 8.2.3 串空间数组 8.3 块结构符号表 8.4 块结构符号表的扩展 8.4.1 域和记录 8.4.2 导出规则 8.4.3 导入规则 8.4.4 可更改的搜索规则 8.5 隐式声明 8.6 重载 8.7 前向引用 8.8 小结 练习 第9章 运行时存储组织 9.1 静态分配 9.2 栈分配 9.2.1 显示表 9.2.2 块级与过程级活动记录 9.3 堆分配 9.3.1 无空间释放 9.3.2 显式释放 9.3.3 隐式释放 9.3.4 管理堆空间 9.4 内存中的程序布局 9.5 静态链簇和动态链簇 9.6 形式过程 9.6.1 静态链簇 9.6.2 显示表 9.6.3 一些看法 练习 第10章 处理声明 10.1 声明处理的基本原则 10.1.1 符号表中的属性 10.1.2 类型描述符结构 10.1.3 语义栈中的列表结构 10.2 简单声明的动作例程 10.2.1 变量声明 10.2.2 类型定义、声明和引用 10.2.3 记录类型 10.2.4 静态数组 10.3 高级特性的动作例程 10.3.1 变量和常量声明 10.3.2 枚举类型 10.3.3 子类型 10.3.4 数组类型 10.3.5 变体记录 10.3.6 访问类型 10.3.7 包 10.3.8 attributes和semantics_record结构 练习 第11章 处理表达式和数据结构引用 11.1 概述 11.2 简单名字、表达式和数据结构的动作例程 11.2.1 处理简单标识符和文字常量 11.2.2 处理表达式 11.2.3 简单的记录和数组引用 11.2.4 记录和数组示例 11.2.5 串 11.3 高级特性的动作例程 11.3.1 多维数组的组织和引用 11.3.2 含动态对象的记录 11.3.3 变体记录 11.3.4 访问类型的引用 11.3.5 Ada中其他名字的使用 11.3.6 记录和数组聚合 11.3.7 重载解析 练习 第12章 翻译控制结构 12.1 if语句 12.2 循环 12.2.1 while循环 12.2.2 for循环 12.3 编译exit语句 12.4 case语句 12.5 编译goto语句 12.6 异常处理 12.7 短路计算布尔表达式 12.7.1 单地址短路计算 练习 第13章 翻译过程和函数 13.1 简单子程序 13.1.1 声明无参子程序 13.1.2 调用无参过程 13.2 向子程序传递参数 13.2.1 值、结果和值-结果参数 13.2.2 引用和只读参数 13.2.3 处理参数声明的语义例程 13.3 处理子程序调用和参数表 13.4 子程序调用 13.4.1 保存和恢复寄存器 13.4.2 子程序的入口和出口 13.5 标号参数 13.6 名字参数 练习 第14章 属性文法和多遍翻译 14.1 属性文法 14.1.1 简单赋值形式和动作符号 14.1.2 树遍历的属性计算程序 14.1.3 直接属性计算程序 14.1.4 属性文法示例 14.2 树结构的中间表示 14.2.1 抽象语法树接口 14.2.2 语法树抽象接口 14.2.3 实现树 练习 第15章 代码生成和局部代码优化 15.1 概述 15.2 寄存器和临时变量管理 15.2.1 临时变量的分类 15.2.2 分配和释放临时变量 15.3 简单的代码生成器 15.4 解释性代码生成 15.4.1 优化地址计算 15.4.2 避免冗余计算 15.4.3 寄存器追踪 15.5 窥孔优化 15.6 从树结构生成代码 15.7 从dag生成代码 15.7.1 别名 15.8 代码生成器的生成器 15.8.1 基于文法的代码生成器 15.8.2 在代码生成器中使用语义属性 15.8.3 生成窥孔优化器 15.8.4 基于树重写的代码生成器的生成器 练习 第16章 全局优化 16.1 概述——目标与限制 16.1.1 理想的优化编译器结构 16.1.2 优化展望 16.2 优化子程序调用 16.2.1 子程序调用的内联展开 16.2.2 优化对封闭子例程的调用 16.2.3 过程间数据流分析 16.3 循环优化 16.3.1 外提循环不变式 16.3.2 循环中强度削弱 16.4 全局数据流分析 16.4.1 单路径流分析 16.4.2 全路径流分析 16.4.3 数据流问题的分类 16.4.4 其他重要的数据流问题 16.4.5 使用数据流信息的全局优化 16.4.6 求解数据流方程 16.5 集成优化技术 练习 第17章 现实世界中的语法分析 17.1 压缩表 17.1.1 压缩LL(1)分析表 17.2 语法错误的恢复与修复 17.2.1 即时错误检测 17.2.2 递归下降分析器中的错误恢复 17.2.3 LL(1)分析器中的错误恢复 17.2.4 FMQ LL(1)错误修复算法 17.2.5 在FMQ修复算法中添加删除操作 17.2.6 FMQ算法的扩展 17.2.7 利用LLGen进行错误修复 17.2.8 LR错误恢复 17.2.9 Yacc中的错误恢复 17.2.10 自动生成的LR修复技术 17.2.11 利用LALRGen进行错误修复 17.2.12 其他LR错误修复技术 练习 附录 A Ada/CS 语言定义 附录 B ScanGen 附录 C LLGen用户 手册 附录 D LALRGen用户 手册 附录 E LLGen和LALRGen错误修复特性 附录 F 编译器开发实用工具 参考文献 索引