我們經(jīng)撑看到某些文章中會(huì)講到XXX(ex. JS)語(yǔ)言本質(zhì)上是一個(gè)解釋性語(yǔ)言
。那么到底什么是解釋性語(yǔ)言呢呐馆?
這個(gè)要從機(jī)器語(yǔ)言
說(shuō)起肥缔。
因?yàn)橛?jì)算機(jī)只能理解機(jī)器語(yǔ)言,也就是說(shuō)任何其它語(yǔ)言都得翻譯成機(jī)器語(yǔ)言才能被計(jì)算機(jī)識(shí)別汹来。這里的翻譯
有兩種實(shí)現(xiàn)方式:編譯
和 解釋
辫继。
編譯
當(dāng)以編譯的方式實(shí)現(xiàn)的時(shí)候,該過(guò)程使用到的工具我們又稱之為編譯器
俗慈。在執(zhí)行代碼時(shí)姑宽,執(zhí)行的都是編譯過(guò)的代碼,效率較高闺阱。
解釋
當(dāng)以解釋的方式實(shí)現(xiàn)的時(shí)候炮车,同樣的,該過(guò)程使用到的工具我們又稱之為解釋器
∈菽拢看似少了編譯的步驟纪隙,但是在代碼執(zhí)行的時(shí)候會(huì)邊解釋邊執(zhí)行,很大程度上影響了執(zhí)行效率扛或。
比較
雖然前者從執(zhí)行速度上說(shuō)更勝一籌绵咱,但是如果程序?qū)λ俣纫蟛桓撸覍?duì)兼容性有一定的要求的話熙兔,則通常會(huì)選擇使用解釋性語(yǔ)言悲伶。
[更新]
現(xiàn)在用這個(gè)方式來(lái)分類語(yǔ)言已經(jīng)顯得有些力不從心,比如像JAVA住涉。
在編譯階段麸锉,代碼會(huì)被編譯成字節(jié)碼,在運(yùn)行的時(shí)候交給jvm解釋執(zhí)行舆声。