源語言、目標語言、翻譯器、編譯器、直譯器
能夠完成從一種語言到另一種語言的保語義變換的軟體稱為翻譯器,這兩種語言分別稱為該翻譯器的源語言和目標語言。編譯器是一種翻譯器,它的特點是目標語言比源語言低階。
直譯器是不同於編譯器的另一類語言處理器。直譯器不像編譯器那樣通過翻譯來生成目標程式,而是直接執行源程式所指定的運算。直譯器也有和編譯器類似的地方,它也需要對源程式進行詞法分析、語法分析和語義分析等,這樣它才有可能知道源程式指定了一些什麼運算。
解釋執行的效率比編譯器生成的機器程式碼的執行效率低。對於編譯方式來說,對源程式的詞法分析、語法分析和語義分析只要進行一次。而對於解釋執行來說,每次執行到源程式的某個語句,都要對它進行一次詞法分析、語法分析和語義分析,確定了這個語句的含義後,才能執行它指定的運算。顯然,反覆分析迴圈體降低了解釋執行的效率,所以解釋執行要尋找一種適合於解釋的中間語言,以縮短反覆分析源程式需要的時間。
在 20 世紀 80 年代的 BASIC 語言階段,直譯器的功能是這樣介紹的:它將高階語言的源程式翻譯成一種中間語言程式,然後對中間語言程式進行解釋執行。在那個年代,直譯器的兩個功能(編譯和解釋)是合在一個程式中的,因此這個程式被統稱為直譯器。進入 Java 語言年代,直譯器的上述兩個功能分離在兩個程式中,前一個程式稱編譯器,它把 Java 語言的程式翻譯成一種中間語言程式,這種中間語言叫做位元組碼;後一個程式稱直譯器,它對位元組碼程式進行解釋執行。
相關文章
- 實現JavaScript語言直譯器(三)JavaScript
- C語言編譯器手機版C語言編譯
- Go 語言實現解析器翻譯Go
- 超實用的語言翻譯器:Linguist for MacNGUIMac
- C語言編譯器開發之旅(二):解析器C語言編譯
- 幽默:Go語言的編譯器 - programmerjoke9Go編譯
- 用 golang 寫一個語言(編譯器,虛擬機器)Golang編譯虛擬機
- 淺談彙編器、編譯器和直譯器編譯
- 什麼是程式語言,什麼是Python直譯器Python
- Solidity語言學習筆記————2、使用編譯器Solid筆記編譯
- 《Nature》子刊:不僅是語言,機器翻譯還能把腦波「翻譯」成文字
- 使用google翻譯 api 翻譯中文成其他語言GoAPI
- [翻譯] Go 語言入門Go
- 微軟提出新型通用神經機器翻譯方法,挑戰低資源語言翻譯問題微軟
- 線性同餘-常見語言編譯器引數編譯
- Python語言常用的編譯器有哪些?工具推薦!Python編譯
- C語言編譯器開發之旅(一):詞法分析掃描器C語言編譯詞法分析
- 編譯型語言與解釋型語言編譯
- Easy Translator語言翻譯類工具R語言
- Linguist for Mac(語言翻譯軟體)NGUIMac
- C語言 - 條件編譯C語言編譯
- 解釋型語言、編譯型語言 區別編譯
- Java設計模式-17、直譯器模式-自定義語言的實現Java設計模式
- 多對多多語言神經機器翻譯的對比學習
- 編譯warp,d語言寫的c/c++前處理器.編譯C++
- c語言多檔案編譯C語言編譯
- Go語言交叉編譯工具goxGo編譯
- go語言編譯過程概述Go編譯
- Python 既是解釋型語言,也是編譯型語言Python編譯
- 線上文字翻譯能力新增14個直譯模型,打造以中文為軸心語言的翻譯系統模型
- 硬核觀察 #795 首個可以翻譯無文字語言的口語翻譯 AIAI
- 化繁為簡的翻譯機——直譯器模式模式
- 國產系統級程式語言與編譯器,輕鬆與 C 語言進行互動編譯
- 英漢互譯線上翻譯器如何語音互譯中英文
- 【譯】Go語言宣告語法Go
- ABBYY Lingvo European for Mac(語言翻譯軟體)Mac
- 『翻譯』JavaScript 函數語言程式設計JavaScript函數程式設計
- Translatium Mac(多語言線上翻譯工具)Mac