增量编译器简介

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



相关文章
|
2月前
|
编译器 程序员 C语言
C++系列一: C++简介
C++系列一: C++简介
|
3月前
|
算法 程序员 编译器
【C/C++】C/C++编程——C/C++简介
【C/C++】C/C++编程——C/C++简介
20 0
|
12月前
|
监控 Oracle 关系型数据库
oratop的使用简介
oratop是采用类似top命令的方式实时监控oracle数据库,包括rac和non-rac数据库
|
并行计算 API 调度
TOPI 简介
TOPI 简介
115 0
|
XML 监控 Devops
CUNIT简介
CUNIT简介
350 0
CUNIT简介
|
存储 编解码
H264简介
H.264 原始码流(又称为裸流),是有一个接一个的 NALU 组成的,而它的功能分为两层:视频编码层(VCL, Video Coding Layer)和网络提取层(NAL, Network Abstraction Layer),其中,前者负责有效表示视频数据的内容,而后者则负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上的传输。
H264简介
|
运维 Kubernetes Ubuntu
Kebernetes简介
Kebernetes简介
186 0
|
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.
3845 0
|
网络协议 机器人 Java
ROSBridge简介以及理解使用(上)
ROSBridge简介以及理解使用(上)
2285 0
ROSBridge简介以及理解使用(上)
|
数据安全/隐私保护
叶帆密码箱简介
叶帆密码箱一个纯绿色软件,小巧实用,可以保存各种网络账号,银号帐户,Email信息 等等,此外还可以直接打开链接网址,直接通过热键发送登录信息,方便简洁
699 0