[發明專利]一種應用于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.szxzyx.cn/pat/books/201010280012.6/2.html,轉載請聲明來源鉆瓜專利網。





