大四学生发明文言文编程语言,设计思路清奇

news/2024/10/17 20:30:00/


        

整理 | 夕颜

出品 | AI科技大本营(ID:rgznai100)

【导读】近日,GitHub 上一个叫做文言文(wenyan)的编程语言项目火了,就在本文成文期间,GitHub 上的 Star 数已经从 2200 涨到 2800,并还有继续上涨的趋势。只需要在在线编辑器上,或下载一个编译器,就可以用文言文进行编程。让人惊讶的是,这个涉及思路清奇的项目竟然出自卡内基梅隆大学的一名大四学生之手,不禁让人感叹后生可畏。

文言文(wenyan)是一种深奥的编程语言,遵循中国古典文学的语法和文风。据介绍,这种编程语言文字仅包含繁体中文字符和“''引号,因此古代中国人绝对看得懂。是不是觉得很新奇?那不妨动动你的小手尝试一下吧,可以在在线编辑器上试用,也可以下载编译器或查看源代码。

 

在线编辑器:http://wenyan-lang.lingdong.works/ide.html

下载编译器:https://github.com/LingDong-/wenyan-lang#installation

开源代码:https://github.com/LingDong-/wenyan-lang

     

        

这个项目受到了大家很多好评,有人说项目的设计思路奇特,有人表示在学编程的同时还顺带学习了文言文,一箭双雕。

 

那么,wenyan 究竟是怎么玩的?我们来跟着 GitHub 学习一下。

语法

正如如名,文言文(wenyan)遵循古文言文的语法:

             

编辑

wenyan 目前可编译为 JavaScript 或 Python,将来可能会支持更多语言(比如 C)。上面的“ Hello World”示例(或任何编辑)将转换为:

 


var n = 3;
for (var i = 0; i < n; i++) {console.log("問天地好在");
}

 

输出结果:


問天地好在
問天地好在
問天地好在

标点和换行符是完全可选的(就像古文言文一样),因此上面的代码等效于:

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

上面的代码是可编辑的,你可以自定义问候语并点击▶︎!

 

另一个稍微复杂一点的示例,使用埃及筛查找素数:

 

注:埃拉托斯特尼筛法,简称埃氏筛或爱氏筛,是一种由希腊数学家埃拉托斯特尼所提出的一种简单检定素数的算法。要得到自然数n以内的全部素数,必须把不大于根号n的所有素数的倍数剔除,剩下的就是素数。来源 | 百度百科

               

你可以在在线 IDE 上找到更多示例,例如通用图灵机、曼德勃罗分形图、汉诺塔等。

特征

  • NLP遵循古文言文语法

  • 编译为JavaScript或Python

  • 图灵完备(https://github.com/LingDong-/wenyan-lang/blob/master/examples/turing.wy 在可计算性理论里,如果一系列操作数据的规则(如指令集、编程语言、细胞自动机)可以用来模拟单带图灵机,那么它是图灵完备的。)

  • 在线IDE http://wenyan-lang.lingdong.works/ide.html

  • 入门示例 https://github.com/LingDong-/wenyan-lang/tree/master/examples

安装

编译器

克隆存储库(或下载 ./build/wenyan.js 并设置其可执行位 chmod +x wenyan.js)。然后运行 ./build/wenyan.js,把你的 wenyan 源代码编译为目标语言。调用不带参数的编译器将显示帮助消息,如下所示:


Usage: wenyan [options] [input files]Options:
--eval    -e <string>  : Give a string instead of a file (default: `')
--exec    -x <boolean> : Execute ouput (default: `false')
--inspect -i <boolean> : Interactive REPL (default: `false')
--lang    -l <string>  : Language: js/py (default: `js')
--log        <string>  : Log file (default: `/dev/null')
--output  -o <string>  : Output file (default: `/dev/stdout')
--roman   -r <boolean> : Romanize identifiers (default: `true')

首先尝试构建包含的示例,例如:

./build/wenyan.js examples/helloworld.wy -o helloworld.js
 

构建平台特定的二进制文件

  • 克隆仓库

  • npm install

  • npm run make_cmdline

macOS、Windows和Linux二进制文件将位于./build文件夹中。

语法备忘单

该项目团队正在加紧构建与上下文无关的语法描述。同时,你还可以查看以下备忘单或src/parser.js 了解该项目语法。

变量

              

管理

              

数学

             

容器

数组是1索引的。

               

特征

              

渲染器

src / render.js 可以将 wenyan 程序渲染为有历史感的印刷书籍页面图像。它还可以将生成的SVG 文件解析回原始程序。下面是用 wenyan 编写的通用图灵机的渲染图:

               

出自CMU大四学生之手

值得注意的是,这个思路清奇的设计竟然出自一名卡内基梅隆大学的大四学生 Ling Dong Huang。

 

在作者简介中,Ling Dong Huang 表示自己将于 2020 年获得计算机科学学位,此前,他曾在迪士尼研究院、 Antimodular 研究院和《纽约时报》实习,自己也做了项目网站 https://lingdong.works/。目前已经有将近 30 个项目。项目主题丰富多彩,比如用 emoji 做成的小游戏,使用用户提交的涂鸦做成的计算机动画,以及和本文一样对中国下手,把中国表意文字和部首做成可视化动画,等等,并给出了项目的源代码。

                                 

此外,他的项目还包括:

  • 隐士——互动式程序生成景观(CMU 2015 年秋季 CS 15-112 学期项目竞赛优胜者)

    https://github.com/LingDong-/Hermit

 

  • 普通人脸模拟器——本地2人人脸模拟。(观看次数 180 + K,在 itch.io 上下载 60 + K)

    https://lingdonh.itch.io/normal-human-face-simulator

 

  • {山,水} **——程序无限生成的中国山水画。(2018 年 5 月在卡耐基梅隆大学展出)

    https://github.com/LingDong-/shan-shui-inf

  • 错山记(Legend of Wrong Mountain)——一部完全由机器使用程序生成和机器学习技术编写、创作和表演的中国戏曲。(论文已被  2 0 1 8 NIPS workshop 接收)

    https://www.youtube.com/watch? v = QPdb28h4qjc我的在线投资组合中的更多项目(https://lingdong.works)

 

不得不说,作者的脑洞不小,不少项目的创意很是新奇。

 

这个项目你觉得怎么样?如果你发现了更多好玩有趣的项目,欢迎留言和我们分享,AI科技大本营将进行追踪报道,让更多人了解项目细节~

(*本文为AI科技大本营整理文章,转载微信联系 1092722531)

推荐阅读

  • 超模脸、网红脸、萌娃脸...换头像不重样?我开源了5款人脸生成器

  • 解读 | 2019年10篇计算机视觉精选论文(上)

  • 高通:2 亿像素手机 2020 年诞生!

  • 再现暴力裁员!患病员工被关小黑屋,摄像头监控,工作量超其他人!

  • 图灵奖得主Bengio:深度学习不会被取代,我想让AI会推理、计划和想象

  • VS Code 成主宰、Vue 备受热捧!2019 前端开发趋势必读

  • 我在华为做外包的真实经历

  • 数据中心“容灾”和“备份”的区别

  • 2019 区块链大事记 | Libra 横空出世,莱特币减产,美国放行 Bakkt……这一年太精彩!

  • 你点的每个“在看”,我都认真当成了AI


http://www.ppmy.cn/news/581983.html

相关文章

华为云文字识别服务关键技术、能力和产品落地需要注意的事宜(OCR系列二)

【摘要】 本文为OCR文字识别系列的第二篇。首先简单的介绍一下华为云文字识别服务&#xff0c;随后重点介绍产品的关键技术、关键能力&#xff0c;产品的优化之路&#xff0c;做产品需要注意到问题以及踩过的坑。其中很多点是整个人工智能或者以数据为驱动的产品都需要注意的。…

鸿蒙宴文言知识积累,文言文鸿门宴知识点汇总

文言文鸿门宴知识点汇总 一、掌握下列重点词语 1、飨&#xff1a;旦日飨士卒&#xff0c;为击破沛公军(用酒食款待&#xff0c;犒劳) 2、籍&#xff1a;籍史民&#xff0c;封府库&#xff0c;而待将军(登记) 3、续&#xff1a;此亡秦之续耳(后继者) 4、当&#xff1a;料大王士卒…

一位厦门大学CV硕士毕业生文言文致谢!畅聊三年求学路

来源&#xff1a;机器之心 厦门大学人工智能方向硕士毕业生李慧霞的一篇文言文式致谢彰显了现当代携科学素养的AI研究者的风范。 论文致谢仅是一篇论文中的一部分内容&#xff0c;向自己导师、学校、家人以及朋友表达感激之情。而当论文致谢被赋予某种情感或信仰时&#xff0c;…

tcl是华为鸿蒙受益者吗,在三星华为都很成功的杨柘 为什么却栽在了TCL?

原标题&#xff1a;在三星华为都很成功的杨柘 为什么却栽在了TCL&#xff1f; 杨柘终究还是下课了。2月17日TCL官方证实&#xff0c;TCL通讯全球首席运营官兼中国营销本部总裁杨柘正式离职。而早在去年10月&#xff0c;TCL通讯中国营销本部就已经做过一次规模不小的裁员&#x…

文言文也能编程?此诚年度最骚语言也

近日&#xff0c;GitHub 上一个叫做文言文&#xff08;wenyan&#xff09;的编程语言项目火了&#xff0c;该项目迅速引发了猿们的关注热议&#xff0c;其 Star数一路涨到过万&#xff0c;热度还在持续上涨。只需要在在线编辑器上&#xff0c;或下载一个编译器&#xff0c;就可…

codemirror6 制作markdown编辑器(源码模式)

codemirror 制作markdown源码模式编辑器 安装 安装codemirror和codemirror的markdown语言扩展 npm install codemirror npm install codemirror/lang-markdownvar code "5b23b2ed-bdce-4088-b229-1c092761c49b"在vue中使用 <template><div ref"do…

Synchronized锁

概览 锁的实现基于对象头重的MarkWord&#xff0c;分为 无锁 -> 偏向锁 -> 轻量锁 -> 重量锁 四个状态 状态转换 锁的获取与释放 模型&#xff1a; Markword&#xff1a;指向Monitor的指针Monitor&#xff1a;_cxq&#xff0c;_EntryList,_WaitSet,owner,_recurs…

低代码平台究竟是什么

近几年&#xff0c;企业面临数字化转型带来的压力&#xff0c;为了快速适应行业变化和赶超竞争对手&#xff0c;在高级技术人才缺乏的情况下&#xff0c;低代码开发获得了企业的青睐。尤其对于企业数字化转型&#xff0c;在短时间内能完成信息化系统&#xff0c;低代码平台的快…