大家好,我是讯享网,很高兴认识大家。
“以前都是人写书,整天下雨,鬼哭狼嚎。”汉字的出现孕育了世界上伟大的文明。编程语言的出现实现了人类与计算机的真正联系,推动了现代文明的发展。
那么,古代汉语和编程语言的结合会产生什么样的火花呢?最近GitHub上出现了一个文言文编码项目,几乎是世界上第一个文言文编程语言(当然底层还是转换成Python或者JavaScript来运行)。
文言文编程语言横空出世
如果编程语言以中文为主要语言,我们中国人学习编程会不会更容易?
这是知乎上的热门话题。很多接触过编程的人都知道“易语言”,易语言是一种在编程语言中用中文代替英文的编程语言,也可以实现程序功能。最近,卡耐基梅隆大学(CMU)的一名大四学生开发了一种基于文言文的编程语言,高中语文三大恐惧的文言文终于找到了程序员。
这个项目不是简单的把程序中的英文字符改成中文,而是用一些NLP技术把文言文程序的语法转换成JavaScript或者Python,技术难度很大。截至发稿,该项目已获5K+赞,微博中多人转发。
很多网友都测试过这个项目,项目作者的脑洞、文采、创意真的让人惊讶。
如果读者想快速尝试一下,还可以玩在线IDE,它有很多预定义的功能。甚至在手机上也可以编辑运行“文言文代码”。
(文末有传送地址)(文末有投递地址)
文言文怎么编程?黄岭东应该读过《易经》。毕竟《易经》是最早的关于二进制的古籍。他用《易经》的阴阳来表示布尔变量中的0和1。
“我有”系列被用作定义:
我有一个定义int变量的数;
我有布尔变量的定义;
我有一个词定义了字符串;
我的技能之一是定义函数;
我的一个专栏是定义数组;
……
在一般的编程中,循环判断中有if,while,for,而文言文编程在这件事上有无穷的变化。以下是用文言文写的判决书:
如果三佛大于五佛。是“想当然”。如果没有。很“诡异”。
翻译过来就是:
if(3 & lt;=5)
{ return & # 34当然& # 34;}
其他
{ return & # 34没门& # 34;}
你可能觉得if…else…句子用文言文太啰嗦,但是常用的for循环用文言文更简洁。
一百次了。云韵。
意思是:
for(var I = 0;我& lt100;i++)
{ …}
如果我们需要判断一个可变人类是否在世界上,我们一般用for (var human of world)。初学者看到for的这种用法可能会很困惑,而文言文中的表示更接近普通人的理解。
“天地”中的一切“人”。云韵。
有古代的易经,也有今天的金庸小说。当显示定义函数时,黄的同学给了它另一层皮:
我有一项技能。它叫“六脉神剑”。欲望是艺术,你必须先数到六。说A。说“B”。说“C”。说“丁”。说“e”。“自我”是一种技能。就是“六脉神剑”的手法。
在这里,黄将功能名称定义为“六脉神剑”。该功能共有六个输入。
函数f(a,b,c,d,e,f)
{…}
看腻了黑背景上的代码?该项目还提供了一个很酷的“中国古代代码生成器”。我们可以从右到左,从上到下,不用标点符号,把我们的文言代码转换成古文。是不是更B案?这个生成器也有SVG文件,可以提取并重新运行。
为项目作者尝试了以下“图灵机”代码:
语法规则
考虑到文言文和其他编程语言之间的转换比较难懂,作者提供了一些语法转换规则的表格,供参考。
变量命名
条件/循环
数学计算
数组(列表)
从“1”开始数。
功能
他是“何方神圣”?
值得注意的是,这个别出心裁的设计其实来自卡内基梅隆大学的大四学生黄灵东(Ling Dong Huang)。
在作者的简介中,凌东煌说他将在2020年获得计算机科学学位。在此之前,他曾在迪士尼研究所、反模块化研究所和《纽约时报》实习,他还做过https://lingdong.works/.网站的项目,目前有近30个项目。项目主题丰富多彩,比如用表情符号制作的游戏,用户提交的涂鸦制作的电脑动画,还有像本文这样的汉字和偏旁部首的视觉动画等等。,并给出了项目的源代码。
他还做了一些有趣的东西,比如微信终端版,格律诗编辑程序,真是传统文学的真正爱好者!
如果想试用,可以直接克隆作者的项目,然后根据语法进行调试。macOS、Wondows和Linux的二进制文件将位于。/build文件夹。
用法:燕文[选项][输入文件]
选项:
-eval-e & lt;字符串& gt:给出一个字符串而不是文件(默认:` & # 39;)
-exec-x & lt;布尔型& gt:执行输出(默认:` false & # 39)
-inspect-I & lt;布尔型& gt:交互式REPL(默认:` false & # 39)
-lang-l & lt;字符串& gt:语言:js/py(默认:` js & # 39)
-log & lt;字符串& gt:日志文件(默认值:`/dev/null & # 39;)
-output-o & lt;字符串& gt:输出文件(默认:`/dev/stdout & # 39;)
-Roman-r & lt;布尔型& gt:罗马化标识符(默认:` true & # 39)
。/build/wenyan.js示例/helloworld.wy -o helloworld.js
作者还有一些其他有趣的项目,比如程序可以无限生成的中国山水画,错别山(中文翻译),格律诗编辑程序,隐士等。,可以在GitHub上找到。你不妨看看。
GitHub链接:https://github.com/LingDong-/wenyan-langGitHub链接:https://github.com/LingDong-/wenyan-lang
门户网站:
项目代码:
https://github.com/LingDong-/wenyan-lang
项目主页:
http://wenyan-lang.lingdong.works/
在线IDE演示:
http://wenyan-lang.lingdong.works/ide.html
个人主页:
https://lingdong.works/
去看看我哥的神作吧!
安装和使用
文言文编程只需下载repo到本地即可立即使用,Node已经安装在本地。它现在支持燕文·朗到JavaScript和Python的转换:
。/build/wenyan.js示例/helloworld.wy -o helloworld.js
在这个命令中,如果没有指定语言,程序将自动转换为JavaScript。如果要转换成Python,请添加参数“—lang py”或“-l py”。
用户也可以自己编译二进制文件。如果只是想尝一尝,线上的IDE也是不错的选择。
边肖先去玩了!
本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://51itzy.com/14218.html