安徽快三输死了多少人 www.cwilrw.com.cn 能夠完成從一種語言到另一種語言的保語義變換的軟件稱為翻譯器,這兩種語言分別稱為該翻譯器的源語言和目標語言。編譯器是一種翻譯器,它的特點是目標語言比源語言低級。

解釋器是不同于編譯器的另一類語言處理器。解釋器不像編譯器那樣通過翻譯來生成目標程序,而是直接執行源程序所指定的運算。解釋器也有和編譯器類似的地方,它也需要對源程序進行詞法分析、語法分析和語義分析等,這樣它才有可能知道源程序指定了一些什么運算。

解釋執行的效率比編譯器生成的機器代碼的執行效率低。對于編譯方式來說,對源程序的詞法分析、語法分析和語義分析只要進行一次。而對于解釋執行來說,每次執行到源程序的某個語句,都要對它進行一次詞法分析、語法分析和語義分析,確定了這個語句的含義后,才能執行它指定的運算。顯然,反復分析循環體降低了解釋執行的效率,所以解釋執行要尋找一種適合于解釋的中間語言,以縮短反復分析源程序需要的時間。

在 20 世紀 80 年代的 BASIC 語言階段,解釋器的功能是這樣介紹的:它將高級語言的源程序翻譯成一種中間語言程序,然后對中間語言程序進行解釋執行。在那個年代,解釋器的兩個功能(編譯和解釋)是合在一個程序中的,因此這個程序被統稱為解釋器。進入 Java 語言年代,解釋器的上述兩個功能分離在兩個程序中,前一個程序稱編譯器,它把 Java 語言的程序翻譯成一種中間語言程序,這種中間語言叫做字節碼;后一個程序稱解釋器,它對字節碼程序進行解釋執行。