JS淬煉: Syntax Parser

一門語言的執(zhí)行,大致經(jīng)歷下面這些過程:詞法分析 -- 語法分析 -- 語義分析 -- 中間代碼生成 -- 優(yōu)化代碼 -- 代碼生成。

在Javascript中,Syntax Parser的作用是進行詞法分析語法分析。

A program that reads your code and determines what it does and if its grammar is valid.

詞法分析挨個字符地掃描代碼,把關(guān)鍵token識別出來。語法分析利用詞法分析的結(jié)果建立上下文關(guān)系語法樹 Abstract Syntax Tree (AST)。一般情況下,我們不會直接和語法樹打交道,但會在進行Uglify代碼壓縮、IDE語法高亮、Babel重編譯、關(guān)鍵字匹配和作用域判斷時間接涉及到。

var AST = "is Tree";

傳統(tǒng)的Javascript引擎直接根據(jù)語法樹的的結(jié)果進行解釋執(zhí)行,導(dǎo)致效率比C/C++較為低下。一些最新的Javascript引擎(如V8),會將部分Javascript代碼編譯成為目標(biāo)代碼以提高執(zhí)行效率。

介紹幾個Javascript的Syntax Parser

Reference

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容