javascript 编程ide_文言文亦能编程!2019年度最骚编程语言横空出世!

b0f29b24d70cf43ee28928e2dfa001c8.gif

「昔者苍颉作书,而天雨粟,鬼夜哭」,汉字的出现,诞生了世界上一个伟大的文明。而编程语言的出现,让人类和计算机产生了真正的联系,推动了现代文明的发展。

那么,将古代汉语和编程语言结合又会产生怎样的火花?最近,GitHub 上出现了一个文言文做代码的项目,几乎是世界上第一门文言文编程语言(当然,底层还是转换成 Python 或 JavaScript 运行)。

2786e7ecd95dcdc4ef759068be1f3b02.png

文言文编程语言横空出世

39c45a13d13e36397a1e0d2224085c73.png

如果中文是编程语言中使用的主要语言,我们中国人学习编程是否会更简单?

这是知乎上讨论非常火热的话题。很多接触过编程的人都知道「易语言」,这是一种使用中文代替编程语言中的英文的编程语言,同样可以实现程序功能。近日,一位卡内基梅隆大学(CMU)的大四学生开发了基于文言文的编程语言,高中语文三大怕的文言文终于找上程序员了。

这一项目并不是简单的将程序中的英文字符换成了中文,而是利用 NLP 的一些技术,将文言文程序语法转换到 JavaScript 或 Python 运行,有一定的技术难度。截至发文,项目已经获赞 4K+,还得到了很多人的微博转发。

c3162af6848f0bc66364d8aa2902d0df.png

众多网友纷纷对这一项目进行了测试,项目作者的脑洞、文采和创意着实令人惊讶。

如果读者想快速试一试,你也可以玩一玩在线 IDE,上面有很多预定义的函数。即使在手机上,我们也能编辑并运行「文言文代码」。

ebe9b17d55e805f53e1a9fb281c5079c.png

(文末有传送地址)

文言文怎么编程?

Huang Lingdong同学应该是读过《易经》,毕竟易经是最早论述二进制的古书。他用易经的阴和阳代表布尔变量中的0和1。

“吾有”系列则被用来做定义:

吾有一数是定义int变量

吾有一爻是定义布尔变量

吾有一言是定义字符串

吾有一术是定义函数

吾有一列是定义数组

……

一般的编程里,循环判断有if、while、for,文言文编程在这件事上更是变化无穷。下面就是一段文言文书写的判断语句:

若三弗大於五者。乃得「「想當然耳」」。若非。乃得「「怪哉」」也。

翻译过来就是:

if(3<=5)  {return "of course"}else  {return "no way"}

也许你会觉得if…else…语句用文言文太啰嗦,但是常用的for循环,用文言文表达却更为简洁。

為是百遍。⋯⋯ 云云。

它的意思是:

for (var i = 0; i < 100; i++)  { ... }

如果需要判断某个变量human是否在world中,我们一般用for (var human of world),初学者看到for的这种用法可能会很困惑,而文言文的表示更接近普通人的理解。

凡「天地」中之「人」。⋯⋯ 云云。

古有《易经》,今有金庸小说,在展示定义函数的时候,Huang同学又皮了一下:

吾有一術。名之曰「六脈神劍」。欲行是術。必先得六數。曰「甲」。曰「乙」。曰「丙」。曰「丁」。曰「戊」。曰「己」乃行是術曰。⋯⋯是謂「六脈神劍」之術也。

这里Huang同学将函数名定义为“六脉神剑”,这个函数总共有6个输入。

funcion f(a,b,c,d,e,f)  {…}

看厌了黑底的代码?项目还提供了一个炫酷的「古文代码生成器」,我们可以把自己的文言文代码转换成古书中从右到左,从上到下,没有标点的古文。是不是更有 B 格了?这个生成器还有 SVG 文件,可以将代码再提取出来,重新运行。

以下为项目作者尝试的「图灵机」代码:

e623b879c8c5f51c66c8df7e00549751.png

语法规则

考虑到文言文和其他编程语言的转换有一定的理解难度,作者提供了一些语法转换规则表,供参考。 变量命名 4e814ea0dd6d37e7e1507eb721ed5529.png 条件/循环 96930c882611729d5668a550ee0e1a89.png 数学计算 50ba52929c141c313ec1e73230da739d.png 数组(列表)

这里从「1」开始计数。

101aef97a463dbb1b479534ff2a26fbb.png 函数 6f7d434e7ea7bfa516accf340dd792f5.png

他是“何方神圣”?

值得注意的是,这个思路清奇的设计竟然出自一名卡内基梅隆大学的大四学生 Ling Dong Huang。

c2b4de942d63c9d40cc3cbcbb9edd293.png

在作者简介中,Ling Dong Huang 表示自己将于 2020 年获得计算机科学学位,此前,他曾在迪士尼研究院、 Antimodular 研究院和《纽约时报》实习,自己也做了项目网站 https://lingdong.works/。目前已经有将近 30 个项目。项目主题丰富多彩,比如用 emoji 做成的小游戏,使用用户提交的涂鸦做成的计算机动画,以及和本文一样对中国下手,把中国表意文字和部首做成可视化动画,等等,并给出了项目的源代码。

传送门:

项目代码:

https://github.com/LingDong-/wenyan-lang

项目主页:

http://wenyan-lang.lingdong.works/

线上IDE试玩:

http://wenyan-lang.lingdong.works/ide.html

个人主页:

https://lingdong.works/

赶紧去看看小哥的神创造!

安装与使用

文言文编程只需将repo下载到本地,而且本地已经安装Node,就能立即使用。现在它支持将wenyan lang转换成JavaScript和Python:

./build/wenyan.js examples/helloworld.wy -o helloworld.js

在这段命令中,如果不指定语言,程序将自动转化为JavaScript,若想转化成Python,请加入参数“—lang py”或是“-l py”。

用户也可以自行编译二进制文件。如果你只想尝尝鲜,在线IDE也是个不错的选择。

小编先去玩了!

本文综合自GitHub等网站,侵删。

< END >

有你想看的 精彩 睡前成长研习社 | 95后最喜欢什么样的公司? 孙悟空都服输!波士顿动力最新逆天机器人视频,翻筋斗连拿大顶!应届生:年薪20万过分吗?大学生就业期望薪资知多少知乎高赞 | 学霸们是如何高效率地学习、工作、生活的?

9abde9e9a4d1b06ff5b4911c59fc3292.png

微博丨睡前带你看未来

官网丨school.futurelab.tv

合作丨service@futurelab.tv

8d0584ff2ef4d3d6e0f46a3e41265903.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值