我們經(jīng)常看到某些文章中會講到XXX(ex. JS)語言本質(zhì)上是一個解釋性語言
。那么到底什么是解釋性語言呢?
這個要從機(jī)器語言
說起。
因為計算機(jī)只能理解機(jī)器語言,也就是說任何其它語言都得翻譯成機(jī)器語言才能被計算機(jī)識別。這里的翻譯
有兩種實(shí)現(xiàn)方式:編譯
和 解釋
。
編譯
當(dāng)以編譯的方式實(shí)現(xiàn)的時候,該過程使用到的工具我們又稱之為編譯器
。在執(zhí)行代碼時,執(zhí)行的都是編譯過的代碼,效率較高。
解釋
當(dāng)以解釋的方式實(shí)現(xiàn)的時候,同樣的,該過程使用到的工具我們又稱之為解釋器
。看似少了編譯的步驟,但是在代碼執(zhí)行的時候會邊解釋邊執(zhí)行,很大程度上影響了執(zhí)行效率。
比較
雖然前者從執(zhí)行速度上說更勝一籌,但是如果程序?qū)λ俣纫蟛桓撸覍嫒菪杂幸欢ǖ囊蟮脑挘瑒t通常會選擇使用解釋性語言。
[更新]
現(xiàn)在用這個方式來分類語言已經(jīng)顯得有些力不從心,比如像JAVA。
在編譯階段,代碼會被編譯成字節(jié)碼,在運(yùn)行的時候交給jvm解釋執(zhí)行。