自己动手构造编译系统:编译、汇编与链接2.1 编译程序的设计

简介:

第2章

  

编译系统设计

  

麻雀虽小,五脏俱全。


——《围城》

  

   一个完善的工业化编译系统是非常复杂的,为了清晰地描述它的结构,理解编译系统的基本流程,不得不对它进行“大刀阔斧”地删减。这为自


己动手实现一个简单但基本功能完整的编译系统提供了可能。虽然本书设计的是简化后的编译系统,但保留了编译系统的关键流程。正所


谓“麻雀虽小,五脏俱全”,本章从全局的角度描述了编译系统的基本结构,并按照编译、汇编和链接的流程来介绍其设计。


2.1  编译程序的设计

  

编译器是编译系统的核心,主要负责解析源程序的语义,生成目标机器代码。一般情况下,编译流程包含词法分析、语法分析、语义分析和代



生成四个阶段。符号表管理和错误处理贯穿于整个编译流程。如果编译器支持代码优化,那么还需要优化器模块。


  图2-1展示了本书设计的优化编译器的结构,下面分别对上述模块的实现方案做简单介绍。

 

图2-1  编译器结构

相关文章
|
5月前
|
存储 自然语言处理 编译器
编译和链接(翻译环境:预编译+编译+汇编+链接​、运行环境)
编译和链接(翻译环境:预编译+编译+汇编+链接​、运行环境)
加快软盘操作速度的汇编程序源代码
加快软盘操作速度的汇编程序源代码
|
2月前
51单片机用汇编语言实现独立按键检测,每个按键有不同功能,包含按键消抖程序
51单片机用汇编语言实现独立按键检测,每个按键有不同功能,包含按键消抖程序
|
2月前
|
程序员 编译器 数据处理
汇编高手秘籍:解锁性能优化新境界,用汇编语言让你的程序飞起来!
【8月更文挑战第31天】汇编语言作为编程基石,其高效性能备受推崇。尽管现代软件开发更偏爱高级语言,但在性能要求极高的场景下,汇编优化仍不可或缺。本文通过示例代码介绍四种优化技巧:循环展开、寄存器分配、指令重排及SIMD指令使用,显著提升执行效率。同时强调分析性能瓶颈、测试优化效果及保持代码可读性的重要性,助力开发者在关键代码路径上实现性能突破。
54 0
8086 汇编笔记(五):包含多个段的程序
8086 汇编笔记(五):包含多个段的程序
|
4月前
|
C语言
程序技术好文:部分ARM汇编指令解读
程序技术好文:部分ARM汇编指令解读
|
5月前
|
编译器 开发者 C++
8086 汇编笔记(三):第一个程序
8086 汇编笔记(三):第一个程序
|
5月前
|
存储 编译器
C51汇编程序
C51汇编程序
37 5
|
5月前
|
存储 缓存 Linux
C语言编译过程——预处理、编译汇编和链接详解
C语言编译过程——预处理、编译汇编和链接详解
|
存储 Java C++
汇编语言、寄存器分类及程序计数器
汇编语言、寄存器分类及程序计数器
131 0
下一篇
无影云桌面