源語言、目標語言、翻譯器、編譯器、直譯器
能夠完成從一種語言到另一種語言的保語義變換的軟體稱為翻譯器,這兩種語言分別稱為該翻譯器的源語言和目標語言。編譯器是一種翻譯器,它的特點是目標語言比源語言低階。
直譯器是不同於編譯器的另一類語言處理器。直譯器不像編譯器那樣通過翻譯來生成目標程式,而是直接執行源程式所指定的運算。直譯器也有和編譯器類似的地方,它也需要對源程式進行詞法分析、語法分析和語義分析等,這樣它才有可能知道源程式指定了一些什麼運算。
解釋執行的效率比編譯器生成的機器程式碼的執行效率低。對於編譯方式來說,對源程式的詞法分析、語法分析和語義分析只要進行一次。而對於解釋執行來說,每次執行到源程式的某個語句,都要對它進行一次詞法分析、語法分析和語義分析,確定了這個語句的含義後,才能執行它指定的運算。顯然,反覆分析迴圈體降低了解釋執行的效率,所以解釋執行要尋找一種適合於解釋的中間語言,以縮短反覆分析源程式需要的時間。
在 20 世紀 80 年代的 BASIC 語言階段,直譯器的功能是這樣介紹的:它將高階語言的源程式翻譯成一種中間語言程式,然後對中間語言程式進行解釋執行。在那個年代,直譯器的兩個功能(編譯和解釋)是合在一個程式中的,因此這個程式被統稱為直譯器。進入 Java 語言年代,直譯器的上述兩個功能分離在兩個程式中,前一個程式稱編譯器,它把 Java 語言的程式翻譯成一種中間語言程式,這種中間語言叫做位元組碼;後一個程式稱直譯器,它對位元組碼程式進行解釋執行。
相關文章
- 實現JavaScript語言直譯器(三)JavaScript
- C語言編譯器手機版C語言編譯
- Go 語言實現解析器翻譯Go
- 中文程式語言中文程式語言實現:翻譯器
- C語言編譯器開發之旅(二):解析器C語言編譯
- Python直譯器簡介(4):動態語言Python
- 自定義語言的實現——直譯器模式(五)模式
- 自定義語言的實現——直譯器模式(四)模式
- 自定義語言的實現——直譯器模式(三)模式
- 自定義語言的實現——直譯器模式(二)模式
- Go語言內幕(2):深入 Go 編譯器Go編譯
- java開發C語言編譯器:為C語言提供API呼叫JavaC語言編譯API
- 淺談彙編器、編譯器和直譯器編譯
- 用 golang 寫一個語言(編譯器,虛擬機器)Golang編譯虛擬機
- 幽默:Go語言的編譯器 - programmerjoke9Go編譯
- 微軟提出新型通用神經機器翻譯方法,挑戰低資源語言翻譯問題微軟
- 小白說編譯原理-9-最簡單minus-c語言編譯器編譯原理C語言
- 什麼是程式語言,什麼是Python直譯器Python
- 《Nature》子刊:不僅是語言,機器翻譯還能把腦波「翻譯」成文字
- 超實用的語言翻譯器:Linguist for MacNGUIMac
- 使用google翻譯 api 翻譯中文成其他語言GoAPI
- [翻譯] Go 語言入門Go
- (翻譯)Dart語言概覽Dart
- Solidity語言學習筆記————2、使用編譯器Solid筆記編譯
- 線性同餘-常見語言編譯器引數編譯
- C語言編譯工具C語言編譯
- Go 語言編譯期斷言Go編譯
- C語言編譯器開發之旅(一):詞法分析掃描器C語言編譯詞法分析
- 翻譯的未來:翻譯機器和譯後編譯編譯
- 第一個C語言編譯器是怎樣編寫的?C語言編譯
- 第一個 C 語言編譯器是怎樣編寫的?編譯
- 編譯型語言與解釋型語言編譯
- Python語言常用的編譯器有哪些?工具推薦!Python編譯
- 57段讓編譯器崩潰的C語言程式碼編譯C語言
- Easy Translator語言翻譯類工具R語言
- C語言 - 條件編譯C語言編譯
- 英漢互譯線上翻譯器如何語音互譯中英文
- 手把手教你做一個 C 語言編譯器(7):語句編譯