複製鏈接
請複製以下鏈接發送給好友

解釋程序

鎖定
解釋程序是一種語言處理程序,在詞法、語法和語義分析方面與編譯程序的工作原理基本相同,但在運行用户程序時,它直接執行源程序或源程序的內部形式(中間代碼)。因此,解釋程序並不產生目標程序,這是它和編譯程序的主要區別。
中文名
解釋程序
外文名
interpreter
別    名
解釋器
類    型
語言處理程序

解釋程序工作原理

解釋程序由一個總控程序和若干個執行子程序組成。解釋程序的工作過程如下:首先,由總控程序執行初始準備工作,置工作初態;然後,從源程序中取一個語句S,並進行語法檢查。如果語法有錯,則輸出錯誤信息;否則,根據所確定的語句類型轉去執行相應的執行子程序。返回後檢查解釋工作是否完成,如果未完成,則繼續解釋下一語句;否則,進行必要的善後處理工作。

解釋程序組成模塊

解釋程序的一般結構可以分為解釋模塊和運行模塊兩個主要模塊。前者的職能是按源程序動態執行順序逐個輸入語句,並對單個語句進行分析和解釋,包括語法和語義的正確性檢驗、生成等價的中間代碼或機器語言代碼,以及錯誤信息提供等處理。後者的職能是運行語句的翻譯代碼,並輸出中間結果或最終結果。由於解釋程序的設計思想不同,運行模塊的執行方式也不同。一種方法是解釋模塊直接生成源程序語句等價的機器語言代碼;通常一個語句生成多條機器指令代碼段。運行模塊負責控制這段代碼的執行並處理中間結果(保存或輸出)。另一種方法是,解釋模塊生成語句等價的中間代碼(但不是機器語言代碼),如程序調用及其參數形式。運行模塊負責選擇相應功能部分並控制中間代碼的執行,並處理相關運行結果。 [1] 

解釋程序實現方法

解釋程序與編譯程序的主要區別是解釋程序不產生目標代碼,它逐條地取出源程序中的語句,邊解釋,邊執行。實現解釋程序可以分為兩遍掃描完成;
第一遍讀入源程序,由掃描器和部分語法分析器完成,其主要工作是:
·對源程序進行詞法檢查和部分語法檢查;
·把源程序字符串轉化為內部形式的源程序(單詞符號串);
·建立各種符號表,為解釋執行階段做準備。
第二遍解釋執行,由解釋執行程序完成,其主要工作是:
·使用第一階段形成的符號表對內部源程序逐條解釋執行;
·在解釋執行過程中,進行全部語法檢查。 [2] 

解釋程序工作過程

解釋程序的工作過程如下:
①由總控程序完成初始化工作。
②依次從源程序中取出一條語句進行語法檢查,如有錯,輸出錯誤信息;如果通過了語法檢查,則根據語句翻譯成相應的指令並執行它。
③檢查源程序是否已經全部解釋執行完畢,如果未完成則繼續解釋並執行下一條語句,直到全部語句都處理完畢。 [3] 

解釋程序特點

解釋程序的工作方式非常適於人通過終端設備與計算機會話,如在終端上打一條命令或語句,解釋程序就立即將此語句解釋成一條或幾條指令並提交硬件立即執行且將執行結果反映到終端,從終端把命令打入後,就能立即得到計算結果。
這的確是很方便的,很適合於一些小型機的計算問題。但解釋程序執行速度很慢,例如源程序中出現循環,則解釋程序也重複地解釋並提交執行這一組語句,這就造成很大浪費。
對源程序邊解釋翻譯成機器代碼邊執行的高級語言程序。所以,解釋程序的功能是:解釋執行高級語言程序。由於它的方便性和交互性較好,早期一些高級語言採用這種方式,如BASICdBASE。但它的弱點是運行效率低,程序的運行依賴於開發環境,不能直接在操作系統下運行。
解釋程序的突出優點是可簡單地實現,且易於在解釋執行過程中靈活、方便地插入修改和調試措施,但最大缺點是執行效率很低。例如,需要多次重複執行的語句,採用編譯程序時只需要翻譯一次;但在解釋程序中卻需要重複翻譯,重複執行。

解釋程序適用範圍

根據這些特點,解釋程序適用於如下場合:
  1. 有些語言中的大多數語句,如字符串加工語言中的字符串查找語句和加工語句,其執行時間比翻譯時間長得多。對於這種語言,採用生成性方案,效果甚微,而採用解釋性方案則易於實現。
  2. 為了便於用户調試和修改程序,又能保證程序高效運行,很多程序設計語言配置兩個加工系統,一個用於調試,一個用於有效地運行。調試用的系統一般用解釋程序實現,以便及時監視運行情況、動態地輸出調試信息和靈活地修改錯誤。
  3. 交互式會話語言(如BASIC,APL),要為用户提供並行、交錯編寫、執行、調試和修改源程序的功能。採用解釋程序易於實現這些功能。
隨着超大規模集成電路的迅速發展,不少人提出用微程序設計方法實現高級程序設計語言解釋程序的想法,隨之出現瞭如 “FORTRAN機”之類的高級語言機器的概念。
參考資料
  • 1.    徐潔磐,李臣明,史九林編著.計算機軟件技術基礎:機械工業出版社,2010.08
  • 2.    袁和金,黃建才,黃志強編著.編譯技術實踐教程:清華大學出版社,2012.01
  • 3.    曹寶香,鄭永果主編.計算機導論:中國石油大學出版社,2009.03