马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
中国工程师Lingdong Huang开发出称为“文言”(Wenyan-Lang)的程序语言,这是全世界第一个用文言文编写的程序语言,采用繁体中文文字以及古典中文语法系统编写...
无论是Java、Python还是C++,不同的程序语言即使形式和规则各异,但几乎都使用英文作为关键词(如if、else、return、for)编写。然而,根据IDC估计,在全球约2,230万名软件开发人员中,有将近一半来自亚太地区,仅中国和印度就占全球开发人员总数的三分之一。
那么,你是否想过用中文来编写程序?
去年刚从美国卡内基梅隆大学(Carnegie Mellon University)计算机科学系毕业的Lingdong Huang最近开发出称为“文言”(Wenyan-Lang) 的程序语言,相较于主要以英文编写的方式,新的“文言文程序语言”完全采用繁体中文文字以及古典中文语法系统编写。
据《IEEE Spectrum》报导,这是全世界第一个用文言文编写的程序语言,自去年12月发表至今还不到2个月的时间,全球开发人员已经用它编写了数十种程序,其中甚至包括以《易经》中的算命算法编写的程序。
开发这套“文言文程序语言”的Lingdong Huang之前设计过由计算机产生的中国山水画,也曾经协助创作至今唯一以人工智能(AI)生成的中国戏曲。去年12月,他从Carnegie Mellon University毕业,取得了计算机科学和艺术学位。
Lingdong Huang
Huang大约从一年前开始有了编写文言文程序语言的想法,终于在毕业前夕完成了这套新语言的核心部份,包括一款影像渲染器(renderer),能以像古代文言文书页的方式显示程序,让编程充满古典文学气息。
Huang说自己也曾经用阅读更多古典文学书籍当作借口而暂缓这个想法,最后决定必须付诸实践。“那是学期末的最后一周,课程都结束了。所以我可以利用许多空闲时间来开发『文言』(Wenyan-Lang),后来终于在3~4天内完成了核心功能。”
出生于中国上海的Lingdong Huang自幼学习中国古典文学,因而“迷上了文言文,青少年时期还阅读了大量的古文书籍。”他说自己最近在看的古籍是《淮南子》。
Huang并非简单地用中文汉字直接取代英文字符,而是使用自然语言处理(NLP)方式,将文言文语法转换为JavaScript、Python和Ruby。他并在GitHub上开放其Wenyan-Lang语言,短时间内就获得了惊人的好评,目前并累积数十种以Wenyan-Lang编写的程序了,一半以上来自全球各地开发人员的贡献。
其中,有许多还采用了古代中国数学典籍中的数学算法。例如,pi_liuhui.wy重现三国时代数学家刘徽如何利用割圆术计算圆周率;pi. Crt.wy是古中国的余数定理;Pascal_triangle.wy计算帕斯卡三角形(Pascal’s Triangle;据称中国典籍在Pascal发明之前记载);divination.wy甚至以程序重现《易经》中描述的占卜方式。
以“文言”(Wenyan-Lang)为《易经》中算命算法编写的程序。(来源:IEEE Spectrum)
Huang说自己最喜欢的文言文编写程序之一是‘divination.wy’。它是《易经》中介绍的算命算法。他说自己本来就想开发,但有更热情的其他开发人员抢先了一步。
开发中文程序语言的挑战之一在于如何不使用空格而将句子分解成单词。但如何“断句”就是读者的工作了。以英文程序代码为例,他说,如果读者看到‘pancakebatter’,通常会依据个人先前经验,理解为‘pancake batter’而非‘pan cake batter’。
但要断句文言文有一定的难度。为了克服这一挑战,Huang透过定义文言文程序代码的关键词长度,为程序人员解密所需要的内容。
随着“文言”程序语言的成功开发,许多华人开始注意到文言文也能编写程序语言,Huang的生活也因此有了转变,他说:“在此之前,我主要按照自己的步调做事,而今合作变得更重要了。”除了与开发者社群共同编写程序代码,现在他还必须检查并评估其他人的程序代码,并作出反馈和解释。但Huang认为自己不仅享受这样的体验,还庆幸加入了一支很赞的编程团队。
Wenyan-lang vs. JavaScript编程窗口(来源:IEEE Spectrum)
目前,Wenyan-Lang开发人员正致力于研究Python、Ruby、JavaScript及C++的编译程序、工具库和GUI,以及可供编写和共享程序代码的站点,目的在于为文言文程序代码建立开发社群,延续文言文的生命力。Huang并专注于为缺乏编程经验的新手撰写文言文编程入门指南,如今也有40%的完成度了。 |