- 19
- 0
- 约1.16万字
- 约 42页
- 2017-03-28 发布于四川
- 举报
“编译原理实践与应用”第1章节节编译原理概述
* * * * * * * * * * 第*页 编译程序中的主要数据结构 (续) Token表 符号表 常数表 错误信息 语法树 中间代码表 临时文件 目标代码表 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd. * 第*页 (1) Token表 当扫描程序将字符收集到一个记号中时,它通常是以符号表示这个记号;这也就是说,作为一个枚举数据类型的值来表示源程序的记号集。 (2) 语法树(syntax tree) 如果分析程序确实生成了语法树,它的构造通常为基于指针的标准结构,在进行分析时动态分配该结构,则整棵树可作为一个指向根节点的单个变量保存。结构中的每一个节点都是一个记录,它的域表示由分析程序和之后的语义分析程序收集的信息。 编译程序中的主要数据结构介绍: Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd. * 第*页 (3) 符号表(symbol table) 这个数据结构中的信息与标识符有关:函数、变量、常量以及数据类型。符号表几乎与编译器的所有阶段交互:扫描程序、分析程序或将标识符输入到表格中的语义分析程序;语义分析程序将增加数据类型和其他信息;优化阶段和代码生成阶段也将利用由符号表提供的信息选出恰当的代码。因为对符号表的访问如此频繁,所以插入、删除和访问操作都必须比常规操作更有效。尽管可以使用各种树的结构,但杂凑表却是达到这一要求的标准数据结构。有时在一个列表或栈中可使用若干个表格。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd. * 第*页 (4) 常数表(literal table) 常数表的功能是存放在程序中用到的常量和字符串,因此快速插入和查找在常数表中也十分重要。但是,在其中却无需删除,这是因为它的数据全程应用于程序而且常量或字符串在该表中只出现一次。 (5) 中间代码(intermediate code) 根据中间代码的类型(例如三元式代码)和优化的类型,该代码可以是文本串的数组、临时文本文件或是结构的连接列表。对于进行复杂优化的编译器,应特别注意选择允许简单重组的表示。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd. * 第*页 (6) 目标代码(intermediate code) 存放最终生成的目标代码,该代码最终是文本形式的文件。 (7) 临时文件(t e m p o r a ry file) 计算机过去一直未能在编译器时将整个程序保留在存储器中。这一问题已经通过使用临时文件来保存翻译时中间步骤的结果或通过“匆忙地”编译(也就是只保留源程序早期部分的足够信息用以处理翻译)解决了。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd. * 第*页 1.3 编译程序的设计 构造编译程序要掌握以下几方面的内容: 源语言:理解其结构和含义 目标语言:必须清楚硬件的系统结构和指令的格式等 编译方法 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd. * 第*页 1.3 编译程序的构造 一般实现编译程序的方法有: 1.直接用机器语言编写编译程序 2.用汇编语言编写编译程序 注:编译程序核心部分常用汇编语言编写 3.用高级语言编写编译程序 注:这是普遍采用的方法 4.自编译 5.用编译工具自动生成:LEX(词法分析)与YACC(用于自动产生LALR分析表) 6.移植(同种语言的编译程序在不同类型的机器之间移植) Evaluation only. Created with Aspose.Slides for .NET 3.5 Client
您可能关注的文档
- ìos唯美磨砂背景简约微立体ppt模板.pptx
- “lìnuxc从初涉到精通”—明日科技—第06章节节—gdb调试工具.ppt
- “labview8—20程序的的设计从初涉到精通”随书教学演示演示课件与习题[基本篇部分]第1章节节揭开labview的面纱.ppt
- “pagemaker平面的的设计与排版的的教程”第11课—制作pdf电子文档.ppt
- “pagemaker平面的的设计与排版的的教程”第3课—设置文本格式.ppt
- “lìnuxc从初涉到精通”—明日科技—第10章节节—文件的输入输出的的操作.ppt
- [珍藏版]ppt背景常用美图.ppt
- “oracle数据库应用与开发”第03章节节[锁与分区表]理论课.ppt
- “word排版的的教程与上机指教”第11课.ppt
- “word排版的的教程与上机指教”第13课.ppt
原创力文档

文档评论(0)