高级语言的实现

编译方式 : 源语言为高级语言,目标语言为低级语言(汇编或机器语言)的翻译程序。

解释方式 : 一边翻译一边执行,翻译完的同时也执行完程序。

两者的区别

编译方式(转换) 解释方式(执行)
对源程序的处理顺序 先翻译后执行 动态顺序逐句地进行分析解释,并立即执行
是否生成目标代码 生成目标代码 不生成目标代码
是否进行翻译 翻译并生成目标代码 对源程序进行翻译,只不过是边翻译边执行,不生成目标程序
执行速度 速度快 速度慢
空间开销 空间开销相对小 空间开销相对大
人机交互 相对不利于 有利于人机交互
动态修改自身 不可以 可以

转换方式 : 是一种变通的方式,假如已有B语言的编译器,就可以把A语言程序转换为B语言程序,用B语言已有的编译器去编译执行

编译程序的组成

词法分析 : 识别由字符组成的高级语言程序中的单词,并将其转化成一种内部表示的形式,同时检查是否存在语法错误

语法分析 : 根据语言定义的语法规则来验证程序中是否存在语法错误

语义分析 : 检查源程序有无语义错误,为代码生成阶段收集类型信息

中间代码生成 : 将源程序转换成一种称为中间代码的内部表示形式,便于优化和移植

中间代码优化 : 变换或改造中间代码,使生成的目标代码更为高效,即节省时间和空间。和程序的算法无关,更多针对于程序具体运行时的内部优化,尤其针对有特殊要求的编译器

目标代码生成 : 将中间代码变换为特定机器上的机器指令代码或汇编指令代码

错误处理

表格管理

编译程序的分遍

原文地址:http://www.cnblogs.com/wuqiu/p/16784158.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性