為什麼程式語言會存在解釋型或編譯型的限制?

時間 2021-05-11 16:54:53

1樓:

問題描述的語言準確性的槽點就不摳了。比較「傳統」的解釋不是為了「跨平台」麼?比如不同硬體支援的指令會有差異,直接拿本地碼去別的平台跑,遇到不支援的指令不就卡殼了?

2樓:

資源問題。普通的一門語言,哪有人給做不同的實現啊,作者自己做乙個就完了。這個實現是編譯的,它就是編譯的;這個實現是解釋的,它就是解釋的。

只有各種熱門語言,才有很多人願意為不同的應用場景,給出多個實現。這樣的語言裡,就沒有編譯和解釋的區別了。

3樓:Xi Yang

理論上不會有區別,但工程上會有。編譯型語言的優勢在於編譯在一次完成,執行時代價小。那麼它就幾乎必然做成效率優先的語言,比如盡可能地優化、盡量讓語言特性對應機器特性,等等。

解釋型語言通常會反過來。

最直接的,編譯時資源消耗的取捨。用C、C++編譯乙個大專案,可能消耗幾分鐘的時間,在比較壞的情況下可能消耗小時級別的時間。由於解釋型語言每次都要「編譯」,這個時間就肯定是完全不可接受的。

解釋型語言通常不得到直接的native code,而是得到驅動runtime的專用指令。這樣,它就不能直接和native code的庫進行互動,非得弄個中間層才行。

然後,如果你的語言特性貼近機器,那麼就會受機器的限制。像Perl,函式是執行時hash查詢的,引數和返回值是在乙個自己的「堆疊」物件上的,因而可以玩各種花樣。而C什麼的就會比較死。

為什麼Python不能做成編譯型語言?

識嘆貓 你先了解一下Python的起源 Python的創始人為吉多 範羅蘇姆。1989年的聖誕節期間,吉多 範羅蘇姆為了在阿姆斯特丹打發時間,決心開發乙個新的指令碼解釋程式,作為ABC語言的一種繼承。之所以選中Python作為程式的名字,是因為他是BBC電視劇集 蒙提 派森的飛行馬戲團的愛好者。AB...

什麼是解釋型語言?

與青醬 我覺得可以這樣理解吧 解釋性語言就是說一句執行一句,就象 吃雞 遊戲裡邊走邊打邊撿裝備,而編譯性語言就是一開始把裝備撿齊,把能帶的都帶上然後再出發找目標開打。 i孟夢u 語言是語言,實現是實現。語言只是一組規範。當我們說一門語言是編譯或解釋型語言的時候通常指它的主流執行方式而已。其實語言本身...

為什麼沒有或流行的拼音程式語言?

逸小海 不知道那些做遊戲的怎麼命名那些變數的 比如青虹劍是要叫QingHongJian 還是QingHongSword 還是GreenRedSword Lex Teng 寫乙個小專案,讓別人或者半年後的自己讀讀看就知道原因了。小學生 英語教育落後地區 用拼音程式設計玩玩是可以的,但是我更推薦直接用漢...