新四季網

一種可跨語言重用的程式語言的製作方法

2023-12-08 16:32:21 1

專利名稱:一種可跨語言重用的程式語言的製作方法
技術領域:
本發明涉及一種用於軟體應用程式開發的程式語言,具體涉及到用於開發軟體應用程式的一組術語、語法規則 、標準開發庫、(跨語言)開發工具(包括IDE、模擬器、轉換工具和編譯工具)。
背景技術:
計算機程式語言有幾千種,雖然都有各自的優點和特性;但它們編寫的代碼都存在兩個問題跨語言重用性差和跨平臺重用性差。第一個問題,跨語言重用性差是指在某些算法(如單源最短路徑、貪婪算法等)和某類應用(如3D遊戲)的編程中,各語言處理流程幾乎大同小異;比如3D遊戲一般的程序流程是「算法建模_>渲染_>算法建模_>渲染_>……」如此循環而成。這種情況下,如果想實現多語言開發,雖然算法相同卻無法重用以前用別的語言寫好的算法,便會產生重複開發成本,並可能代價極高。作為第一個問題的技術背景,雖然人們發展的UML(Unified Modeling Language,統一建模語言或標準建模語言)和F1DL (Program Design Language,設計性程序語言),被認為能夠實現跨語言的建模和重用,然而這些語言都處於軟體開發的設計階段,均不被認為是軟體的代碼。第二個問題,許多應用需要跨多個平臺,而有些平臺(如iOS、WindowsPhone等)不支持Java、有些平臺(如iOS、Android)則不至支持C++,無法實現用統一的語言開發多個終端的應用,而跨平臺移植又可能產生昂貴的成本。作為第二個問題的技術背景,歷史上出現了近百種腳本語言(如Lua、Python、Ruby等)能夠實現跨平臺的直接代碼重用。但腳本語言都是解釋性和寄生性的,不能獨立開發完備的軟體,並且運行效率低、語法冗長(相比本語言)、易出錯,難以實現用戶級的線程庫和複雜遞歸應用,不可轉換成其他語言,也不可直接編譯成軟體產品。相比本發明來說,這些語言還存在語法擴散、過度使用符號標示、精度表示繁瑣、缺乏標準函數庫、開發效率低、執行慢等缺點。

發明內容
為了解決上述技術問題,本發明公開了一種程式語言,為方便說明,以下將其簡稱為TML (Thought Markup Language);將本發明的程式語言的標準開發庫簡稱為TMLib(Thought Markup Language Library)0TML內建數據結構、動態類型和動態綁定。TML 標不符(關鍵詞)只有 9 個for、return、break、if、else、err、continue、trace、NULL,不超過C語系(含C++、JAVA)、PASCAL語系、BASIC語系的交集,不包含語言特性、API和環境語句,確保能夠轉換為其他語言。TML變量不用聲明,在首次使用時,由編譯器自動識別,數據類型識別規則是首先根據調用需求判定,其次根據其值判定,最後判定為NULL。TML數組使用中括號[]表示,為提高重用性,不支持異構數組。TML函數不用聲明(無需function、sub、def之類的修飾詞),定義時不用寫修飾符直接寫函數名。TML函數無需定義函數類型,根據返回值自動判定函數類型。TML函數必須使用return (可無返回值)結束,調用時使用小括號O,見實施例I。TML同一函數可有多種類型的返回值。TML函數體使用空行區分。TML語句使用換行分割,語句末尾不加分號。TML使用縮排區分代碼段(block)
TML類不用聲明,編譯器使用文件名自動命名,文件名就是類名,擴展名為小寫的tml,以實現自動識別編譯。TML子類文件名為「父類名.子類名.tml 」。 TML多重繼承文件名為「父類I.父類2.……父類η.子類名.tml」,子類中沒有的attributes,按照從左到右(先查找父類I,然後查找父類2……最後查找父類η)的順序在基類中查找。 TML的入口函數為Main,不寫在代碼中,必須寫在項目文件中。TML項目文件必須放在project目錄下,擴展名為tml,文件名按照平臺和用途命名。整個項目的目錄必須按照圖2的格式構建。TML類構造時自動調用init函數,init可預設,可加參數。TML支持解釋性調試和編譯性執行的雙重運行模式。TML調試語句使用trace實現,trace只在調試時輸出數據,編譯時被忽略。TML編譯規則是首先轉成高效的C語言編譯為二進位指令(二進位格式由平臺定義,與代碼無關),如果遇到不支持的平臺,則進行字節型編譯。同理,也可以讓最終用戶自由指定本地編譯,並構建一個程序版本。TML浮點可使用e表示。TML虛數使用j表示。TML字符串用雙引號」」表示。TML注釋與使用//和/*….*/。 TML轉譯字符使用反斜槓(\)表示。TML區分大小寫,類名(文件名)和函數名首字母必須大寫,變量名必須小寫。TML沒有inlcude或import語句,因為文件名和類名的統一使這些語句變的多餘。若要包含外部文件也無需寫在代碼中,寫在項目屬性中即可,由編譯器自動識別包含關係。避免重複包含,降低了代碼依賴性。TMLib提供開發中常用的數據結構(包括異構數組、哈希表、字典等)、函數(包括絕對值、四捨五入、地板除、隨機數、三角函數、正則等)和⑶I。TMLib提供嵌入到其他語言的擴展接口,也就是說其他語言通過引用TMLib將TML作為extern模式連結到同一代碼中實現混合編程和原始碼直接重用,見實施例2。TMLib提供一套可跨平臺重用的⑶I,與現有技術的區別點在於通過單窗口虛擬多窗口多任務技術,實現最低資源消耗,控制項不單獨繪製,整屏一起繪製,繪製時通過多線程,多面繪製,高效率渲染。控制項響應也要通過多線程來調度。兩者用一個線程,繪製的時候不處理響應。因此本⑶I非常適合3D展示或遊戲領域的跨平臺開發。本發明的IDE提供帶智能提示的文本編輯器和模擬器。雖然只有Windows單一平臺,但由於語言和庫的跨平臺型,因此在Windows下開發的應用也可以直接運行在iPhone等設備上。IDE對硬體要求低,PII系列即可開發,實際中我們採用PIII 800/256M配置搭建iPhone的開發環境。本發明的轉換工具通過轉換算法,將同一份TML原始碼轉換為C++、Java、C#、Pascal、Obj-C語言的多套原始碼,也可以轉換為被ARM嵌入式晶片直接執行的語言,實現跨語言的代碼重用。本發明的編譯工具能夠將同一份TML原始碼直接編譯成Windows、Unix、MacOS X、iOS、Android、Linux、Solaris、FreeBSD等平臺的多種應用,完成部分代碼處理工作,實現跨平臺的代碼重用。 有益效果
本發明公開了一種簡捷優美、可跨平臺、重用性強的程式語言;該語言結合本發明公開的編譯工具提供了一種簡捷高效開發跨平臺應用的新方法;該語言結合本發明公開的轉換工具提供了一種跨語言重用代碼的新方法;該語言結合本發明公開的IDE和模擬器提供了跨平臺調試和模擬的新方法;該語言結合本發明提供的標準開發庫提供了一種可高效復用代碼的混合編程方法。本發明使作為軟體開發中最寶貴資產的原始碼具備最大限度的可重用性。本發明的編譯器能夠自動完成一部分代碼工作,降低了程式設計師的工作量。本發明公布的語法規則和項目開發規定,使項目工程格式優美、整齊劃一,提高了可讀性和易維護性。本發明的研究始於1992年,在公布之前出現了幾百種開放式應用平臺,而本發明都可以對其重用(已證明適用可見範圍所有開放式應用平臺,包括Windows系列、Unix系列、iOS、Android、Symbian、BlackBerry> PSP、Xbox360> Wii、3DS、Adobe Flash Player>JavaVM等等)。這有力證明了本發明提出的思想和規則具備合理性、正確性和永恆的生命力(從規則上可以看出,理論上生命力會長於所有面向對象的開發語言,實踐也證明了永恆的價值超過原生的價值)。其原因是,某個特定功能的軟體不論用任何語言開發,思想實現部分相似。本語言只有思想實現部分、所以該軟體只需要用本語言開發過後,不再有移植、模仿、重寫的必要。目前正處於開放式平臺爆炸的時代,本發明的公開必定會創造巨大的經濟效益和社會效益。


下面結合附圖對本發明做更進一步的具體說明,本發明的上述和/或其他方面的優點將會變得更加清楚。圖I為本發明的各部分的結構和關係圖。圖2為本發明開發的一個3D遊戲的項目結構示例圖。
圖3為本發明的編譯器的編譯過程,編譯器完成了一部分編程工作。
具體實施例方式 下面結合實施示例對本發明做更進一步的解釋。實施例I
使用本發明定義一個取絕對值的函數的代碼,以說明函數的語法規則
//定義一個取絕對值的函數 ABS (X)
if (x〈0)
X=-X
retrun x
上段代碼說明了函數名前面無需修飾符,首字母必須大寫,無需定義函數類型,必須使用return結束。實施例2
使用本發明的標準開發庫將本語言嵌入到C++和JAVA中寫法為 extern 「TML」 {
Il直接編寫TML代碼
}
在其他語言中寫法與此類似。實施例3
使用本發明開發的一款跨平臺的3D捕魚遊戲示例項目,項目原始碼和目錄結構如圖2所示,具體步驟如下
步驟I :使用本發明的IDE建立項目,名稱一般為項目名或其他有意義的英文縮寫,此處起名為3Dgame ;
步驟2 :在創建選項中,選擇多平臺和設置參數;
步驟3 :點擊創建,如圖2所示,會得到一個名為3Dgame的目錄,在3Dgame目錄下建立`4個基本目錄platform (裡面已經生成好步驟2所選的平臺的標準開發庫)、product (用於存放最終產品,包括編譯生成文件、圖片資源、音樂資源和配置文件)、project (裡面已經生成好步驟2所選的平臺的項目文件,一般的Windows、Android、iOS等平臺都可以使用solution, tml進行編譯,ARM嵌入式平臺使用ARM. tml進行編譯,Qt平臺使用Qt. tml進行編譯)和source (存放原始碼)。這裡的目錄結構是固定的,才能被編譯工具和轉換工具識別;
步驟4 :根據遊戲規則,編寫原始碼,存放在source目錄下;
步驟5:使用編譯工具,編譯需要的平臺的項目,會生成到product目錄下。編譯器會選擇運行效率最高的方式編譯,如圖2,在Windows下將使用Direct3D實現3D渲染,在Android下使用OpenGL ES實現3D渲染。在傳統開發中這種選擇由代碼指定,而本發明中由編譯器實現了一部分編程工作,如圖3 ;
步驟6 :打包發布。實施例4
如圖3所示,本發明公開了一種可跨語言重用的程式語言的編譯工具,編譯工具能夠將同一份 TML 原始碼直接編譯成 Windows、Unix、MacOS X、iOS、Android、Linux、Solaris、FreeBSD等平臺的多種應用,完成部分代碼處理工作,實現跨平臺的代碼重用。當用戶選擇好目標平臺,開始程序編譯後包括以下步驟
步驟I :CPU讀取用戶選擇的平臺類型和project下的項目的參數;
步驟2 :篩選出對應平臺上的編譯框架集合,如二進位或者字節碼類型;
步驟3 :分析原始碼用的主要技術的最優實現方案集合,如3D項目會對應Direct3D、OpenGL等幾種實現方案;
步驟4 :確定平臺映射的標準開發庫集合,按最優化指標進行排序;
步驟5 :對步驟2,3,4的三個集合進行組合,得到一組編譯方案;
步驟6 :根據方案將原始碼處理為中間碼,中間碼有可能是C語言或其他代碼;
步驟7 :判斷轉換是否成功;
步驟8 :若結果不成功,則選擇下一組更寬鬆的方案進行處理;
步驟9 :若結果成功,則將source目錄下的類文件,逐個編譯成對象(或中間文件); 步驟10 :判斷是否編譯完成或者方案不能繼續放寬;
步驟11 :若是,則將對象或中間文件,連結或轉換(打包)成最終可執行文件,存放在product目錄下。本發明提供了一種程式語言及使用方法,具體實現該技術方案的方法和途徑很多,以上所述僅是本發明的優選實施方式。應當指出,對於本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護範圍。本實施例中未明確的各組成部分均可用現有技術加以實現。
權利要求
1.一種用於軟體應用程式開發的程式語言,包括用於開發軟體應用程式的一組術語、語法規則、標準開發庫、(跨語言)開發工具(包括IDE、轉換工具和編譯工具)。
2.根據權利要求I所述的程式語言,其特徵在於變量和函數都不用聲明(無需function、sub、def之類的修飾詞),無需定義數據類型直接寫函數名,根據返回值自動判定函數類型,支持同一函數有多種類型的返回值,編譯器使用空行區分函數體,必須使用return (可無返回值)結束,調用時使用小括號O。
3.根據權利要求I所述的程式語言,其特徵在於類不用聲明,編譯器使用文件名自動命名,文件名就是類名,擴展名為小寫的tml,以實現自動識別編譯;子類文件名為「父類名.子類名.tml」;多重繼承文件名為「父類I.父類2.……父類η.子類名.tml」,子類中沒有的attributes,按照從左到右(先查找父類I,然後查找父類2……最後查找父類η)的順序在基類中查找。
4.根據權利要求I所述的程式語言,其特徵在於入口函數為Main,必須寫在項目文件中;項目文件必須放在project目錄下,擴展名為tml,文件名按照平臺和用途命名;整個項目的目錄必須按照圖2的格式構建。
5.根據權利要求I所述的程式語言,其特徵在於支持解釋性調試和編譯性執行的雙重 運行模式,編譯規則是首先轉成高效的C語言編譯為二進位指令(二進位格式由平臺定義,與代碼無關),如果遇到不支持的平臺,則進行字節型編譯;同理,也可以讓最終用戶自由指定本地編譯並構建一個程序版本。
6.根據權利要求I所述的程式語言,其特徵在於沒有inlcude或import語句,若要包含外部文件也無需寫在代碼中,寫在項目屬性中即可,由編譯器自動識別包含關係。
7.根據權利要求I所述的標準開發庫,其特徵在於提供一套可跨平臺重用的GUI,與現有技術的區別點在於通過單窗口虛擬多窗口多任務技術,實現最低資源消耗,控制項不單獨繪製,整屏一起繪製,繪製時通過多線程,多面繪製,高效率渲染;控制項響應也要通過多線程來調度;兩者用一個線程,繪製的時候不處理響應。
8.根據權利要求I所述的轉換工具,其特徵在於能將同一份原始碼轉換為C++、JaVa、C#、Pascal、Obj-C語言的多套原始碼,也可以轉換為被ARM嵌入式晶片直接執行的語言,實現跨語言的代碼重用。
9.根據權利要求I所述的編譯工具,其特徵在於能完成一部分編程工作(如圖3),並將同一份原始碼直接編譯成 Windows、Unix、MacOS X、iOS、Android、Linux、Solaris、FreeBSD等平臺的多種應用,實現跨平臺的代碼重用。
10.根據權利要求I所述的標準開發庫,其特徵在於提供嵌入到其他語言的擴展接口,也就是說其他語言通過引用TMLib將TML作為extern模式連結到同一代碼中實現混合編程和原始碼直接重用。
全文摘要
一種可跨語言重用的程式語言。本發明公布了一種使用儘可能簡捷且具備自然語言語義的一組特定的術語和語法規則來編寫和開發軟體應用程式的方法。通過抽象某個特定功能的軟體的多種語言開發中相同思想實現部分的表示方法以及多種編程語系的交集語義的描述,從而實現了跨平臺、跨編譯、可轉換、可嵌入的統一開發。通過本發明公開的編譯工具能將本語言編寫的同一套代碼編譯成不同平臺下的不同形態的應用;平臺特性由相應的編譯工具實現。通過本發明公布的轉換工具,可將本語言編寫的代碼轉換成其他語言(C++、Java、C#、Pascal、Obj-C等),也可以轉換為被ARM嵌入式晶片直接執行的代碼。通過本發明公布的標準開發庫,可將本語言直接嵌入到其他語言中進行混合編程。通過本發明公布的IDE和模擬器,可實現跨平臺調試和模擬運行。
文檔編號G06F9/44GK102880452SQ20121002187
公開日2013年1月16日 申請日期2012年2月1日 優先權日2012年2月1日
發明者不公告發明人 申請人:日照市國軟軟體有限公司, 李天盟, 濟南高新區動漫遊戲研發中心

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀