增量编译器简介

简介:
命令式编程环境
 
普通编译器必须编译整个模块或者程序,但是增量编译器只需重新编译程序代码中更改的那部分代码,仅输出相对应的结果(通常该编译器的目标语言是字节码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












本文转自cnn23711151CTO博客,原文链接: http://blog.51cto.com/cnn237111/1130212 ,如需转载请自行联系原作者



相关文章
|
JSON 网络协议 机器人
ROSBridge简介以及理解使用(下)
ROSBridge简介以及理解使用(下)
1451 0
|
XML 安全 网络协议
netconf简介
netconf简要
|
2月前
|
算法 程序员 编译器
【C/C++】C/C++编程——C/C++简介
【C/C++】C/C++编程——C/C++简介
20 0
|
3月前
|
编译器 C语言 C++
PCLINT 简介
PCLINT 简介
|
API C++
exosip 和 pjsip 简介
oSIP  oSIP的开发开始于2000年7月,第一个版本在2001年5月发 布,到现在已经发展到3.x了。它采用ANSI C编写,而且结 构简单小巧,所以速度特别快,它并不提供高层的SIP会话 控制API,它主要提供一些解析SIP/SDP消息的API和事务处理 的状态机,oSIP的作者还开发了基于oSIP的UA lib:exosip和 proxy server lib:partysip.
3841 0
|
Android开发 API 测试技术
[译] WorkManager 简介
这篇文章是 WorkManager 系列中的第一篇。我们将探讨 WorkManager 的基础知识,如何以及何时使用它,以及幕后发生了什么。然后我们将深入研究更复杂的用例。
698 0
|
JavaScript 前端开发 C++
cheerp 简介
这个文章主要介绍了为什么要用cheerp技术以及和其他对标的技术对比,他的闪光点在哪里。 WebAssembly 是一种中间码用于加速浏览器端应用,目前有多种语言可以编译或者交叉到这种格式。当然这个不是本文的内容,详细了解请移步 wasm官网 目前支持: cc++是官方推荐的方式,详细使用见文档;其他语言 AssemblyScript:语法和 TypeScript 一致,对前端来说学习成本低,为前端编写 WebAssembly 最佳选择; Rust:语法复杂、学习成本高,对前端来说可能会不适应。
2652 0
|
存储 数据安全/隐私保护
TrueLicense简介
原文 TrueLicense是一个开源的证书管理引擎,官网 使用场景:当项目交付给客户之后用签名来保证客户不能随意使用项目 默认校验了开始结束时间,可扩展增加mac地址校验等。 其中还有ftp的校验没有尝试,本文详细介绍的是本地校验 license授权机制的原理: 生成密钥对,方法有很多。
8267 0
hcatalog简介和使用
转自:http://blog.csdn.net/lalaguozhe/article/details/9083905 转自:https://yq.aliyun.com/articles/37442
953 0

热门文章

最新文章