世界上第一个文言文编程语言诞生,创造它的是一个大学生

开发 前端
尽管文言编程语言诞生只有一个月,但已经吸引了不少人用它来写程序。据 Huang 介绍,目前已经有数十个用文言编程语言写的程序,其中一大半都是由其他人编写的。其中很多程序都是基于中国古代的数学著作,比如三国时代数学家的圆周率计算方法,甚至还有《易经》的算命算法。
  • 夫唐、虞之世,結繩而足治,屈指而足算。是時豈料百代之後,計算機械之巧,精於公輸之木鳶,善於武侯之流馬;程式語言之多,繁若《天官》之星宿,奇勝《山經》之走獸。鼠、蟹、鑽、魚,或以速稱……

这不是「请朗读并背诵全文」系列,而是一个 GitHub 一个代码项目的序言,为什么要用文言文?因为这就是一个用文言文编程的项目。

这套编程语言叫做「文言编程语言(wenyan-lang)」是卡内基梅隆大学(CMU)一个中国留学生 Lingdong Huang 在去年创建的,也曾在网上引起热议。

[[314049]]
▲ Lingdong Huang

 

而在上个月, Huang 利用毕业前的最后一周的时间,完成了这套编程语言的核心功能,世界上首个用文言文的编程语言正式诞生。

尽管文言编程语言诞生只有一个月,但已经吸引了不少人用它来写程序。据 Huang 介绍,目前已经有数十个用文言编程语言写的程序,其中一大半都是由其他人编写的。其中很多程序都是基于中国古代的数学著作,比如三国时代数学家的圆周率计算方法,甚至还有《易经》的算命算法。

 

▲图片来自:知乎

 

那到底是怎么用文言文来编程的呢?这并不是将英文字符转换为文言文这么简单,而是要用自然语言处理(NLP)技术,将文言编程语言编译成编译成 JavaScript,Python 和 Ruby 等编程语言。

比如编程界经典的代码「Helloworld」,如果用文言编程语言是这样写的:

  • 吾有一數。曰三。名之曰「甲」。
  • 為是「甲」遍。
  • 吾有一言。曰「「問天地好在。」」。書之。
  • 云云。

如果将这段代码转换成 JavaScript 语言,是这样的:

 

  1. var n = 3; 
  2. for (var i = 0; i < n; i++) { 
  3. console.log(“ 問天地好在。”); 

当中的原理不在这里赘述,如果想了解更多文言编程的技巧,可以关注这个项目在 GitHub 的页面,当然如果你已经有一定编程基础,也可以尝试编程一些更加复杂的程序,在知乎上就有网友用文言文编写割圆法算圆周率的程序,而在 Huang 的个人主站上,还展示了不少更加复杂的文言编程案例,比如曼德勃罗集和考拉兹猜想。

为什么 Huang 要创造一套使用文言文的编程语言,其实在 GitHub 项目上的序言已经说出了答案,这段序的大意是,如今的计算机十分精妙,编程语言数量众多,但过去从未有人尝试用文言文来编程,他认为这也是传承文脉、保护文心的一种方式。

此外 Huang 还开发了一个「古文代码生成器」,可以将枯燥的文言文代码转换为一本古书的页面,在视觉上更有古典的气息。

Huang 在去年 12 月已经在卡内基梅隆大学(CMU)获得了计算机科学与艺术学位,他除了文言编程语言,他还曾用计算机程序生成了一幅中国山水画,还参与开发了第一个由人工智能合成的昆曲视频。

[[314050]]

Huang 目前正在用文言文编写文言编程的入门指南,目的是让更多完全没有编程经验的人使用文言编程语言,目前已经完成了 40%。

在接受媒体采访时,Huang 表示自己对于文言文十分着迷,在读大学之前就阅读了大量文言文书籍,现在他正在读的是《淮南子》,而这本书里有一句话:

昔者苍颉作书,而天雨粟、鬼夜哭。

这句话讲的仓颉造字,惊天地泣鬼神的故事。文字是世界上最伟大的发明之一,从此历史得以记载,知识可以传播。而在这个互联网时代,组成整个庞大数字世界的,则是一行行代码。用文言文来编程,确实也给古代文字的传承找到了一条新路。

责任编辑:未丽燕 来源: 爱范儿
相关推荐

2021-09-03 05:52:06

黑客安全网络凯文·米特尼克

2012-05-28 09:24:49

虚拟化

2015-07-13 14:15:19

SDN

2021-03-04 19:29:28

程序员Unix系统

2009-04-20 09:37:38

大学生面试内幕

2020-02-02 17:21:18

语言编程文言文

2013-01-30 13:40:24

量子路由器路由器技术路由产品

2010-07-15 16:21:22

编程语言

2022-06-20 09:08:26

大学生工作数据分析

2011-07-22 09:27:53

数据中心沙漠网络托管

2015-04-15 11:28:04

Apple Watch杀手应用

2013-12-09 14:36:20

2021-08-02 08:21:53

Python编程语言开发

2021-12-30 11:26:31

语言编译器脚本

2013-11-18 18:00:17

2018-05-29 15:31:31

JavaPython编程语言

2020-11-13 07:08:51

Spring Boot应用Spring

2022-04-13 08:47:27

大学生高校第一城大数据

2024-08-27 17:00:19

点赞
收藏

51CTO技术栈公众号