Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

华人留学生开发首个古汉语编程语言,实现易经算命、圆周率计算,Github获赞14.7k

近日,世界上第一个古汉语编程语言在 Github 上横空出世,由该古汉语编程语言编写的程序现已达到了数十个,有圆周率计算方法,甚至有《易经》的算命算法。

截至目前,该项目在 Github 上已获赞 14.7k,引起诸多关注。

更让人惊奇的是,这套古汉语编程语言(wenyan-lang)的开发者 Lingdong Huang 是一名中国留学生,于去年在卡内基梅隆大学(CMU)获得了计算机和艺术学位,他曾参与创作迄今为止唯一由人工智能生成的中国戏曲,将传统文化融入技术中。

「昔有苍颉作书,而天雨栗,鬼夜哭」,汉字的出现,诞生了世界上一个伟大的文明,将知识传播到四海之外,而如今代码组成了整个庞大的数字世界,用文言文来编程,让古代文字在新时代焕发新生。

传承文脉、保护文心。

「夫唐、虞之世,結繩而足治,屈指而足算。是時豈料百代之後,計算機械之巧,精於公輸之木鳶,善於武侯之流馬;程式語言之多,繁若《天官》之星宿,奇勝《山經》之走獸...」

项目开篇,即是作者用文言文写的项目序言,介绍了建立项目的初衷:传承文脉、保护文心。

汉字的出现,让我们看到了中华文明时代到来的灿烂曙光。而编程语言的出现,让计算机也能懂得语言,极大促进了现代文明的发展。

那么,文言文和编程语言相碰撞又会有怎样的火花呢?作者又是怎样实现用文言文编程的呢?

用文言文写代码

用文言文编程不仅仅是将英文字符转换为文言文这么简单,而是需要运用到自然语言处理技术(NLP),将文言编程语言编译成 JaveScript 等编程语言,最后再运行程序得到结果。

若用文言编程语言来表达编程界经典的代码「Helloworld」,应该这样写:

这里具体思路是,先定义一个数为「3」,并将它赋值给「甲」,即甲=3,然后进入一个循环,遍历「問天地好在。」这个语句「甲」次。

将它转换为 JavaScript 语言,是这样的:

结果输出:

你以为文言编程就只有这些吗?那你就太小瞧它了。

著名的「八皇后问题」、「汉诺塔」等问题,它样样精通,甚至还可以画图。

在作者的网站上可以在线编译,大家也可以一试。

Github 网站:https://github.com/wenyan-lang/wenyan

古文代码生成器

此外,作者还开发了一个「古文代码生成器」,将文言文代码转到古书的页面上,从右到左,从上到下,没有标点的古文,带有十足的古典气息。

古汉语编程语言使用的是繁体汉字和古汉语语法,然而如何划分句子却成了难题,因为需要古汉语在不使用空格的前提下将句子分为单词。就如我们看到英语单词「pancakebatter」,我们需要依赖先验知识将其划分为「pancake batter」,而不是「pan cakebatter」。

为了解决这个问题,作者指出文言编程语言只需要拥有一定数量的关键词,这样每次运行时,扫描最长的关键词到最短的关键词来得到目标内容。

语法

作为一种「新语言」,除了有关键词,当然还有语法,无论是定义变量还是执行循环等,文言文都有其对应的语法。

变量命名

循环

网友评价

对于发布世界上第一种古语言编程语言的新闻,早已引发了热议。在 Reddit 上,不少网友发表了自己的看法。

这位网友认为,中国应该支持这种创新,进一步将计算机科学融入中国本土文化,在编译源代码时,可以将英语或任何其他语言作为编程语言,之后将一系列字母或单词解析为有意义的符号,然后将符号转换为机器代码。汉字已经是有意义的符号了,因此此番基于汉字的编程语言可以免去很多解析,这是极好的。

另一位网友也表示赞同,他认为,汉字具有含义,它可以表达任何语言,而且语法是固定且简单的,因此特别适合编程。

其实,这不是第一次将中国文化融入代码文化中,几百年前二进制的诞生竟也与《易经》有密不可分的关系。

二进制与《易经》

当我们在 LCD 屏幕上观看数字图像,在 MP3 上聆听音乐时,我们很难想象这背后的原理是一串二进制信号,通常由 0 和 1 表示。二进制数字系统(0 和 1)构成了所有现代计算系统的基础。它用两个数字就重构了各种场景,进行高速的运算。

17 世纪著名的数学家莱布尼茨(Leibniz)发明了这个重要的数字系统。那么他又是如何创建二进制的呢?据《卫报》专栏作家大卫沃尔特(David Walter)报道,莱布尼茨的灵感来自有着五千年历史的中国哲学核心著作——《易经》。

《易经》是中国最古老的古典文字和占卜系统之一,被认为比有记载的历史更早一些。它的核心是八卦,也可以延伸为六十四卦。《易经》代表了现实的两极,阴和阳,就像 1 和 0 一样,它们都是抽象概念。在八卦中,虚线代表阴,实线代表阳,这些线以三个为一组组合在一起,产生了八个基本的卦,然后又合在一起得到了六十四个卦,每个卦都有自己的含义和解释。

沃尔特解释说,六十四卦代表了人类生命本身的原型状态。在《易经》的哲学中,现实并不完全是真实的,它更像是一个梦想或幻想,现实源于阴和阳的二元性,它们发挥出了无限的组合。

因此,从易经的观点来看,在现实的梦境中,任何事物都可以被表示成由计算机处理的二进制成分模型,即由一串 1 和 0 组成的字符串。

莱布尼茨深受《易经》中哲学思想的影响,在他的《二进制算数的解释》(1703)这本书中写道:卦是二进制数字系统通用的基础,可以采用卦中阴阳符号表示二进制序列。因此 ¦¦¦¦¦¦ 代表 000000,而 ¦¦¦¦¦︳代表 000001,以此类推。

参考链接:

[1] https://spectrum.ieee.org/tech-talk/computing/software/classical-chinese

[2]https://www.theguardian.com/books/2014/mar/21/ancient-book-wisdom-i-ching-computer-binary-code

AMiner学术头条
AMiner学术头条

AMiner平台由清华大学计算机系研发,拥有我国完全自主知识产权。系统2006年上线,吸引了全球220个国家/地区800多万独立IP访问,数据下载量230万次,年度访问量1000万,成为学术搜索和社会网络挖掘研究的重要数据和实验平台。

https://www.aminer.cn/
专栏二维码
工程编程语言
相关数据
重构技术

代码重构(英语:Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

先验知识技术

先验(apriori ;也译作 先天)在拉丁文中指“来自先前的东西”,或稍稍引申指“在经验之前”。近代西方传统中,认为先验指无需经验或先于经验获得的知识。先验知识不依赖于经验,比如,数学式子2+2=4;恒真命题“所有的单身汉一定没有结婚”;以及来自纯粹理性的推断“本体论证明”

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

字符转换技术

给定一个字符串,将所有偶数定位的元素移动到字符串的末尾。在移动元素时,保持所有偶数位置和奇数位置元素的相对顺序相同。

推荐文章
暂无评论
暂无评论~