程序设计语言的发展
机器语言01
汇编语言MOV
高级语言while
高级语言的实现方式:
编译方式:源语言为高级语言,目标语言为低级语言的翻译程序
解释方式:一边翻译一边执行,翻译完的同时也执行完了程序
编译器和解释器的比较
编译器:转换系统,一次编译目标程序可执行多次
解释器:执行系统,一词翻译目标程序只能执行一次
编译程序的结构
- 词法分析
检查程序中是否有词法错误
构造单词的内部表示 - 语法分析
程序设计语言的文法严格不允许有歧义
分为自顶向下和自底向上的分析方法 - 语义分析
检查源程序有无语义错误
为编译后续工作收集所需信息 - 中间代码生成
将源程序转换成一种称为中间代码的内部表示形式
便于移植和优化 - 中间代码的优化
为了生成高效的目标程序而对用户所写的程序进行优化
与程序的算法无关
内部优化(执行级别) - 目标代码生成
将中间代码变换为特定机器上的汇编指令代码或机器指令代码 - 表处理
为了合理的管理表格(token表、符号表),设立一些专门子程序称为表格管理程序 - 错误处理
使得发现错误后编译器能够继续进行下去,给用户提供更多的参考信息