概述
「昔者苍颉作书,而天雨粟,鬼夜哭」,汉字的出现,诞生了世界上一个伟大的文明。而编程语言的出现,让人类和计算机产生了真正的联系,推动了现代文明的发展。
那么,将古代汉语和编程语言结合又会产生怎样的火花?最近,GitHub 上出现了一个文言文做代码的项目,几乎是世界上第一门文言文编程语言(当然,底层还是转换成 Python 或 JavaScript 运行)。
文言文编程语言横空出世
如果中文是编程语言中使用的主要语言,我们中国人学习编程是否会更简单?
这是知乎上讨论非常火热的话题。很多接触过编程的人都知道「易语言」,这是一种使用中文代替编程语言中的英文的编程语言,同样可以实现程序功能。近日,一位卡内基梅隆大学(CMU)的大四学生开发了基于文言文的编程语言,高中语文三大怕的文言文终于找上程序员了。
这一项目并不是简单的将程序中的英文字符换成了中文,而是利用 NLP 的一些技术,将文言文程序语法转换到 JavaScript 或 Python 运行,有一定的技术难度。截至发文,项目已经获赞 4K+,还得到了很多人的微博转发。
众多网友纷纷对这一项目进行了测试,项目作者的脑洞、文采和创意着实令人惊讶。
如果读者想快速试一试,你也可以玩一玩在线 IDE,上面有很多预定义的函数。即使在手机上,我们也能编辑并运行「文言文代码」。
(文末有传送地址)
文言文怎么编程?
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 文件,可以将代码再提取出来,重新运行。
以下为项目作者尝试的「图灵机」代码:
语法规则
考虑到文言文和其他编程语言的转换有一定的理解难度,作者提供了一些语法转换规则表,供参考。 变量命名 条件/循环 数学计算 数组(列表)这里从「1」开始计数。
函数他是“何方神圣”?
值得注意的是,这个思路清奇的设计竟然出自一名卡内基梅隆大学的大四学生 Ling Dong Huang。
在作者简介中,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万过分吗?大学生就业期望薪资知多少知乎高赞 | 学霸们是如何高效率地学习、工作、生活的?微博丨睡前带你看未来
官网丨school.futurelab.tv
合作丨service@futurelab.tv
最后
以上就是温暖御姐为你收集整理的javascript 编程ide_文言文亦能编程!2019年度最骚编程语言横空出世!的全部内容,希望文章能够帮你解决javascript 编程ide_文言文亦能编程!2019年度最骚编程语言横空出世!所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复