解釋程式是一種語言處理程式,在詞法、語法和語義分析方面與編譯程式的工作原理基本相同,但在運行用戶程式時,它直接執行源程式或源程式的內部形式(中間代碼)。通用解釋程式是指能運行在多種平台的解釋程式或能對多種高級語言源程式的語句進行邊解釋邊執行處理的系統程式。因此,通用解釋程式也可以稱作可移植解釋程式。前者如Java語言的解釋程式可以在不同平台上運行。對於通用解釋程式來說,排錯能力的大小是評價其性能重要標誌之一。
基本介紹
- 中文名:通用解釋程式
- 外文名:general interpretative program
- 學科:計算機
- 特點:通用性、可移植性
- 有關術語:解釋程式
- 適用語言:互動式語言
解釋程式,Java解釋程式,排錯能力與可移植性,
解釋程式
按照源程式語句的動態執行順序,逐句地進行解釋而後立即執行的翻譯程式。解釋程式主要包含詞法分析、總控程式和一組各種類型語句的執行子程式,由總控程式來控制其執行。總控程式完成語句的語法檢查、判別不同的語句,轉相應的執行子程式等任務。語法有錯時輸出錯誤信息。執行子程式按語句的語義執行相應的動作。解釋程式不產生目標程式。通常,它比編譯程式花費的機器時間較多,但存儲空間占用較少。解釋程式的一般結構可以分為解釋模組和運行模組兩個主要模組。前者的職能是按源程式動態執行順序逐個輸入語句,並對單個語句進行分析和解釋,包括語法和語義的正確性檢驗、生成等價的中間代碼或機器語言代碼,以及錯誤信息提供等處理。後者的職能是運行語句的翻譯代碼,並輸出中間結果或最終結果。由於解釋程式的設計思想不同,運行模組的執行方式也不同。一種方法是解釋模組直接生成源程式語句等價的機器語言代碼;通常一個語句生成多條機器指令的代碼段。運行模組負責控制這段代碼的執行並處理中間結果(保存或輸出)。另一種方法是,解釋模組生成語句等價的中間代碼(但不是機器語言代碼),如程式調用及其參數形式。運行模組負責選擇相應功能部分並控制中間代碼的執行,並處理相關運行結果。
解釋程式的優點:結構簡單,易於實現,能方便地進行程式調度和修改,可進行人機對話,適於互動式會話方式下的程式編制和執行等。其缺點是:執行效率低,例如重複執行的語句,採用解釋程式執行時,這些語句的每次動態執行都要解釋,而使用編譯程式只須翻譯一次;此外,高級程式設計語言中的某些結構以及最佳化措施也是解釋程式難以實現的。解釋程式主要用於:①互動式語言,比較常見的有BASIC、APL以及各種命令式語言。②作程式調試用。程式設計語言可同時配置兩個翻譯程式:解釋程式和編譯程式。利用前者的特點進行程式調試和修改,編譯程式則在實際運行中使用。③有些語言中的大多數語句(如字元串加工語言中的字元串查找語句和加工語句),其執行時間要比翻譯時間長得多,此時採用解釋程式比較合適。
Java解釋程式
Java解釋程式是用於解釋Java程式語句的翻譯程式Java是以種簡捷的、面向對象的、用於網路環境的程式設計語言。Java 語言的基本特徵是:簡捷易學、面向對象、適用於網路分布環境、 解釋執行和多執行緒、 具有一定的安全健壯性。其基本解釋程式和對於類的支持只有40 kB 左右,加上標準類庫和執行緒支持也只有215 kB左右,因此系統開銷較小,適用於小型的信息處理和信息環境。它由於能夠實現自動廢區收集,因此也簡化了程式設計的記憶體管理工作。Java解釋程式建立Java虛擬機之上,能在多種不同的平台上運行具有較好的通用性。
排錯能力與可移植性
一個程式特別是中、大規模的程式難免沒有錯誤。發現並排除源程式中的錯誤是語言處理系統的任務之一。通常源程式的語法錯誤和靜態語義錯誤都是由編譯程式或解釋程式來發現的,解釋程式這種能力一般稱為排錯能力,即查找語法和語義錯誤的能力。通常要藉助於在語言中加入某些排錯設施如跟蹤、截斷來發現和排除。
可移植性是軟體質量要素之一。良好的可移植性可以延長軟體的生命周期,拓展軟體的套用環境,因而成為理論界和工程領域共同關注的研究方向。關於軟體可移植性的研究工作主要是在程式設計語言、編譯器、作業系統和計算機體系結構等不同層面上探討可移植性設計與實現的策略。廣義的可移植性涉及軟體在規定環境下的安裝、運行及與相關標準的匹配等不同方面,可分解為適應性、易安裝性、兼容性和可(易)替換性。適應性是指軟體能否適應不同的目標環境。易安裝性是指在規定環境下安裝軟體的難易程度。兼容性是指軟體是否符合與可移植性相關的標準或約定。可(易)替換性是指軟體能否在規定環境下替換其它軟體以及替換的難易程度。狹義的可移植性即指軟體對目標環境的適應性,可分解為兩個層次:原始碼級和可執行代碼級。前者要求軟體原始碼在目標環境下重新編譯而後者則是在目標環境下直接運行軟體的可執行代碼。