增量编译器简介

命令式编程环境
 
普通编译器必须编译整个模块或者程序,但是增量编译器只需重新编译程序代码中更改的那部分代码,仅输出相对应的结果(通常该编译器的目标语言是字节码bytecode)。在有效利用先前编译结果的基础上,增量编译器避免了重复编译整个源文件(大多数代码都没有改变)。对于大多数增量编译器来说,编译程序中的一小部分改动部分几乎是即时性的。增量编译器减少了传统编译器的编译细度,使得编译器可以追加或者替换更小的部分。
 
很多编程工具利用增量编译器提供开发人员更好的开发交互环境。开发人员使用增量编译器就不需要等候很长的编译时间。
 
增量编译器的一个缺点就是由于它不容易优化代码,因为它只编译一小部分范围。这通常不是问题,因为优化通常是在发布期间才做。增量编译器一般用在开发过程中,标准编译器用来发布。
 
交互式编程环境
 
交互式编程环境中,交互式编译器是源语言的运行时系统的一部分,编译器在运行时可以由程序通过一些代码或者数据结构调用。然后输出新的编译过的程序片段(机器码),这部分机器码可以由运行时系统立即获得。如果新编译的片段替换旧了片段,旧的程序片段会被垃圾回收,这种方法某种程度上是代码的自我修复,也是元数据编程语言的特点。这种可以在运行时增加,删除代码的能力被称之为热插拔 hot swapping。一些交互式编程平台混合使用了解释码和编译码,实现了任何代码改变能立即被程序知道的假象。
 
常见的增量编译器如IBM的VisualAge C++编译器,Eclipse平台也有一个Java增量编译器。
 
Eclipse的中有一个JDT Core Component,JDT Core Component中包含了一个增量Java编译器作为Eclipse的一个编译器,它是基于VisualAge for Java compiler的技术,值得一提的是,它允许运行和调试那些仍包含错误的代码。
 
参考资料:
 
http://en.wikipedia.org/wiki/Incremental_compiler
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值