作者 | Steef-Jan Wiggers
譯者 | 王強(qiáng)
策劃 | Tina
Vine 編程語(yǔ)言是一種基于交互網(wǎng)絡(luò)構(gòu)建的新型實(shí)驗(yàn)性語(yǔ)言。它具有函數(shù)式和命令式編程模式之間的互操作性。
Vine 是一種靜態(tài)類(lèi)型的編譯語(yǔ)言,有著簡(jiǎn)潔直觀的語(yǔ)法。其底層基礎(chǔ)是交互網(wǎng)絡(luò)的計(jì)算模型。Vine 編譯為 Ivy,這是一種在交互虛擬機(jī)(IVM)上運(yùn)行的底層交互組合器語(yǔ)言。
在一個(gè) Hacker News 帖子中,tijvi 評(píng)論道:
交互網(wǎng)絡(luò)是一種替代計(jì)算模型(類(lèi)似于 lambda 演算或圖靈機(jī))。它們有幾個(gè)有趣的特性,其中最值得注意的是它們基本上是并行的。交互網(wǎng)絡(luò)在并行和分布式計(jì)算等領(lǐng)域有許多潛在的應(yīng)用。這樣的應(yīng)用需要一種語(yǔ)言——因此有了 Vine。
Vine 編程語(yǔ)言包括一些標(biāo)準(zhǔn)特性,如整數(shù)和浮點(diǎn)運(yùn)算、布爾邏輯、字符串操作、元組以及基本控制流構(gòu)造,如 if-else 語(yǔ)句和循環(huán)。它的語(yǔ)法和類(lèi)型系統(tǒng)受到 Rust 的影響,強(qiáng)調(diào)面向表達(dá)式的方法和模塊化結(jié)構(gòu)。
此外,該語(yǔ)言與 Rust 之外的函數(shù)式語(yǔ)言(如 Haskell、Erlang、Elixir 和 OCaml)有相似之處。這些語(yǔ)言強(qiáng)調(diào)不變性、安全性、性能和并發(fā)性,與 Vine 的設(shè)計(jì)理念一致。
在 Bluesky 上,軟件工程師 Devon 發(fā)帖稱(chēng):
閱讀 vine.dev 文檔讓我想起了我第一次接觸 Haskell 時(shí)的情形——仿佛大腦要融化了,但其中的一些非常有趣的想法來(lái)自該語(yǔ)言底層的新計(jì)算模型(Vine:交互網(wǎng)絡(luò) :: Haskell:lambda 演算,有點(diǎn)像)。
該語(yǔ)言的 Vine 編譯器采用多階段架構(gòu)將源代碼轉(zhuǎn)換為交互網(wǎng)絡(luò):
它從 CLI 入口點(diǎn)開(kāi)始,收集編譯選項(xiàng)和入口點(diǎn),然后是將文件解析為抽象語(yǔ)法樹(shù)(AST)的加載器。
然后,解析器構(gòu)建模塊圖并消除特定 AST 節(jié)點(diǎn)的歧義。檢查器驗(yàn)證表達(dá)式類(lèi)型和形式。
同時(shí),提取器將 AST 轉(zhuǎn)換為 Vine 中間表示(VIR),簡(jiǎn)化復(fù)雜表達(dá)式并將控制流轉(zhuǎn)換為一個(gè)堆疊流圖。
規(guī)范器消除 VIR 中的分歧,分析器進(jìn)行可達(dá)性和數(shù)據(jù)流分析。
最后,發(fā)射器將處理后的 VIR 轉(zhuǎn)換為 Ivy 網(wǎng)絡(luò),完成 Vine 并行計(jì)算的編譯過(guò)程。
有一個(gè) GitHub 項(xiàng)目,其中包含了各種用于嘗試 Vine 編譯器的示例。
有興趣探索 Vine 的開(kāi)發(fā)人員可以訪問(wèn)官方文檔。該文檔提供了從安裝到高級(jí)主題(如并發(fā)編程模式和與現(xiàn)有系統(tǒng)的集成)的全面指導(dǎo)。
最后,Vine 項(xiàng)目是開(kāi)源的,并在 GitHub 上積極維護(hù)。開(kāi)發(fā)團(tuán)隊(duì)鼓勵(lì)社區(qū)參與,邀請(qǐng)開(kāi)發(fā)人員貢獻(xiàn)代碼、報(bào)告問(wèn)題并提供反饋。
New Programming Language Vine Based on Interaction Nets (https://www.infoq.com/news/2025/03/new-programming-language-vine/)
聲明:本文由 InfoQ 翻譯,未經(jīng)許可禁止轉(zhuǎn)載。
熱門(mén)跟貼