新四季網

一種可程式語言編譯裝載系統及方法與流程

2023-12-11 19:06:57 1


本發明涉及一種可程式語言編譯裝載系統及方法,特別適用於各種工業可編程控制應用場合,能有效提高程序的執行效率。



背景技術:

傳統的工業現場使用的可編程控制器(PLC)以及分散控制系統(DCS)中的分散處理單元,均可通過組態軟體進行用戶編程,用戶編程軟體通過對高級語言源文件進行編譯,生成虛擬指令,通過通訊接口下載到控制器中,控制器通過解釋虛擬指令運行組態程序。這種方法的優點是可移植性強,能夠在不同硬體平臺進行移植,缺點是運行效率不高,相同的計算功能,虛擬指令的運行比機器指令運行至少慢20倍。另一種編譯方式是通過對高級語言直接編譯為目標平臺的機器指令,把編譯完成的機器指令下載到目標機的處理器中運行,這種方式的優點是執行效率高,缺點是可移植性差,程序的任何改動要重新編譯整個工程,同時對目標平臺依賴太強,可用性較低。



技術實現要素:

本發明的目的是為了解決現有技術中存在的缺陷,提供一種可程式語言編譯裝載系統,該可程式語言編譯裝載系統包括編譯系統和執行系統;編譯系統和執行系統通過通訊線纜相連;

其中,編譯系統包括:

編輯器,對高級語言源文件進行編輯後,發送至編譯器;

編譯器,接收編輯後的源文件,進行編譯生成虛擬指令程序;

虛擬機,執行虛擬指令程序;

彙編器,將虛擬指令程序進一步編譯為機器指令,生成目標程序;

執行系統包括:

加載器,通過通訊線纜下載目標程序,加載形成目標代碼;

執行器,執行目標代碼。

上述執行系統裝載於目標機內;編譯系統裝載於宿主機內。

加載器加載形成目標代碼的方式為:加載器提供代碼段加載基地址、數據段加載基地址、BSS段加載基地址和系統函數調用基地址,以函數指針形式調用加載目標程序。

本發明還提供了一種可程式語言編譯裝載方法,可程式語言編譯裝載方法將高級語言源文件先轉換成虛擬指令程序,運行虛擬指令程序進行程序邏輯正確性的驗證後,再將虛擬指令程序轉換成機器指令程序,進行執行。

虛擬指令程序通過彙編器逐條翻譯轉換成機器指令程序。

可程式語言編譯裝載方法包括以下步驟:

(1)通過編輯器對高級語言源文件進行編輯;

(2)採用編譯器對編輯後的源文件進行編譯,生成虛擬指令程序,虛擬指令程序以文件形式保存;

(3)虛擬機執行虛擬指令程序,驗證編輯程序的正確性;如果不正確,進行步驟(1),如果正確,則進行步驟(4);

(4)選擇目標平臺,彙編器將虛擬指令程序進一步編譯為目標平臺的機器指令,生成目標程序,以文件形式保存;

(5)把目標程序通過通訊線纜下載到目標機內;

(6)目標機內的加載器提供代碼段加載基地址、數據段加載基地址、BSS段加載基地址和系統函數調用基地址,以函數指針形式調用加載目標程序,形成目標代碼;

(7)執行器執行目標代碼。

本發明相比現有技術具有以下優點:

1、最終編譯後進行執行的目標指令是機器指令,運行效率高,比傳統虛擬指令效率提高至少10倍,非常適合應用在對運行效率要求較高的場合。

2、對源文件首先編譯生成的虛擬指令,具有較強的可移植特性,相同的高級語言源程序無需修改,即可根據不同的硬體平臺逐條編譯成不同目標平臺下的機器指令。

3、且編譯的目標程序的執行與內存地址無關,只需要加載器提供代碼段加載基地址、數據段加載基地址、BSS段加載基地址和函數調用基地址即可,程序加載執行與目標平臺耦合性低,可即時編譯即時運行。

4、本發明通過對高級語言源文件進行虛擬指令轉換後再生成機器指令,進行執行,既具有虛擬指令可移植的特性,能夠方便在各個平臺移植運行,又具有機器指令的運行速度,解決虛擬指令運行效率低的問題。

附圖說明

圖1為本發明可程式語言編譯裝載系統的結構框圖;

圖2為本發明可程式語言編譯裝載方法的流程圖。

圖中,101-編譯系統,102-執行系統,103-通訊線纜,104-編輯器,105-編譯器,106-虛擬指令,107-彙編器,108-虛擬機,109-目標程序,110-加載器,111-執行器。

具體實施方式

下面結合附圖對本發明進行詳細說明。

如圖1所示,本發明可程式語言編譯裝載系統由編譯系統101和執行系統102構成,編譯系統101和執行系統102通過通訊線纜103相連。其中,編譯系統101包括編輯器104、編譯器105、彙編器107和虛擬機108;執行系統102包括加載器110和執行器111。

編輯器104輸出編輯後的源文件,編譯器105接收,編譯輸出虛擬指令106,由彙編器107和虛擬機108接收,彙編器107輸出目標程序109後,通過通訊線纜103由加載器110加載生成目標代碼後,執行器111執行。

本發明可程式語言編譯裝載系統的編譯及裝載方法如下:編輯器104對高級語言(C語言等)源文件進行編輯,由編譯器105編譯成虛擬指令代碼,虛擬指令代碼可由虛擬機108解釋執行,驗證程序邏輯的正確性;彙編器107把虛擬指令106進一步編譯為各硬體平臺的目標程序109;目標程序109通過通訊線纜103下載到執行系統102,由加載器110加載目標代碼,最終由執行器111執行。目標程序109的執行與絕對內存位置無關,加載器110加載時僅需提供代碼段加載基地址、數據段加載基地址、BSS段加載基地址和系統函數調用基地址即可。

一種具體實現方式包括如下步驟:

步驟1)以C語言為例,在C語言編輯環境中,通過編輯器104對源程序進行編輯,使用的目標平臺系統函數通過函數號進行調用,可預先在編譯環境中定義目標平臺所有的系統函數。

步驟2)在步驟1)中編輯完成後,調用編譯器105,對源文件進行編譯,編譯具體過程分為預編譯、生成抽象語法樹、生成虛擬指令,虛擬指令文件是該步驟的產物。

步驟3)如果需要仿真執行,根據步驟2)生成的虛擬指令106調用虛擬機108程序,驗證邏輯程序的正確性,如果程序邏輯有錯誤,回到步驟1)對源文件進行重新編輯;如果正確,進入步驟4)

步驟4)根據步驟2)生成的虛擬指令,調用彙編器107生成目標平臺的機器碼指令,即由該彙編器107的機器碼生成程序進行逐條翻譯虛擬指令轉換為機器指令,同時所有指令執行都採用相對地址偏移,即程序執行與內存絕對地址無關,包括全局數據段的存儲和引用都採用相對地址,系統函數的調用也採用相對地址偏移的方式,該步驟生成的目標程序以文件形式存放。

步驟5)通過編譯機器(即宿主機)與目標機器(即目標機)之間的通訊接口(串行通訊或者網絡通訊接口)把目標程序下載到目標機器中。

步驟6)目標機器收到目標程序後,調用加載器110進行程序加載操作,程序加載過程需要提供目標程序運行的基地址,包括代碼段加載基地址、數據段加載基地址、BSS段加載基地址和函數調用列表基地址。

步驟7)執行器111執行程序,目標代碼與系統所有的交互採用函數調用方式實現,避免了每次運算含有中間寄存變量的問題。

本發明可程式語言編譯及裝載方法可用於可編程控制器(PLC)以及分散控制系統(DCS)中的分散處理單元中的編程模塊,也可用於其他具有用戶可編程特性的系統中。

同类文章

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

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有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-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀