编译原理

出版时间:2007-6  出版社:高等教育出版社  作者:徐国定  页数:249  

内容概要

编译原理是高等学校计算机专业的一门专业基础课程。本书系统地介绍程序语言编译程序的构造方法,内容涉及词法分析、句法分析、语义分析、目标代码生成、代码优化和出错处理。为了让读者深刻理解编译程序的工作过程,本书以自动机理论为模型叙述经典的词法分析和句法语义分析的方法。此外,还给出了编译程序编写工具的原理和代码生成的详细过程。本书力图使读者对编译程序的工作原理有一个完整的了解,并具有设计编译程序及其编写工具的基本能力。    本书可以作为高等学校计算机专业、软件学院“编译原理”课程教材或参考书,也可作为相关从业人员的参考读物。

书籍目录

第一章 概论  1.1 程序语言和语言处理程序  1.2 编译程序组成  习题第二章 词法分析  2.1 正则表达式  2.2 有限状态自动机  2.3 词法分析的实现  习题第三章 LL和LR句法分析法  3.1 上下文无关文法和下推自动机  3.2 自顶向下句法分析  3.3 产生式选择集合的计算  3.4 自底向上名法分析  习题第四章 其他句法分析法  4.1  简单优先关系和简单优先文法  4.2 弱优先文法和简单混合策略优先文法  4.3 运算符优先文法  习题第五章 语义处理  5.1 中间代码表示法  5.2 句法制导翻译  习题第六章 符号表管理  6.1 符号表内容  6.2 符号表的数据结构  6.3 块结构语言的符号表构造  习题第七章 运行时刻存储管理第八章 常见程序结构的翻译第九章 代码生成和代码优化第十章 出错恢复参考文献

章节摘录

版权页:   插图:   对于允许过程可以递归调用的程序语言,编译程序无法采用静态存储管理方法。由于过程允许递归,某一过程A很可能已被调用了若干次,但只有最近被调用的一次正处于执行状态,而过程A的其余各次调用正等待相应下次调用的返回。这样,前几次过程A调用时属于该过程数据区中的内容必须保存起来,以便下一次调用返回时继续使用。对这种语言来说,其存储管理必须是动态的。动态存储管理的方法是使用运行栈,让过程的每次执行和过程的调用记录相对应。每调用一次过程,就把该过程的调用记录下推入运行栈,过程最近一次调用执行结束就把栈顶的调用记录从运行栈中弹出。图7.4是当主过程调用过程p、过程p调用过程q且过程q又第二次调用过程q时,运行栈分配的示意图。 将过程的每次执行和一个过程调用记录相对应的办法解决了过程可以递归调用所引起的问题。过程q执行中又调用过程q,这表明过程q的第二次执行必须比过程q的第一次执行先结束。因此,当过程q的第二次执行结束时,将q的第二次调用记录弹出运行栈,然后恢复过程q的第一次执行。此时,下推栈顶部仍是过程q的第一次调用记录。这就保证了过程的执行与过程调用记录之间的对应关系。 为了使过程执行时能访问本次过程调用记录中的数据、过程调用记录的下推和弹出,设置运行时刻工作单元SP和TOP。运行时刻工作单元SP始终指向正在执行的过程所对应的调用记录的某一特定单元,而运行时刻工作单元TOP则始终指向当时下推栈空闲存储区的首地址。

图书封面

评论、评分、阅读与下载


    编译原理 PDF格式下载


用户评论 (总计1条)

 
 

  •   虽然书的纸质还行,但不是正版的,书后的条形码都是一样的,不过这个价钱还行吧
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7