CORC  > 软件研究所  > 中科院软件所  > 中科院软件所
题名Java编译技术的研究与实现
作者冀振燕
学位类别博士
答辩日期1999
授予单位中国科学院软件研究所
授予地点中国科学院软件研究所
关键词Java语言 编译器 优化 中文化 国际化
学位专业计算机软件与理论
中文摘要Java语言具有很多优点,这些优点使得Java语言得到了迅速地发展。但是由字节码的解释执行所带来的Java语言的低性能大大制约了Java语言的发展。为了改善Java语言的性能,Java编译及其优化技术已成为当今的一个研究热点。本论文主要研究了Java源代码到Java字节码的编译技术,以及独立于目标机的优化技术。本论文的主要工作如下:1.深入分析了各种Java编译系统,并对Java编译系统进行了分类,指出了它们的优缺点,进行了一些比较,为实现基于我国国产系统平台COSA/COSIX上的Java编译系统提供了很好的借鉴。2.给出了编译器的总体设计和中间表示设计。采用前、后端结构,使编译器可与不同的前端、后端结合构成不同的编译器,从而具有很好的可扩展性和可重用性。采用四遍扫描,将中间代码优化与语义分析分开,使优化模块具有很好的可重用性。采用基于抽象语法树的中间表示,在中间表示IRtree的设计中,采用面向对象的设计方式,给编译器的实现带来了很好的模块性和可扩展性。面向对象程序设计的多态性也给编译器的实现带来了很大的方便。3.给出了目标代码生成的形式描述,有利于编译器的设计与实现。4.给出了编译器各模块的实现方案。采用Java语言实现编译器,使编译器具有跨平台性。5.根据标识符在类文件常数池中的存储特点,提出了域名(field name)的优化算法,用简单的域名来代替复杂的域名,从而达到了减小存储空间的目的。根据tableswitch和lookupswitch指令的特点,提出了翻译switch语句时,如何选用指令的算法,从而达到了时间与空间的综合和优化。根据类文件中字节码的特点,设计了对goto、if , if_acmp、 if_icmp、ldc、 ldc_w、ldc2_w指令的优化。本编译器还采用了常数传播、常数折合、无用变量删除、无用代码删除的优化算法。这些优化不仅能减少类文件的存储空间,而且提高了程序的执行速度。6.总结了传统的本地化(中文化)实现方法,指出了本地化的缺点。深入分析了Java语言的内部编码和JDK对国际化的支持,指出了JDK的国际化中存在的问题。针对含有本地字符的类名的支持问题,提出了在加载类时采用对类名进行字符编码转换的解决方案;针对兼容性问题,提出了采用根据字符编码特点来选用不同编码转换机制的解决方案。设计并实现了支持国际化的编码器,采用字符编码转换的方案,使多语种字符、字符串的操作达到了和英文字符、字符串完全一致的目标,并节省了类文件的存储空间,也使程序具有有条件的字符集无关性,一定程度上解决了“万码奔腾”的问题。采用编译信息同与语境无关的程序代码分离的方案解决了提示信息的国际化问题。提出了含有本地字符的程序的真正跨平台问题的解决方案;采用小字库。最后,总结了全文,并给出了进一步工作。
语种中文
公开日期2011-03-17
页码108
内容类型学位论文
源URL[http://ir.iscas.ac.cn/handle/311060/6032]  
专题软件研究所_中科院软件所_中科院软件所
推荐引用方式
GB/T 7714
冀振燕. Java编译技术的研究与实现[D]. 中国科学院软件研究所. 中国科学院软件研究所. 1999.
个性服务
查看访问统计
相关权益政策
暂无数据
收藏/分享
所有评论 (0)
暂无评论
 

除非特别说明,本系统中所有内容都受版权保护,并保留所有权利。


©版权所有 ©2017 CSpace - Powered by CSpace