just-in-time编译器

在Java和MS.net Framework中,Just-In-Time编译器所扮演的角色是一个中介者,负责代码翻译和安全检查的任务。

在Java或C#等高级语言中,程序员编写的源代码首先被编译种某种格式的中间语言IL(Intermediate Language),IL是一种类似汇编语言,与汇编不同的是,IL运行的是在一个虚拟的机器环境中,或叫做虚拟机,汇编语言运行在一个特定的机器平台中。虚拟机的好处为中间语言提供了一个与平台无关的环境,比如java虚拟机,和CLR(Common Language Runtime),它能够根据所在的平台架构将中间语言翻译中这个平台上的机器语言,从而完成程序的执行过程。担任翻译任务的就是虚拟机中配备的JIT(Just In Time)编译器。与传统编译器不同的是,JIT编译器是边执行边解释,只有需要执行的代码才被翻译成机器语言,那些不会执行到代码被忽略掉的。

JIT编译器担任的第二项任务是检查代码的安全性。它必须保证编译出来的机器代码是安全,即程序不会非法访问不属于本身的内存空间或者没有权限访问的空间,这样可以防止恶意的程序修改敏感数据区域。

此外,JIT编译器提供了对代码优化的可选功能。

下图是Java应用程序的一个程序过程,JIT编译器是JVM的一个组成部分。
[img]http://by1.storage.msn.com/y1p9T_4JhVlirsb_XdqIhQDTexk7rCIBwg4p3xS66KZ7wPyRvIUtPkXfgQC2iTbFYxaHPTqO8qhYG6AwzvTRa53oOkeqOeJuwS1?PARTNER=WRITER[/img]
参考资料:
[1] Microsoft MSDN, Compiling MSIL to Native code.
[2] Simon Robinson, etc. Professional C# (2nd Edition). Wrox Press Inc, March 2002
[3] http://www.research.ibm.com/trl/projects/jit/index_e.htm

原作者: 北斗星,email: min_hb@hotmail.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值