如何實現 Babel 編譯器?

如何實現 Babel 編譯器?


既然問了這個問題那我默認題主沒有任何編譯器方面的知識,可以看看這個:https://github.com/thejameskyle/the-super-tiny-compiler

作者 James Kyle 是 Babel 的活躍維護者之一。


你得看形式語義方面的資料,然後把 ES6 的 AST 變換到 ES5

簡單的變換是樹遞歸做,複雜的(比如實現 yield)就得用 CEK 了

這也是為什麼 Babel 要做 Proxy 的實現得做的那麼繞……


推薦閱讀:

使用ES6 Module如何處理模塊按需載入 (lazyload)?
瀏覽器直接支持ES6了,還需要編譯么?

TAG:JavaScript | 編譯器 | ECMAScript2015 | Babel |