最小語意載荷競賽:從 Code Golf 到 EML Intent Golf 的新型程式設計賽制
版本:v0.1 草案
作者:Neo.K / EVEMISSLAB 協作草案
文件類型:技術白皮書 / 賽制設計文件 / EML 應用延伸
建議狀態:可作為未來公開賽制、GitHub 專案、Logic Matrix 文章或 EML 實驗任務規格之基礎版本
摘要
本文提出一種新的程式設計競賽框架:最小語意載荷競賽(Minimal Semantic Payload Challenge),又可稱為 Intent Golf、Semantic Golf 或 EML Minimal Intent Challenge。它繼承傳統 Code Golf「以最短程式碼完成任務」的精神,但不再將勝負單純建立在字元數、行數或語言奇技淫巧之上,而是改以「用最少有效資訊載荷完成可驗證意圖」作為核心目標。
在生成式 AI、Agent、自動化工具鏈與高階語意語言逐漸成熟的時代,程式碼的意義正在變化。過去的程式碼主要是人類對機器的逐步指令;現在的程式碼則可能是人類、AI、編譯器、轉譯器、執行環境、外部 API、資料庫、感測器與物理裝置共同完成意圖的界面。因此,新的競賽不應只問:「誰能用最少字元印出答案?」而應進一步追問:「誰能用最小語意載荷,讓整個計算系統穩定、可驗證、可重現地完成目標?」
本文主張,未來程式競賽可以從「演算法競賽」、「短碼競賽」、「混淆程式競賽」擴展到「意圖效率競賽」。其評分核心不是單一長度,而是多因素綜合:程式碼長度、行數、位元數、依賴成本、語言啟動成本、外部服務成本、模型呼叫成本、可重現性、任務完成度、世界耦合深度與主體邏輯是否被不當外包。
EML(EveMiss Language / EVEMISSLAB Minimal Language)在此框架中具有特殊位置。它不只是參賽語言,也可以是題目描述語言、語意驗證語言、Agent handoff 協議、trace 規格與裁判中介層。若傳統 Code Golf 比的是「語法壓縮」,那麼 EML 版本的 Intent Golf 比的是「意圖壓縮」:在最小符號結構中保留足夠語意,使 AI、工具鏈與機器能共同完成任務。
1. 問題意識:為什麼需要新的程式競賽?
傳統程式競賽大致可以分為幾類。第一類是演算法競賽,比的是資料結構、時間複雜度、空間複雜度、數學建模與解題速度。第二類是 Code Golf,比的是誰能用更少字元完成同一題目。第三類是混淆程式或創意程式競賽,比的是語言邊界、可讀性反轉、編譯器漏洞利用、語法技巧與設計美學。第四類則是黑客松、產品原型競賽,比的是在有限時間內做出可展示系統。
這些形式各有價值,但它們並不足以表達下一代程式設計的核心變化。原因在於,程式碼正在從「完整指令集」轉向「意圖界面」。
在 AI 協作開發以前,人類必須把大量步驟明確寫進程式碼。程式碼越完整,越能精準控制機器。可是當編譯器、框架、函式庫、AI Agent、LLM、RPA、工作流引擎、自然語言介面、語意轉譯器與自動測試系統成熟後,程式碼的角色開始改變。一段短短的規格、一個 prompt、一個 DSL、一個 EML 表達式,可能已經足以觸發龐大的工程閉環。
這不是單純的便利,而是資訊結構的變化。過去的程式碼像是手工鋪設鐵軌;未來的程式碼更像是指定相位、約束、意圖與邊界條件,讓系統自行展開路徑。這也帶來一個新的問題:如果程式碼越來越短,工具鏈越來越強,那麼我們如何公平比較「短」?
如果一個參賽者寫:
solve()
而 solve() 來自一個預先寫好的龐大套件,這不應該被視為真正的短碼。若另一個參賽者寫:
ai("do the task")
並把所有思考、資料處理與行動外包給大型模型,也不能直接算作勝利。因為主體邏輯並未消失,只是被轉移到依賴、模型、外部服務或隱藏資料中。
因此,新的競賽必須回答一個更根本的問題:
一個意圖要被機器、AI、工具鏈與世界共同完成,最少需要多少有效資訊?
這就是最小語意載荷競賽的起點。
2. 從 Code Golf 到 Intent Golf
Code Golf 的核心很清楚:在特定語言或開放語言條件下,用盡可能短的程式碼完成指定輸出。它的美感在於壓縮、技巧、語言邊界與解題創意。它經常產生令人驚訝的短解,也能揭示不同語言的表達密度。
但 Code Golf 通常有幾個限制。
第一,它多半以純輸入輸出題為主。題目通常可被測試案例驗證,例如輸入數字、輸出字串、轉換序列、處理矩陣、生成圖形。這種形式適合比較程式碼長度,但不一定能表達真實世界任務。
第二,它容易鼓勵不可讀、不可維護、不可擴展的寫法。這不是缺點,因為 Code Golf 本來就是遊戲。但如果目標是探索未來程式設計效率,單純不可讀的短碼不夠。
第三,它對依賴與執行環境的處理通常不是核心問題。若只比較原始碼字元,參賽者可能利用語言內建功能、套件、shell 環境、編譯器特性或預設資料。這在傳統賽題中可以接受,但在意圖效率競賽中必須被明確量化。
第四,它較少處理 AI Agent 與外部世界耦合。可是未來大量程式任務並不只是產生 stdout,而是讀取檔案、操作瀏覽器、調用 API、控制硬體、生成 UI、修改專案、執行測試、與人類互動。
因此,Intent Golf 不是否定 Code Golf,而是將它提升到另一個層級:
Code Golf:最短程式碼完成題目。
Intent Golf:最小有效語意載荷完成意圖。
前者偏向語法壓縮;後者偏向語意壓縮。前者問「字元能多短」;後者問「完成意圖所需的最小充分形式是什麼」。
這裡的「最小充分形式」非常重要。過度簡化會失去可執行性;過度詳細又浪費語意載荷。真正的勝利不是盲目縮短,而是在最短表達中保留足以讓系統完成任務的語意、約束、驗證與邊界。
3. 核心定義
為了讓競賽可操作,本文先定義幾個基本概念。
3.1 意圖
意圖指參賽作品必須完成的目標,不等同於單一輸出。意圖可以是演算法輸出、資料轉換、介面行為、Agent 任務、硬體控制、流程自動化或物理世界反應。
例如:
將一段自然語言任務轉成可執行流程。
讀取感測器數值,超過閾值時啟動警示。
將 CSV 資料清洗後輸出統計圖。
用最短規格讓 Agent 修復一個測試失敗的函式。
用 EML 描述一個可轉譯為 Python 的資料處理流程。
這些都不是單純印字串,而是具有目的、條件、過程與驗證標準的意圖。
3.2 語意載荷
語意載荷指參賽者輸入到系統中的有效資訊總量。它可以包含原始碼、規格、prompt、EML 表達式、設定檔、依賴宣告、測試描述、資料 schema、模型上下文與必要配置。
若某些資訊雖未寫在主檔案中,但實際上對完成任務不可或缺,也應計入語意載荷。例如隱藏 prompt、預訓練特殊模型、題目專用函式庫、預處理資料表、環境變數中的邏輯,都不能免費。
3.3 有效成本
有效成本不是單純原始碼長度,而是完成任務所消耗的總資訊與執行代價。簡化公式如下:
EffectiveCost = CodeBytes
+ LineCost
+ DependencyCost
+ RuntimeCost
+ ExternalServiceCost
+ PromptCost
+ HiddenStateCost
+ ReproducibilityPenalty
實際比賽可以依賽道簡化,不必每次都全部計算。但原則上,任何讓任務完成的關鍵資訊都不應被免費隱藏。
3.4 主體邏輯
主體邏輯指完成題目核心意圖所需的主要算法、判斷、控制、推理、轉換或行動規則。
若主體邏輯被藏進依賴、外部 API、模型、資料表、prompt 或預處理環境,則該部分應被計入成本。這是本賽制最重要的公平原則。
3.5 世界耦合
世界耦合指程式不只是處理抽象輸入輸出,而是與外部環境互動。這裡的世界可以是檔案系統、網路、UI、資料庫、瀏覽器、Agent 工具、感測器、機器人、IoT 裝置或其他物理設備。
世界耦合越深,任務越接近真實工程。但耦合越深,也越需要可觀測性、測試、trace、錯誤處理與安全邊界。
4. 賽道設計
最小語意載荷競賽可以設計為多賽道制,而不是單一規則吃遍所有題目。這樣可以同時保留短碼遊戲性、工程嚴肅性與 EML 的語意優勢。
4.1 10-Line Class
參賽作品最多十行。這是最適合第一屆比賽的主賽道,因為十行足以容納基本邏輯、少量錯誤處理與清楚結構,又仍然具有壓縮挑戰。
適合任務:資料轉換、小型 CLI、自動化腳本、簡單 UI、Agent handoff 規格、EML-to-Python 轉譯示範。
4.2 5-Line Class
參賽作品最多五行。這個賽道要求更強的語意密度,適合測試語言表達能力與參賽者對問題本質的壓縮能力。
適合任務:資料摘要、簡單控制流程、規格轉換、微型工具、單一意圖自動化。
4.3 3-Line Class
參賽作品最多三行。此賽道開始進入高度抽象領域,適合 DSL、EML、shell pipeline、函數式語言與特化語法競爭。
但三行賽道必須嚴格限制依賴,否則會變成調包比賽。
4.4 1-Line Class
參賽作品最多一行。此賽道最接近傳統 Code Golf,但題目可以更偏向意圖完成。例如一行完成資料解析、一行生成互動頁面、一行讓 Agent 做出可驗證修改。
一行賽道必須搭配 bytes 或 token 限制。否則一行可以無限長,行數本身會失去意義。
4.5 Bit-Class
此賽道不看行數,而看 UTF-8 bytes、tokens、壓縮後位元數或語法樹節點數。它較適合嚴格研究語言表達密度。
Bit-Class 可以回答一個更精確的問題:不同語言或符號系統,在表達同一意圖時,最小資訊成本是多少?
4.6 EML-Class
此賽道限定或鼓勵使用 EML。評分不只看表面字元,而看 EML 表達式是否能被 parse、transpile、interpret、trace 與 verify。
EML-Class 的目標不是證明 EML 一定比所有語言短,而是展示 EML 在「語意結構保留」與「AI/Agent 可接手性」上的優勢。
4.7 Open-Language Class
此賽道允許任意語言。它適合吸引更廣泛參與者,也能比較 Python、JavaScript、C、APL、J、Haskell、Rust、shell、Lua、EML 等不同語言的語意密度。
但 Open-Language Class 必須將語言啟動成本、標準庫能力與依賴成本納入規則,否則不易公平。
5. 依賴項規則:不能把主體藏進依賴
依賴項規則是本賽制的核心。沒有這條規則,最小語意載荷競賽會迅速退化成「誰能把最多邏輯藏到別處」。
5.1 主體邏輯不得外包原則
正式規則如下:
若某依賴項、外部服務、模型、資料檔、環境設定或隱藏 prompt 已經完成題目主要意圖,則該部分視為參賽作品的一部分,必須計入成本;若未揭露,則判定違規。
例如,若題目要求寫一個路徑搜尋演算法,使用標準資料結構可以接受,但直接引用 shortest_path_solver_for_this_challenge() 不可接受。若題目要求設計一個資料清洗流程,使用 CSV parser 可以接受,但使用預先寫好的 clean_all_data_exactly_as_required() 不可接受。
5.2 依賴分級
可以設計 D0 到 D5 的依賴等級:
| 等級 | 名稱 | 說明 | 建議處理 |
|---|---|---|---|
| D0 | 無依賴 | 僅語言核心 | 最低成本 |
| D1 | 標準庫 | 語言官方標準庫 | 低成本 |
| D2 | 基礎通用庫 | 數值、HTTP、日期、CSV、圖像基礎處理 | 中低成本 |
| D3 | 大型框架 | Web framework、ML framework、Agent framework | 中高成本 |
| D4 | 外部服務 | API、LLM、雲端函式、SaaS | 高成本,需單獨賽道 |
| D5 | 題目專用依賴 | 為本題預製或等價於解答的依賴 | 禁止或全額計入 |
此分級不是為了禁止所有依賴,而是防止依賴成為逃避成本計算的暗門。
5.3 依賴不是罪,隱藏才是罪
現代工程不可能完全不用依賴。完全禁止依賴反而會讓比賽變得不現實。真正需要禁止的是「不揭露依賴」與「把主體邏輯偽裝成輔助工具」。
例如,使用 numpy 做矩陣乘法可以合理,因為它是通用基礎庫。使用 opencv 讀圖也可以合理,因為圖像 IO 不是題目主體。但如果題目是「偵測圖片中的特定物件」,而參賽者直接調用一個已訓練好的物件偵測模型,則必須把模型大小、推理成本、訓練資料來源與外部依賴列入成本。否則短碼只是表象。
5.4 AI 依賴的特殊處理
AI 模型是最容易造成規則混亂的依賴。因為一個 prompt 可能只有十個字,但背後是一個龐大模型。若比賽允許 LLM,必須明確區分兩種賽道。
第一種是 No-LLM Execution Class。參賽作品不能在執行時呼叫 LLM。這適合比較傳統程式與 EML 轉譯能力。
第二種是 LLM-Assisted Intent Class。允許呼叫 LLM,但 prompt tokens、system prompt、tool schema、上下文長度、模型名稱、呼叫次數、輸出修正次數、成本與延遲都要計入評分。
如此一來,LLM 不會被禁止,但也不會免費。
6. 評分模型
最小語意載荷競賽的評分可以從簡單版本開始,再逐步擴展。
6.1 基本公式
Score = (IntentScore × Reliability × CouplingDepth × Generality × Elegance)
/ (EffectiveCost + ExternalizationPenalty)
此公式不是固定數學真理,而是賽制設計的方向。不同賽道可以調整權重。
6.2 IntentScore:意圖完成度
IntentScore 衡量作品是否完成題目真正意圖。它不只看測資通過,也看邊界條件、錯誤處理、語意一致性與任務完整性。
例如,題目要求「讀取資料、清洗、輸出摘要」。若作品只處理理想輸入,遇到缺值就崩潰,則 IntentScore 應降低。若題目要求 Agent 修復測試,作品只讓測試假通過而未修正邏輯,也應扣分。
6.3 Reliability:穩定性
Reliability 衡量作品多次執行是否一致、是否可重現、是否能處理環境變化。對純計算題,Reliability 可以由測試通過率表示。對物理耦合題,則可能需要多次實驗、模擬環境與安全停止機制。
6.4 CouplingDepth:耦合深度
CouplingDepth 衡量任務與外部世界互動的深度。可以設計如下:
| 等級 | 說明 |
|---|---|
| C0 | 純計算,stdin/stdout |
| C1 | 檔案、資料表、資料庫 |
| C2 | 網路、API、CLI、系統工具 |
| C3 | UI、瀏覽器、自動化操作 |
| C4 | 感測器、硬體、IoT、機器人 |
| C5 | 多 Agent、多裝置、動態物理環境 |
CouplingDepth 不是越高越好,而是越高代表任務更接近真實世界。高耦合任務應搭配更嚴格安全與可觀測要求。
6.5 Generality:泛化能力
Generality 衡量作品是否只針對單一測資硬編碼,或能處理同類問題。短碼競賽容易出現硬編碼答案,因此泛化能力需要被計入。
若題目是排序,直接輸出測資答案不可接受。若題目是資料清洗,只針對範例欄位寫死也應扣分。若題目是 EML 轉譯,僅支援單一範例而非語法子集,也不能拿高分。
6.6 Elegance:結構美感
Elegance 可以作為附加分。它不應壓過正確性,但可以鼓勵真正漂亮的最小形式。這裡的美感不是傳統可讀性,也不是故意混淆,而是「形式與意圖高度貼合」。
最好的作品應該讓人感覺:少一個符號不夠,多一個符號浪費。
6.7 ExternalizationPenalty:外包懲罰
ExternalizationPenalty 用來懲罰把主體邏輯藏到外部的行為。常見情況包括:
題目專用依賴未揭露。
把主要邏輯藏在環境變數。
使用外部 API 完成主體任務但不計成本。
使用 LLM 完成推理但只計 prompt 字數。
把答案藏在資料檔。
利用預處理產生特殊執行環境。
此懲罰應該足夠重,否則公平性會崩潰。
7. 題目類型
為了避免賽制退化成傳統短碼題,題目應分為多種類型。
7.1 純計算題
這類題目最接近傳統競程與 Code Golf。它適合建立基本比較基準。
範例:
用最短程式碼完成矩陣轉置。
用最短程式碼找出圖中的最短路徑。
用最短程式碼完成簡單壓縮與解壓。
用最短程式碼生成特定序列。
純計算題的優點是容易測試,缺點是缺乏世界耦合。
7.2 語意轉譯題
這是 EML 的主場。題目要求參賽者把一種語意形式轉換成另一種可執行形式。
範例:
將自然語言任務轉成 EML 表達式。
將 EML 表達式轉成 Python 函式。
將半形式化 Markdown 規格轉成測試案例。
將簡單流程圖描述轉成可執行 DAG。
此類題目測試的不只是短碼,而是語意保真度。
7.3 UI 任務題
這類題目要求用最少程式碼建立可互動界面。
範例:
建立一個輸入框、按鈕與結果區域。
輸入 JSON 後即時格式化並顯示錯誤。
拖入 CSV 後顯示摘要統計。
用最短程式碼建立一個 EML snippet runner。
UI 題可以讓一般人更容易理解比賽成果,避免比賽只停留在命令列。
7.4 Agent Handoff 題
這類題目要求用最短規格讓 Agent 接手完成任務。它不是單純 prompt 比賽,因為必須計算上下文成本、工具成本與驗證結果。
範例:
用十行以內規格讓 Agent 修復一個 failing test。
用五行以內規格讓 Agent 整理專案 README。
用三行以內規格讓 Agent 從資料夾中抽取重複檔案。
用一行 EML 任務描述生成可驗證 CLI。
此類題目非常適合未來 AI-native 開發,但裁判必須嚴格記錄 Agent 行動 trace。
7.5 物理世界耦合題
這是最能區分新賽制與傳統 Code Golf 的題型。程式不只是輸出答案,而是控制或感知外部世界。
範例:
讀取溫度感測器,超過閾值時亮燈。
攝影機偵測移動後觸發錄影。
用最少程式碼控制馬達完成指定角度轉動。
用五行內完成 IoT 狀態監測與告警。
這類題目需要安全規則、模擬環境、硬體標準與失敗停止機制。第一屆可以先用模擬器,之後再進入實體裝置。
8. EML 在賽制中的三重角色
EML 不只是可以參賽的語言。它更適合作為整個賽制的中介層與裁判語言。
8.1 EML 作為參賽語言
在 EML-Class 中,參賽者可以直接用 EML 表達意圖。例如:
@in csv -> clean?missing -> group:date -> sum:amount -> out json
這樣的表達不一定等同於最終語法,但展示了一個方向:用少量符號描述資料流、處理意圖與輸出形式。
EML 的優勢不只是短,而是它保留了語意層。傳統短碼可能短到不可理解;EML 則嘗試在短與可解析之間取得平衡。
8.2 EML 作為中介語言
即使參賽者使用 Python、JavaScript、Rust 或其他語言,裁判也可以要求提交一份 EML 意圖表示,用來描述作品實際完成的語意。
這樣可以比較:
自然語言題目 → 參賽程式 → EML 語意表示 → 測試與 trace
若參賽程式很短但 EML 語意表示顯示它其實依賴巨大外部邏輯,裁判就能更容易發現問題。
8.3 EML 作為裁判語言
題目本身也可以用 EML 描述。例如:
task: read(sensor.temp) -> if >30 then led.on else led.off
verify: temp=31 => led=on; temp=25 => led=off
limit: lines<=5; dep<=D1; repeat>=20
這讓題目、限制、驗證與 trace 都可以形式化。未來甚至可以建立一個 EML judge runner,自動檢查提交作品。
9. 可觀測性與 Trace
最小語意載荷競賽不能只看最後結果,還必須看作品如何完成任務。尤其在 Agent 與物理世界耦合題中,可觀測性是公平與安全的基礎。
9.1 Trace 的必要性
若一個 Agent 任務只提交最終結果,裁判無法知道它是否作弊、是否呼叫外部模型、是否修改測試、是否刪除錯誤、是否依賴隱藏上下文。因此,所有高階賽道應要求 trace。
Trace 至少應包含:
輸入內容
執行步驟
工具呼叫
依賴載入
外部 API 請求
模型呼叫資訊
檔案修改紀錄
測試結果
錯誤與重試
最終輸出
9.2 Trace 不等於囉嗦
可觀測性不是要求參賽者寫更多無用文件,而是要求系統能自動記錄必要資訊。這剛好與 EML 的 PHOSPHOR trace、interpreter、CTS、diagnostics 等方向相容。
最理想的狀態是:參賽者只寫最小意圖,工具鏈自動產生 trace,裁判從 trace 驗證行為。
9.3 可重現性
所有提交作品都應能在標準環境中重跑。若任務涉及外部 API 或 LLM,必須記錄版本、模型、溫度、prompt、工具、輸入與時間。若涉及硬體,至少需要模擬器或錄影證據。
可重現性不是絕對要求每次物理結果完全相同,而是要求結果落在合理容許範圍內,且失敗可被解釋。
10. 反作弊與邊界案例
新的賽制越強調短與高階工具,越容易被鑽漏洞。因此必須提前設計反作弊規則。
10.1 硬編碼答案
若題目提供固定測資,參賽者可能直接輸出答案。解法是使用隱藏測資、隨機測資、property-based tests 與泛化評估。
10.2 隱藏資料
參賽者可能把答案藏在檔案、圖片、環境變數、編譯器旗標或依賴中。解法是標準乾淨容器、檔案白名單、依賴鎖定與提交審查。
10.3 題目專用套件
參賽者可能發布一個看似通用但其實專為題目設計的套件。解法是依賴審查、發布時間限制、套件功能範圍檢查與 D5 分級。
10.4 LLM 外包
參賽者可能用極短 prompt 呼叫大型模型完成全部任務。解法不是全面禁止,而是分賽道,並將 prompt、模型、上下文、工具與呼叫成本全部計入。
10.5 修改測試
Agent 題中,參賽者可能讓 Agent 修改測試而非修復程式。解法是測試目錄唯讀、hash 驗證、hidden tests 與 trace 檢查。
10.6 模糊意圖偷換
參賽者可能完成一個表面相似但不符合原意的任務。解法是將題目拆成意圖規格、必備條件、禁止條件、測試案例與人工評審說明。
11. 第一屆賽制建議
第一屆不應過度複雜。最好的策略是先建立清楚、可執行、有展示效果的 MVP 賽制。
建議名稱:
EML Minimal Intent Challenge 2026
或:
Intent Golf 2026: Minimal Code, Maximum Intent
11.1 三個主賽道
第一屆可以先設三個賽道。
A. 1-Line Intent
用一行完成指定意圖。限制 bytes,禁止 D3 以上依賴。適合吸引傳統短碼玩家。
B. 5-Line World Coupling
用五行內完成「輸入 → 判斷 → 行動輸出」閉環。第一屆可使用模擬 sensor / actuator,避免硬體門檻。
C. 10-Line Agent Handoff
用十行內寫出可被 Agent 接手的任務規格,並要求 Agent 完成一個小型工程任務。評分看規格短度、任務成功率、trace 清楚度與外部成本。
11.2 基本提交格式
每個提交作品應包含:
solution.ext 主程式或 EML 檔案
manifest.yml 語言、版本、依賴、執行方式
intent.md 對題目意圖的理解,不計入主分但供審查
trace.json 執行紀錄,高階賽道必備
tests/ 若題目要求自行附測試
對於最短碼賽道,可以只計 solution.ext,但 manifest.yml 必須存在以便重現。
11.3 基本限制
不得使用題目專用依賴。
不得使用未揭露外部服務。
不得將主體邏輯藏入 prompt、模型、資料檔或環境變數。
所有依賴必須列出。
所有提交必須可重現。
所有高階任務必須有 trace。
11.4 評分比例示例
意圖完成度:40%
有效成本:25%
可靠性:15%
依賴透明度:10%
結構美感:10%
若是物理耦合題,可以提高可靠性與安全性權重。若是 1-Line 題,可以提高有效成本權重。
12. 範例題目草案
12.1 題目一:最短資料清洗
目標:讀取 CSV,移除空列,將欄位名稱轉為小寫,輸出 JSON。
限制:最多 5 行,依賴不高於 D1。
驗證:隱藏 CSV 測資,檢查 JSON schema。
此題測試資料處理最小形式。
12.2 題目二:EML 到 Python
目標:將簡單 EML pipeline 轉成 Python 函式。
限制:最多 10 行,允許使用官方 EML parser。
驗證:輸入多組 EML 子集,檢查輸出 Python 是否可執行。
此題測試語意轉譯能力。
12.3 題目三:Sensor Mock Control
目標:讀取模擬溫度資料,若大於 30 則輸出 ON,否則輸出 OFF。
限制:最多 3 行,依賴不高於 D1。
驗證:隨機溫度序列,重複執行 100 次。
此題是物理耦合入門版。
12.4 題目四:Agent 修復任務
目標:用十行內規格讓 Agent 修復一個 failing test。
限制:prompt 與規格 tokens 計入成本;工具呼叫需 trace。
禁止:修改測試、跳過測試、刪除功能。
驗證:原始測試與隱藏測試皆通過。
此題測試 AI-native 工程協作。
12.5 題目五:最小互動頁面
目標:建立一個輸入框,輸入數字後顯示平方。
限制:最多 5 行,允許 HTML/JS/CSS 單檔。
驗證:瀏覽器自動測試輸入與輸出。
此題讓觀眾容易理解短碼與功能之間的關係。
13. 工程實作架構
若要將此比賽做成平台,可以採用以下架構。
13.1 Judge Runner
Judge Runner 負責建立乾淨環境、安裝允許依賴、執行提交作品、收集輸出與 trace。每個賽道可以有不同 runner。
13.2 Dependency Auditor
Dependency Auditor 負責分析依賴。它不只檢查 package list,也要檢查依賴是否可疑、是否題目專用、是否過大、是否包含主體邏輯。
13.3 Intent Verifier
Intent Verifier 負責檢查作品是否完成題目意圖。它可以結合測試、property-based checks、EML semantic comparison、人工審查與 trace 分析。
13.4 Trace Collector
Trace Collector 負責記錄工具呼叫、檔案讀寫、網路請求、模型呼叫、執行時間與錯誤。
13.5 EML Layer
EML Layer 可負責題目描述、提交作品語意表示、轉譯、執行、診斷與可視化。它可以讓比賽平台不只是跑程式,而是理解程式意圖。
13.6 Public Gallery
Public Gallery 展示優秀作品。每個作品不只顯示程式碼,也顯示:
行數
bytes
依賴等級
任務完成度
trace 摘要
可讀性註解
EML 語意圖
執行動畫或 UI 展示
這能讓一般觀眾看懂「為什麼這段短碼厲害」。
14. 哲學意義:最小充分形式
這個比賽真正有價值的地方,不只是好玩,而是它能逼迫人重新思考程式碼的本質。
在傳統觀念中,程式碼是命令。寫程式就是把人類想法拆成機器可理解的步驟。但在 AI-native 與語意工具鏈時代,程式碼越來越像是意圖壓縮物。它不一定要列出每一步,而是要提供足夠的約束、方向、型別、狀態與驗證,使系統能自行展開。
這意味著程式碼可能出現三種層級:
指令層:告訴機器每一步怎麼做。
規格層:告訴系統結果應該滿足什麼。
意圖層:告訴智能體為何做、做成什麼、如何驗證。
最小語意載荷競賽主要探索第三層。它問的是:一個意圖要成為可執行現實,最少需要多少符號?
這與 EML 的核心方向相通。EML 不是只追求更短的語法,而是追求一種「語意密度更高的可執行中介層」。它讓人類、AI 與機器在同一個符號場中協作。人類寫下壓縮意圖,AI 展開可執行路徑,編譯器與工具鏈檢查形式,trace 系統記錄過程,測試系統驗證結果。
因此,這個比賽也可以被看作一種新工程哲學的實驗:
程式碼不是越多越完整,而是越能以最小形式穩定完成意圖,越接近高階工程效率。
15. 與 EML MVP 的關係
EML MVP 已經具備這個賽制需要的若干基礎能力:語法規格、parser、AST、semantic、transpiler、interpreter、trace、diagnostics、AI handoff、examples、tests 與 Studio 原型。這代表它不只是理論語言,而是可以承擔最小語意載荷競賽的初步工具鏈。
具體而言,EML 可以支援:
題目以 EML 描述。
參賽作品以 EML 提交。
EML 轉譯為 Python / C++ / JS 等執行語言。
執行過程生成 trace。
裁判檢查 AST 與 semantic 是否符合題意。
AI Agent 根據 EML handoff 接手任務。
Studio 顯示程式、意圖、trace、AST 與診斷。
這使比賽不只是宣傳活動,也能反過來成為 EML 的壓力測試。每一道題都可以暴露語法不足、轉譯缺陷、trace 缺口、AI handoff 不清楚之處。比賽本身會成為語言進化器。
換句話說,EML 不只可以用來參加比賽;比賽也可以用來訓練 EML。
16. 未來發展路線
16.1 v0:內部規則實驗
先在小範圍內設計 5 到 10 題,使用 EML MVP、Python、JavaScript 與簡單 judge script 測試規則可行性。此階段重點不是公開,而是找出規則漏洞。
16.2 v1:公開小型挑戰
發布第一屆 Minimal Intent Challenge。只開三個賽道:1-Line、5-Line、10-Line。題目以純計算、資料處理、UI mock 與 Agent handoff 為主。暫不引入真實硬體。
16.3 v2:加入 EML Studio 展示
將優秀作品放入 EML Studio 展示,讓觀眾可以看到 source、AST、trace、diagnostics、output 與 scoring breakdown。
16.4 v3:加入模擬物理世界
建立 sensor/actuator simulator,讓參賽者在無硬體條件下完成物理耦合題。例如溫度控制、簡易機器人、迷宮導航、能源管理。
16.5 v4:加入真實硬體賽道
與教育板、IoT 裝置、機器人平台或瀏覽器自動化環境結合。此階段需要安全規則與標準硬體。
16.6 v5:形成新型 benchmark
將題目整理成 benchmark,用於評估程式語言、LLM、Agent、DSL、轉譯器與人類參賽者的意圖壓縮能力。
最終,這個比賽可以不只是活動,而是一個測量未來程式設計效率的標準。
17. 結論
最小語意載荷競賽提出了一個新的比較方式:不是誰的程式碼最多,不是誰的工程堆疊最厚,也不只是誰的字元最少,而是誰能用最少有效資訊,完成最明確、最穩定、最可驗證的意圖。
它繼承 Code Golf 的短碼精神,但拒絕把主體邏輯藏進依賴。它吸收 AI Agent 的能力,但要求模型成本與上下文成本透明。它承認現代工程需要依賴,但要求依賴分級與主體邏輯歸屬清楚。它鼓勵程式與世界耦合,但要求 trace、安全與可重現性。
EML 在這個框架中具有天然位置。因為 EML 的目標本來就不是單純縮短語法,而是把意圖、語意、執行、轉譯、觀測與 AI 協作放到同一個可操作層中。若未來程式碼的核心越來越接近「意圖的最小可執行表示」,那麼 EML Minimal Intent Challenge 就可以成為展示這個方向的第一個公開舞台。
簡而言之:
Code Golf 比最短程式碼。
Intent Golf 比最小充分意圖。
EML 則提供一種讓最小意圖可被解析、轉譯、執行與驗證的語言層。
這不是單純的程式遊戲,而是下一代 AI-native 工程文化的一個入口:
用最少的符號,讓最多的世界開始運作。
附錄 A:術語表
最小語意載荷:完成任務所需的最小有效資訊總量。
意圖完成度:作品是否完成題目真正要求,而非只通過表面測資。
主體邏輯:完成任務核心意圖所需的主要算法、推理、控制或轉換規則。
外包懲罰:將主體邏輯藏於依賴、模型、API、資料或環境時施加的成本。
世界耦合:程式與檔案、網路、UI、Agent、硬體或物理環境互動的深度。
EML-Class:使用 EML 作為主要提交語言的賽道。
Agent Handoff:用最短規格讓 AI Agent 接手任務並產生可驗證結果。
Trace:執行過程、工具呼叫、依賴、輸入輸出與錯誤的可觀測紀錄。
附錄 B:提交 Manifest 範例
title: csv-clean-minimal
class: 5-Line
language: python
runtime: python 3.12
dependencies:
level: D1
list: []
limits:
lines: 5
bytes: 280
external_services: false
llm_runtime: false
entry: solution.py
verify: tests/test_hidden.py
notes: "Reads CSV from stdin, outputs normalized JSON."
附錄 C:EML 題目規格範例
task: stdin.csv -> rows!empty -> keys.lower -> out.json
limit: lines<=5; dep<=D1; bytes<=300
verify:
input: "Name,Age\nNeo,30\n,\nAletheia,1"
output.schema: list<object>
output.rule: keys=lowercase && empty_rows=removed
trace: required
這種題目規格可以同時讓人類讀懂、讓 Agent 接手、讓 judge runner 驗證,也能讓 EML 工具鏈進行解析與轉譯。
附錄 D:簡化評分表
| 項目 | 權重 | 說明 |
|---|---|---|
| 意圖完成度 | 40% | 是否完成真正任務 |
| 有效成本 | 25% | 行數、bytes、依賴、外部成本 |
| 可靠性 | 15% | 多次執行與邊界情況 |
| 透明度 | 10% | 依賴、trace、外部服務揭露 |
| 結構美感 | 10% | 最小形式與意圖貼合程度 |
附錄 E:一句話版本
最小語意載荷競賽不是比誰寫得最少,而是比誰能用最少可揭露、可驗證、可重現的語意載荷,完成最多、最準、最穩定的意圖。