成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ChatGPT | AI自制編程語言-實現(xiàn)JavaScript編譯器

發(fā)布于 2025-6-9 00:42
瀏覽
0收藏

隨著當(dāng)前各種編程 ??Agent???,??MCP??? 的層出不窮,大模型的正在加速進(jìn)化,于是又開始探索,不過這次的目標(biāo)是用 ??golang??? 實現(xiàn) ??JavaScript?? 引擎(目標(biāo)是完成 ES5.1 的全部功能)。

1. 回顧 JS 編譯器的實現(xiàn)過程


ChatGPT | AI自制編程語言-實現(xiàn)JavaScript編譯器-AI.x社區(qū)

如上是總結(jié)的 ??V8?? 大體的實現(xiàn)方式,編程語言的實現(xiàn)已經(jīng)經(jīng)歷了幾十年的發(fā)展,包括 V8,Lua等語言基本都采用類似實現(xiàn)步驟:

  • 詞法分析
  • 語法分析
  • 語義解析和優(yōu)化
  • 虛擬機(jī)
  • 通過 JIT 實現(xiàn)性能優(yōu)化
  • ...

2. 如何選擇工具鏈和知識庫


ChatGPT | AI自制編程語言-實現(xiàn)JavaScript編譯器-AI.x社區(qū)

2.1 AI 編碼助手

AI 編碼助手有很多,但是用的順手的卻不多,我個人經(jīng)常使用如下:

  • Trae 海外版本,使用 Builer 模式

優(yōu)點:各種模型免費(不過有時候需要排隊),對于 web 開發(fā)友好,調(diào)試器比較方便

缺點:界面與 VSCode 差異大,代碼提示不太友好,合并代碼經(jīng)常會出現(xiàn) bug,工具鏈不齊全

  • Windsurf,使用 Cascade:

優(yōu)點:有些模型會現(xiàn)實免費,基于 VSCode 實現(xiàn),使用習(xí)慣差異不大,界面清晰,代碼提示和 bugfix 可以讓 AI 自動執(zhí)行

缺點:提示有時候有點亂,如果思考時間過長,會經(jīng)常超時,不能添加自定義模型

  • Cursor:

優(yōu)點:社區(qū)完善,自由選擇模型,支持 MCP 市場,方便添加各種 rules

缺點:太貴,功能太多導(dǎo)致新手了解有一定的門檻,多文件之前上下文切換不太流暢

2.2 知識庫

要實現(xiàn) JavaScript 編譯器,首先開發(fā)者要了解編譯器實現(xiàn)方案(參考上圖),然后讓 AI 了解實現(xiàn)方案(雖然 AI 本身已經(jīng)有編譯器的實現(xiàn)原理,但是開發(fā)者需要按照場景提示 AI 按照哪種方案實現(xiàn)),最好要有簡單的樣例給到 AI 編碼助手,這里提供一些知識庫的資料:

  • https://github.com/linkxzhou/mylib/tree/master/c%2B%2B/simplejs 非常簡單的 JS 編譯器實現(xiàn)
  • https://github.com/wren-lang/wren wren 腳本語言源碼,大約 4000 行代碼
  • 書籍:《用 Go 語言自制解釋器》和《用 Go 語言自制編譯器》
  • 書籍:《編譯器設(shè)計(第二版)》和《自己動手構(gòu)建編程語言》
  • JS 測試用例集合:https://github.com/tc39/test262

如果您實現(xiàn)的不是 JS 編譯器,也可以作為知識庫,讓 AI 參考源碼按照你想要的方式實現(xiàn)(比如:用 Rust 實現(xiàn) JS ...)。

3. 解決思路

針對 ??simplejs?? 實現(xiàn)的項目總結(jié)如下:

  • 制定明確的項目規(guī)則,我們要實現(xiàn)??Javascript?? 引擎,從以往的經(jīng)驗上看,項目至少超過 3000 行,所以先要將功能拆解為規(guī)則(各種 Prompt),而不是直接輸入[實現(xiàn)Javascript引擎]
  • 在提示詞中明確指出技術(shù)棧、期望行為和約束條件,就像提供規(guī)范說明書,約束模型的邊界
  • 讓 AI 拆解功能,以小型、功能為單位劃分文件來生產(chǎn),測試和功能驗證
  • 測試驅(qū)動開發(fā):先可以根據(jù)你描述的功能,生成測試用例,驗證 AI 是否遵循了你的功能要求,然后生產(chǎn)功能邏輯后,盡可能多的再生產(chǎn)測試用例,最后保證測試用例100% 通過
  • 控制質(zhì)量:AI 輸出的任何功能,要了解邊界條件,并且提示 AI,輸出的代碼需要保持可讀性,甚至可以讓 AI 不斷重構(gòu)當(dāng)前的功能,以保證按照最少代碼實現(xiàn)
  • 控制上下文:如果上下文很多,我們不需要按照整個工程提問,而是按照某個文件,或者某個文件的某些行擴(kuò)展
  • 有時候需要人工:報錯比較明確,或者歧義的代碼,建議開發(fā)者直接上手改代碼修復(fù)
  • 必要時候切換模型:有些問題用 DeepSeek 可以快速回答,就不需要用 Claude-3.7,當(dāng)某些模型不能解決當(dāng)前問題時,建議手動切換不同模型嘗試(模型的邊界比較模糊,有些時候 Claude-3.7 不能解決,GPT-4o 卻可以解決)
  • 如果有文檔,可以單獨建立 docs 目錄,記錄你想要的功能或者 API,甚至需要鏈接的知識庫等
  • 調(diào)試代碼多加日志:打印比較多的日志,基于日志的上下文讓 AI 修復(fù) bug,能更快的分析問題并解決問題,而不是依賴 AI 對整個功能分析

4. 總結(jié)(完成第一個版本)

代碼已經(jīng)開源(simplejs): https://github.com/linkxzhou/mylib/tree/master/go/simplejs

通過 AI 實現(xiàn)代碼詳細(xì)如下:

  • 測試用例:??2316?? 行
  • 功能代碼:??3556?? 行
  • 代碼覆蓋率:??coverage: 74.9% of statements??

ChatGPT | AI自制編程語言-實現(xiàn)JavaScript編譯器-AI.x社區(qū)

后續(xù)需要完成的工作:

  • 測試完整的 JS 測試集:tc39https://github.com/tc39/test262。
  • 增加性能優(yōu)化:

解決尾遞歸問題

編譯預(yù)計算

嘗試通過 AI 實現(xiàn)少量的 `JIT` 功能

...

  • 執(zhí)行??Benchmark???,運行壓測,讓??AI 分析 ??profile,找到性能優(yōu)化點。

本文轉(zhuǎn)載自??周末程序猿??,作者:周末程序猿

已于2025-6-9 10:53:32修改
收藏
回復(fù)
舉報
回復(fù)
相關(guān)推薦
主站蜘蛛池模板: 国产最新网址 | 亚洲一二三在线 | 欧美激情视频网站 | 久久9热| 91免费视频观看 | 色综合久久久 | 99热精品在线 | 一区二区在线免费观看 | 亚洲一区二区中文字幕 | 国产日韩一区二区三区 | 日韩免费毛片视频 | 欧美色综合| av天天看 | 中文字幕亚洲精品 | 国产久视频 | 免费在线观看黄色av | 国产在线a视频 | 日韩欧美国产精品 | 亚洲三区在线 | 国产精品一区二区三区四区 | 久久久久国产一区二区三区四区 | 国产激情精品一区二区三区 | 色视频在线观看 | 国产精品久久久久久久岛一牛影视 | 国产日韩久久 | 狠狠天天 | 久久久久亚洲av毛片大全 | 黄网站色大毛片 | 欧美激情精品久久久久久 | m豆传媒在线链接观看 | 在线观看国产91 | 久久精品青青大伊人av | 欧美精品99 | 国产婷婷精品 | 亚州春色 | 91操操操 | 色综合久久88色综合天天 | 精品久久九九 | 亚洲国产精品99久久久久久久久 | 中国一级毛片免费 | 51ⅴ精品国产91久久久久久 |