用 JavaScript 寫成的 JavaScript 直譯器,意義是什麼?

時間 2021-05-11 13:03:58

1樓:

前段時間寫了乙個,對於我的意義就是:

管中窺豹,可以稍微想象一下c++怎麼實現。

對js的細節認識又豐富了。

熟悉了js的各種ast節點,用Babel寫點外掛程式也不在話下了。

感覺js索然無味了。。。

2樓:平平無奇楊可樂

沒有用js寫過js直譯器,只為自己設計的語法糖寫過編譯器。

不過這些語法糖部分都遵循了es6規範,只有一半的糖是針對之前寫的乙個前端框架的常用方法而設計的,所以感覺也沒什麼特別的意義了,甚至有點多餘。

所以有點because i can的意味吧。

但是卻停不下來,明明已經i can了,沒有必要繼續下去了,但是又忍不住為vscode寫了對應的高亮外掛程式,現在在把前面提到的前端框架中的類庫統一用糖重寫一遍。

我可能是瘋了吧。

本來還打算實現自舉的,但是一想好像也沒什麼意義,所以選擇了繼續使用ts(其實也沒有用到什麼特別的ts特性,就是用了個型別檢查和形參預設值,感覺和寫js沒什麼區別吧)。

3樓:

插個題外的回答,

小程式不支援eval, 某種程度你用eval執行任意js這條路就斷了, 但是如果你用基於js的js直譯器, 你就再一次有了eval的能力.

4樓:luo

舉起自己的前提是站在地球上,c在實體機上執行舉起另乙個c程式,好理解。那虛擬機器呢,下面靠另乙個虛擬機器舉起來,另乙個虛擬機器再靠第三個虛擬機器舉起來,這樣自舉嗎?

5樓:

補充我知道(聽說過)的一點:

方便語言的迭代設計:如果有乙個新的語法提議,用指令碼語言可以馬上實現,然後進行試驗。

同樣也有Python版本的JS直譯器,好像也託生於Narcissus那個專案。

制定ECMAScript的那些人肯定更手熟一點JS。

6樓:張立理

嗯……GCC後期也是用C語言寫的,而GCC的作用之一就是編譯C語言指令碼,語言的自解析其實是很正常的現象,並不是很清楚作者是出於什麼角度考慮認為這樣做是不合理的……

把肖戰寫成j女是不是太過分了

你看過完整的魔道嗎?你割割演的可是耽改劇啊,下墜的劇情根本沒有魔道的番外勁爆呢,不過是個人設髮廊妹,有性別認知障礙的的乙個可憐人,看這個cp文只會讓愛他的更愛他,不愛他的根本不屑於去看這個文。 早告了也沒後面這麼多事了,我支援他本人去告,不要覺得這會給他帶來什麼不好的影響,相反路人喜聞樂見,反正都是...

用 JavaScript 可以做哪些有趣的事情?

逍為 做的事情可多了,比如瀏覽器外掛程式 莆田系醫院事件之後做的乙個外掛程式 https github.com hustcc PTHospital.chrome 手機就不貼圖了,大家開啟自行安裝測試 卡晨 var a var i 0 while 1 親測有效!如果有興趣的話可以加上webworker...

前端頁面,用 JavaScript 在除錯 Bug 時有哪些奇技淫巧?

BLS475 在裡寫定時重新整理,改完JS都不用點重新整理了 專寫了個Utils.js,寫了幾個常用測試方法有按樹結構 加空格 輸出字串,並可以設定屬性過濾有按照層級,按深到淺,繪製背景色,方便看介面用膩了Chrome,可以試試FireFox Developer Edition,是個好東西 Para...