jordanhubbard/nanolang
A tiny experimental language designed to be targeted by coding LLMs
解決的問題
NanoLang 是一種專為機器(例如 LLM)撰寫、供人類閱讀的程式語言與安全執行環境。它解決了程式語言中的模糊性問題,該問題可能導致 AI 代理產生程式碼時出錯。同時,它也提供一個安全、最小權限的環境,可在標準核心上主機服務,而無需自訂核心。
工作原理
NanoLang 使用無歧義的語法和在 Coq 中形式化證明的核心語意(涵蓋類型健全性、進展性與決定性)。它可轉譯為 C 以獲得原生效能,或透過 NanoISA 虛擬機執行,該虛擬機是一種基於堆疊的虛擬機,將危險的外部呼叫隔離在獨立程序中,以確保穩定性。
適用對象
適用於需要形式化驗證、安全語言用於機器產生程式碼的開發者,以及對形式化驗證、安全執行環境和 AI 驅動開發交集感興趣的人士。
主要特色
- 形式化證明的語意:核心語意在 Coq 中機械化證明,無公理或承認的子案例。
- NanoISA VM:經過驗證的位元碼虛擬機,將 FFI 呼叫隔離在共行程式中,防止崩潰影響主程式。
- 機器主導的優化:支援常數摺疊、死碼消除與以分析為導向的內聯。
- 安全執行環境:具備不可偽造的能力、POSIX 服務架構與用於安全服務主機的陷阱日誌。
- 影子測試:函數定義必須搭配強制測試區塊,確保程式碼從設計階段就經過測試。
- LLM 友好:包含機器可讀的正式規格(
spec.json)與訓練參考(MEMORY.md),協助 LLM 正確撰寫此語言。
相關
- Dispatch
- 專案
- 專案
- 專案
- 專案