解釋程式是按照源程式語句的動態執行順序,逐句地進行解釋而後立即執行的翻譯程式。嵌入式解釋程式基於傳統的解釋程式,又針對嵌入式系統特徵引入了新的內容。嵌入式處理器因其套用環境不同而不同,不同的解釋程式也有各自適用的範圍。
基本介紹
- 中文名:嵌入式解釋程式
- 外文名:embedded interpreter
- 學科:計算機
- 類別:解釋程式
- 套用:嵌入式開發
- 特點:邊解釋,邊執行
簡介,嵌入式編譯程式,嵌入式系統,組成及工作原理,
簡介
解釋器,是一種電腦程式,能夠把高階程式語言一行一行解釋運行。解釋器像是一位“中間人”,每次運行程式時都要先轉成另一種語言再作運行,因此解釋器的程式運行速度比較緩慢。它不會一次把整個程式翻譯出來,而是每翻譯一行程式敘述就立刻運行,然後再翻譯下一行,再運行,如此不停地進行下去。解釋器的好處是它消除了編譯整個程式的負擔,程式可以拆分成多個部分來模組化,但這會讓運行時的效率打了折扣。相對地,編譯器已一次將所有原始碼翻譯成另一種語言,如機器碼,運行時便無需再依賴編譯器或額外的程式,故而其運行速度比較快。解釋器運行程式的方法有:直接運行高級程式語言(如Shell內置的解釋器);轉換高級程式語言碼到一些有效率的位元組碼(Bytecode),並運行這些位元組碼;以解釋器包含的編譯器對高級語言編譯,並指示處理器運行編譯後的程式。嵌入式解釋程式是指運行在嵌入式處理器和套用在嵌入式系統中的解釋程式。儘管嵌入式解釋程式消除了編譯負擔,使程式拆分成多個部分來模組化,但也降低程式的運行效率。
嵌入式編譯程式
早期的嵌入式編譯器用彙編語言直接編寫,不同類型處理器所使用的彙編語言也都不盡相同,極大地限制了嵌入式系統前進的步伐。現階段嵌入式編譯程式由高級語言編寫,使開發人員盡最大的可能獨立於計算機硬體系統結 構之外來進行程式開發設計。嵌入式編譯程式是指套用在嵌入式系統中的編譯程式。在計算機上執行一個高級語言程式需要兩步:利用編譯器將高級語言程式翻譯成為機器語言程式;運行得到的機器語言程式求得計算結果。編譯器是將高級語言在邏輯等價的原則上翻譯為底層的彙編語言或者機器語言的電腦程式。
嵌入式系統
嵌入式系統一般指非PC系統,有計算機功能但又不稱之為計算機的設備或器材。它是以套用為中心,軟硬體可裁減的,適應套用系統對功能、可靠性、成本、體積、功耗等綜合性嚴格要求的專用計算機系統。簡單地說,嵌入式系統集系統的套用軟體與硬體於一體,類似於PC中BIOS的工作方式,具有軟體代碼小、高度自動化、回響速度快等特點,特別適合於要求實時和多任務的體系。嵌入式系統主要由嵌入式處理器、相關支撐硬體、嵌入式作業系統及套用軟體系統等組成,它是可獨立工作的“器件”。嵌入式解釋程式是指運行在嵌入式處理器和套用在嵌入式系統中的解釋程式。嵌入式處理器一般是專用的,這樣便於最佳化設計,因此,存在多種嵌入式處理器類型。
DSP(Digital Signal Processor)是面向數位訊號處理的專用處理器。體系結構常採用專用的地址計算部件和暫存器,支持數字濾波和快速傅立葉變換等算法的高效處理。
微控制器是面向控制領域的嵌入式處理器,一般只有很有限的計算和存儲資源,常採用複雜指令集,以獲得緊湊的代碼。
RISC處理器的指令集具有規整的指令長度和機器周期,通過流水化的設計獲得高吞吐量常採用load一store體系結構,即指令僅對暫存器中運算元進行運算,只有load、store指令執行存儲操作一般具有較多的通用暫存器。
多媒體處理器具有較規整的體系結構,為支持多媒體套用中固有的大量並行性常採用專用的指令集。
組成及工作原理
解釋程式由一個總控程式和若干個執行子程式組成。解釋程式的工作過程如下:首先,由總控程式執行初始準備工作,置工作初態;然後,從源程式中取一個語句S,並進行語法檢查。如果語法有錯,則輸出錯誤信息;否則,根據所確定的語句類型轉去執行相應的執行子程式。返回後檢查解釋工作是否完成,如果未完成,則繼續解釋下一語句;否則,進行必要的善後處理工作。
解釋程式的一般結構可以分為解釋模組和運行模組兩個主要模組。前者的職能是按源程式動態執行順序逐個輸入語句,並對單個語句進行分析和解釋,包括語法和語義的正確性檢驗、生成等價的中間代碼或機器語言代碼,以及錯誤信息提供等處理。後者的職能是運行語句的翻譯代碼,並輸出中間結果或最終結果。由於解釋程式的設計思想不同,運行模組的執行方式也不同。一種方法是解釋模組直接生成源程式語句等價的機器語言代碼;通常一個語句生成多條機器指令的代碼段。運行模組負責控制這段代碼的執行並處理中間結果(保存或輸出)。另一種方法是,解釋模組生成語句等價的中間代碼(但不是機器語言代碼),如程式調用及其參數形式。運行模組負責選擇相應功能部分並控制中間代碼的執行,並處理相關運行結果。
解釋程式的工作過程如下:
①由總控程式完成初始化工作。
②依次從源程式中取出一條語句進行語法檢查,如有錯,輸出錯誤信息;如果通過了語法檢查,則根據語句翻澤成相應的指令並執行它。
③檢查源程式是否已經全部解釋執行完畢,如果未完成則繼續解釋並執行下一條語句,直到全部語句都處理完畢。
解釋程式的工作方式非常適於人通過終端設備與計算機會話,如在終端上打一條命令或語句,解釋程式就立即將此語句解釋成一條或幾條指令並提交硬體立即執行且將執行結果反映到終端,從終端把命令打入後,就能立即得到計算結果。
這的確是很方便的,很適合於一些小型機的計算問題。但解釋程式執行速度很慢,例如源程式中出現循環,則解釋程式也重複地解釋並提交執行這一組語句,這就造成很大浪費。對源程式邊解釋翻譯成機器代碼邊執行的高級語言程式。所以,解釋程式的功能是:解釋執行高級語言程式。由於它的方便性和互動性較好,早期一些高級語言採用這種方式,如BASIC、dBASE。