新一配:文言文也能编程?该项目在GitHub摘得5500星

一款由CMU本科生黄凌栋开发的文言文编程语言在GitHub上获得了5500颗星。这款语言可以编译成JavaScript或Python,并提供在线IDE。其语法基于古典汉语,实现了从传统文学到现代编程的跨越。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新一配:有中国开发者上传的文言文編程語言项目已经在GitHub上摘得了5500星,你可知如何用文言文输出“Hello World”?吾有一言。曰「「問天地好在。」」。書之。

据悉,该文言文编程语言来自CMU本科生Huang Lingdong。可编译成Javascript,也可编译成Python,亦有线上编辑器 (IDE) 可直接运行。

GitHub地址:https://github.com/LingDong-/wenyan-lang
在这里插入图片描述
文言文亦能编程,该项目在GitHub摘得5500星

夫唐、虞之世,結繩而足治,屈指而足算。是時豈料百代之後,計算機械之巧,精於公輸之木鳶,善於武侯之流馬;程式語言之多,繁若《天官》之星宿,奇勝《山經》之走獸。鼠、蟹、鑽、魚,或以速稱。蛇、象、駱、犀,各爭文采。方知鬼之所以夜哭,天之所以雨粟。然以文言編程者 ,似所未有。此誠非文脈之所以傳,文心之所以保。嗟予小子,遂有斯志。然則數寸之烏絲猶覆於頭,萬卷之素書未破於手;一身長羁于远邦,兩耳久旷于雅言。然夫文章者吾之所宿好,程式者偶承時人之謬譽。故希孟不慚年少,莊生不望無涯。乃作斯言。誠未能嘔瀝長吉之心血,亦庶幾免於義山之流沫。既成之後,復學干將鑄劍而自飼,越王嚐糞而當先。自謂偶追《十書》之筆意,但恨少八家之淋漓。此子山所謂士衡抚掌而甘心,平子見陋而固宜。然則雖實覆甕之質,尚存斧正之望;雖乏呂相之金,易字之渴蓋同。此亦開源之大義,吾輩之所以勉勵也。一笑。

Hello world

Wenyan:

吾有一數。曰三。名之曰「甲」。
為是「甲」遍。
吾有一言。曰「「問天地好在。」」。書之。
云云。
Equivalent JavaScript:

varn=3;
for(vari=0;i<n;i++){
console.log(“問天地好在。”);
}
Output:

問天地好在。
問天地好在。
問天地好在。
Punctuations and newlines are completely optional (just like they are in Classical Chinese), so the above code is equivalent to:

吾有一數曰三名之曰「甲」為是「甲」遍吾有一言曰「「問天地好在」」書之云云
More sophisticated examples, such as the Sieve of Eratosthenes, Quicksort, Mandelbrot set, and Tower of Hanoi, can be found in the ./examples folder.

Features

An NLP sharing the grammar of Classical Chinese

Compiles to JavaScript or Python

Turing complete

An online IDE

Examples to get started

InstallationThe Compiler

Clone the repo, (OR simply download ./build/wenyan.js and set its executable bit using the terminal command chmod +x wenyan.js). Then run ./build/wenyan.js to compile your wenyan souce code to target language. Calling the compiler without arguments prints the help message, reproduced below:

Usage:wenyan[options][inputfiles]
Options:
–eval-e:Giveastringinsteadofafile(default:') --exec-x<boolean>:Executeoutput(default:false’)
–inspect-i:InteractiveREPL(default:false') --lang-l<string>:Language:js/py(default:js’)
–log:Logfile(default:/dev/null') --output-o<string>:Outputfile(default:/dev/stdout’)
–roman-r:Romanizeidentifiers(default:`true’)
Try building the included examples first, e.g.:

./build/wenyan.jsexamples/helloworld.wy-ohelloworld.js
Building platform-specific binaries

Clone the repo

npm install

npm run make_cmdline

The macOS, Windows and Linux binaries will be in the ./build folder.

文言文亦能编程,该项目在GitHub摘得5500星

Syntax Cheatsheet

A context-free grammar description is under construction. Meanwhile, please check the cheatsheet below, or look into src/parser.js to learn about the syntax. Be sure to check out the examples from the online IDE too!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值