编译过程和编译程序结构
五个阶段:
- 词法分析
- 语法分析
- 语义分析和中间代码生成
- 优化
- 目标代码生成
编译程序的开发
- 自编译:用某种高级语言编写自己的编译程序称为自编译,
- 交叉编译:用A机器上的编译程序来产生可在B机器上运行的目标代码
- 自展:首先确定一个非常简单的核心语言L0,然后用机器语言或者汇编语言写出它的编译程序T0,再把语言L0扩充到L1,用L0编写L1的编译程序T1,这样不断扩展下去,直到完成所要求的编译程序为止。
- 移植:A机器上的某种高级语言的编译程序稍加改动后能够在B机器上运行
习题
- 编译程序是将高级语言程序翻译成的机器语言程序的程序
- 将编译程序分成若干个“遍“是为了使编译程序的结构更加清晰。
- 构造编译程序应掌握:源程序、目标语言、编译方法
- 编译程序绝大多数时间花在表格管理上
- 编译程序是对高级语言程序的翻译。
- 计算机执行用高级语言编写的程序有哪些途径,它们之间主要区别是什么?
答:计算机执行用高级语言编写的程序主要有两个途径,解释和编译
解释:翻译程序每读入一条源程序的语句,就将其解释成对应其功能的机器代码语句串并执行,然后再读入下一条源程序语句并解释执行。
编译:首先将高级语言源程序全部翻译成机器代码程序,再执行机器代码程序
编译型高级语言比解释型高级语言块,解释方式下人机界面比编译型好,便于人机调试。
解释方式下不生成目标代码,编译方式下生成目标代码。 -
画出编译程序的总框图,如果你是一个编译程序的总设计师,设计编译程序时应当考虑哪些问题?
编译程序总框图
作为一个编译程序的总设计师,首先要深刻理解被编译的源语言其语法及语义:其次,要充分掌握目标指令的功能及特点,如果目标语言是机器指令,还要搞清楚机器的硬件结构以及操作系统的功能:第三,对编译的方法及使用的软件工具也必须准确化。总之,总设计师在设计编译程序时必须估量系统功能要求、硬件设备及软件工具等诸因素对编译程序构造的影响。
网友评论