近日世界上第一个古汉语编程语言在Github上横空出世由该古汉语编程语言编写的程序现已达到了数十个有圆周率计算方法甚至有易经的算命算法
截至目前该项目在Github上已获赞147k引起诸多关注
更让人惊奇的是这套古汉语编程语言wenyanlang的开发者LingdongHuang是一名中国留学生于去年在卡内基梅隆大学CMU获得了计算机和艺术学位他曾参与创作迄今为止唯一由人工智能生成的中国戏曲将传统文化融入技术中
昔有苍颉作书而天雨栗鬼夜哭汉字的出现诞生了世界上一个伟大的文明将知识传播到四海之外而如今代码组成了整个庞大的数字世界用文言文来编程让古代文字在新时代焕发新生
传承文脉保护文心
夫唐虞之世結繩而足治屈指而足算是時豈料百代之後計算機械之巧精於公輸之木鳶善於武侯之流馬程式語言之多繁若天官之星宿奇勝山經之走獸
项目开篇即是作者用文言文写的项目序言介绍了建立项目的初衷传承文脉保护文心
汉字的出现让我们看到了中华文明时代到来的灿烂曙光而编程语言的出现让计算机也能懂得语言极大促进了现代文明的发展
那么文言文和编程语言相碰撞又会有怎样的火花呢作者又是怎样实现用文言文编程的呢
用文言文写代码
用文言文编程不仅仅是将英文字符转换为文言文这么简单而是需要运用到自然语言处理技术NLP将文言编程语言编译成JaveScript等编程语言最后再运行程序得到结果
若用文言编程语言来表达编程界经典的代码Helloworld应该这样写
这里具体思路是先定义一个数为3并将它赋值给甲即甲3然后进入一个循环遍历問天地好在这个语句甲次
将它转换为JavaScript语言是这样的
结果输出
你以为文言编程就只有这些吗那你就太小瞧它了
著名的八皇后问题汉诺塔等问题它样样精通甚至还可以画图
在作者的网站上可以在线编译大家也可以一试
Github网站古文代码生成器
此外作者还开发了一个古文代码生成器将文言文代码转到古书的页面上从右到左从上到下没有标点的古文带有十足的古典气息
古汉语编程语言使用的是繁体汉字和古汉语语法然而如何划分句子却成了难题因为需要古汉语在不使用空格的前提下将句子分为单词就如我们看到英语单词pancakebatter我们需要依赖先验知识将其划分为pancakebatter而不是pancakebatter
为了解决这个问题作者指出文言编程语言只需要拥有一定数量的关键词这样每次运行时扫描最长的关键词到最短的关键词来得到目标内容语法
作为一种新语言除了有关键词当然还有语法无论是定义变量还是执行循环等文言文都有其对应的语法
变量命名
循环
网友评价
对于发布世界上第一种古语言编程语言的新闻早已引发了热议在Reddit上不少网友发表了自己的看法
这位网友认为中国应该支持这种创新进一步将计算机科学融入中国本土文化在编译源代码时可以将英语或任何其他语言作为编程语言之后将一系列字母或单词解析为有意义的符号然后将符号转换为机器代码汉字已经是有意义的符号了因此此番基于汉字的编程语言可以免去很多解析这是极好的
另一位网友也表示赞同他认为汉字具有含义它可以表达任何语言而且语法是固定且简单的因此特别适合编程
其实这不是第一次将中国文化融入代码文化中几百年前二进制的诞生竟也与易经有密不可分的关系二进制与易经
当我们在LCD屏幕上观看数字图像在MP3上聆听音乐时我们很难想象这背后的原理是一串二进制信号通常由0和1表示二进制数字系统0和1构成了所有现代计算系统的基础它用两个数字就重构了各种场景进行高速的运算
17世纪著名的数学家莱布尼茨Leibniz发明了这个重要的数字系统那么他又是如何创建二进制的呢据卫报专栏作家大卫沃尔特DavidWalter报道莱布尼茨的灵感来自有着五千年历史的中国哲学核心著作易经
易经是中国最古老的古典文字和占卜系统之一被认为比有记载的历史更早一些它的核心是八卦也可以延伸为六十四卦易经代表了现实的两极阴和阳就像1和0一样它们都是抽象概念在八卦中虚线代表阴实线代表阳这些线以三个为一组组合在一起产生了八个基本的卦然后又合在一起得到了六十四个卦每个卦都有自己的含义和解释沃尔特解释说六十四卦代表了人类生命本身的原型状态在易经的哲学中现实并不完全是真实的它更像是一个梦想或幻想现实源于阴和阳的二元性它们发挥出了无限的组合
因此从易经的观点来看在现实的梦境中任何事物都可以被表示成由计算机处理的二进制成分模型即由一串1和0组成的字符串 莱布尼茨深受易经中哲学思想的影响在他的二进制算数的解释1703这本书中写道卦是二进制数字系统通用的基础可以采用卦中阴阳符号表示二进制序列因此代表而代表以此类推 参考链接1