[发明专利]一种应用于Java到C++语言程序翻译中外部引用的翻译方法无效
申请号: | 201010280012.6 | 申请日: | 2010-09-13 |
公开(公告)号: | CN101968736A | 公开(公告)日: | 2011-02-09 |
发明(设计)人: | 阮锋;魏利锋 | 申请(专利权)人: | 杭州元睿信息技术有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F9/45 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 310013 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用于 java c++ 语言 程序 翻译 外部 引用 方法 | ||
技术领域
本发明涉及计算机领域高级语言代码翻译中的关键技术,为一种应用于Java到C++语言程序翻译中外部引用的翻译方法。
背景技术
软件代码移植是目前解决计算机软件跨平台应用以及在不同终端设备上正常运行的主要技术手段和方法,高级语言代码翻译技术是解决计算机软件代码移植的一个重要研究方向。
Java语言是一种跨平台,适合于分布式计算环境的面向对象编程语言。具有面向对象、分布式、健壮安全、平台独立、可移植、高性能、多线程、动态性等特性。在面向对象的跨平台应用、网络通信和企业级应用以及嵌入式应用等方面得到广泛的发展。健壮安全基础上的平台无关性是Java语言的主要优点,而对虚拟机的依赖和程序运行性能上的缺陷,是Java语言的主要不足和缺点。
Java程序的运行依赖于Java平台,Java平台是一种运行在其它硬件平台之上的纯软件平台,包括两个部分:Java虚拟机(JVM)和Java应用程序编程接口(API)。作为独立于硬件平台的环境,虽经过技术的发展,Java程序基于Java平台的运行效率仍比本机代码慢。
C++语言是一种优秀的面向对象程序设计语言,它在C语言的基础上发展而来,在支持面向对象编程的同时与C语言保持兼容。具有与C语言兼容、代码结构合理、程序运行效率高、面向对象、可重用性高、可扩展性、可维护性等特性。C++语言具有与C语言相同的更加贴近硬件底层的操作和控制能力,使开发者的设计思想更容易表达、实现、理解和维护,而效率并未受到影响。更贴近硬件底层,是C++语言的优点,但同时也为各平台间的移植增加了难度,而其强大的底层操控性,也对程序员的编程水平提出了更高的要求。
与Java语言相比,C++语言具有以下优点:准许直接访问物理地址,能进行位运算,可以直接对硬件进行操作,而Java语言对内存的操作则很难把握;C++程序的依赖性小,程序的运行不需要额外的诸如虚拟机之类的支持,一般用来编写大型系统;C++代码被最终编译成本地机器码,可直接由中央处理单元(CPU)执行,相比Java这种先生成中间代码再由虚拟机执行的语言,效率高了很多。
在实际应用中,Java和C++是当前两大主流的开发语言,因为各自的优势和特点在各自不同的应用领域发挥着非常重要的作用。Java因其语言简单、易学易用、跨平台和健壮安全性在应用领域备受开发者青睐和喜爱,但是跨平台的特性在复杂的嵌入式环境中要实现真正意义上的统一非常困难,同时对虚拟机的过分依赖和程序运行性能方面的不足也影响和限制了Java语言在应用领域尤其是嵌入式设备应用领域的应用与普及。
因此,如果能够将Java语言程序翻译为更灵活、更高效、更易支持的C++语言程序,从而大幅提高程序的执行效率,开拓扩展其应用的范围,将极大地提高Java程序的应用价值。
在从Java到C++语言程序翻译的过程中,外部引用的翻译是其中的重要组成部分,尤其是其它部分的基础和程序正确编译运行实现的保证,本发明通过大量研究和深入比较Java语言和C++语言之间的异同,提出了一种应用于Java到C++语言程序翻译中外部引用的翻译方法。
就语言本身和语法而言,Java语言从C语言和C++语言继承了许多成份,如Java语言的变量声明、操作符形式、参数传递、流程控制等方面与C语言和C++语言完全相同。同时,在指针和内存管理、多继承的支持、全局变量、全局函数、操作符重载、自动类型转换、编译预处理、头文件、字符串、无条件转移语句(goto)、包(package)、编译处理方法、交叉引用、标准应用程序编程接口(API)类库和第三方类库等方面Java和C++语言又有许多差别,下面将重点对与本发明相关的Java语言和C++语言这两种语言之间的差别进行描述。
在编译处理方法方面:Java语言和C++语言都采用独立编译技术,对每个文件或编译单元进行单独编译,但在处理编译单元对外部引用的查找和处理方面,有较大差异。Java编译器可以查看其它文件或编译单元,Java编译器会根据需要找到当前编译单元所需要的外部引用的具体位置并进行编译处理;C++编译器在编译的过程中只处理当前文件或编译单元,不查看和处理当前编译单元之外的任何文件,采用包含编译预处理命令(#include)将外部引用加载到当前文件或编译单元,形成独立的编译环境。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州元睿信息技术有限公司,未经杭州元睿信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010280012.6/2.html,转载请声明来源钻瓜专利网。