往期热门文章:

1、《往期精选优秀博文都在这里了!》

2、如何让自己少写点bug?

3、如何优雅地根治null值引起的Bug!

4、答应我,别再if/else走天下了可以吗?

5、Stack Overflow上188W+程序员都关注的问题:Java到底是值传递还是引用传递?

近日,GitHub 上一个叫做文言文(wenyan)的编程语言项目火了,该项目迅速引发了猿们的关注热议,其 Star数一路涨到过万,热度还在持续上涨。只需要在在线编辑器上,或下载一个编译器,就可以用文言文进行编程?

学语言嘛,当然先从 “Hello world” 开始,文言版:

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

没看懂?编译成 JavaScript:

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

运行:

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

再比如,一道求100以内素数的练习题,放到文言文里

用到一个名为“埃氏筛”的算法,完整文言文如下:

编译成JavaScript:

var 埃氏篩 = () => 0;
埃氏篩 = function(甲) {var 掩 = [];for (var _rand1 = 0; _rand1 < 甲; _rand1++) {掩.push(true);};var _ans1 = 甲 / 2;var 甲半 = _ans1;var 戊 = 2;while (true) {if (戊 == 甲半) {break;};var 戌 = 2;while (true) {if (戌 == 甲半) {break;};var _ans2 = 戊 * 戌;var 合 = _ans2;if (合 <= 甲) {掩[合 - 1] = false;} else {break;};var _ans3 = 1 + 戌;戌 = _ans3;};var _ans4 = 1 + 戊;戊 = _ans4;};var 諸素 = [];var 戊 = 2;while (true) {if (戊 == 掩.length) {break;};var _ans5 = 掩[戊 - 1];var 素耶 = _ans5;if (素耶) {諸素.push(戊);};var _ans6 = 1 + 戊;戊 = _ans6;};return 諸素
};
var _ans7 = 埃氏篩(100);
console.log(_ans7);

运行:

2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97

wenyan-lang 有哪些特性

> 可编译成 JS 或 Python;

> 图灵完备;

> 包括在线 IDE 和 编译器;

> 源码开源了

语法备忘单

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

变量

控制

数组(从 1 开始的)

渲染器

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

安装与使用

克隆此项目, (或者直接下载 ./build/wenyan.js 然后赋予它执行权限,在终端中输入 chmod +x wenyan.js)。 之后执行 ./build/wenyan.js 把源代码编译成为目标语言。如果执行此命令不带任何参数,则输出以下帮助信息。

Usage: wenyan [options] [input files]Options:
--eval    -e <string>  : Give a string instead of a file (default: `')
--exec    -x <boolean> : Execute output (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

作者何许人也

作者:Huang Lingdong 。其在线简历中透露是一名卡内基梅隆大学(CMU)的大四学生,将于 2020 年获得计算机科学学位。

精通的编程语言有:Python、 JS (& HTML & CSS)、Processing、C/C++、C#, MATLAB、Lua、SML 和  AppleScript。

此前,他曾在迪士尼研究院、 Antimodular 研究院和《纽约时报》实习,目前已经有将近 30 个项目。项目主题丰富多彩,比如用 emoji 做成的小游戏,使用用户提交的涂鸦做成的计算机动画,以及和本文一样对中国下手,把中国表意文字和部首做成可视化动画,等等,并给出了项目的源代码。

不说了 说多了

都是天赋

直接上传送门

项目代码:

https://github.com/LingDong-/wenyan-lang

项目主页:

http://wenyan-lang.lingdong.works/

线上IDE试玩:

http://wenyan-lang.lingdong.works/ide.html

个人主页:

https://lingdong.works/

往期热门文章:

1、《历史文章分类导读列表!精选优秀博文都在这里了!》

2、如何让自己少写点bug?

3、如何优雅地根治null值引起的Bug!

4、答应我,别再if/else走天下了可以吗?

5、Stack Overflow上188W+程序员都关注的问题:Java到底是值传递还是引用传递?

6、Dubbo必会的18个面试题!一网打尽!

7、可以提高千倍效率的Java代码小技巧

8、教你一键迁移数据库迁移!数据库上云、灾备、主从复制等 So Easy!

9、后端开发甩锅指南!

10、数据库上云、灾备切换、多云数据同步等问题!教你一键迁移数据!

牛逼的人,都已经开始用文言文写代码了!相关推荐

  1. python最适合做什么生意-面试了57位数据分析师,我发现牛逼的人都有这4个特质...

    原标题:面试了57位数据分析师,我发现牛逼的人都有这4个特质 现在的职场竞争越来越激烈,不学上一两门新技能,保持自己知识更新,很容易被年轻后辈超越.有些人选择学一门外语,有些人选择学习职场上为人处事的 ...

  2. 面试了57位数据分析师,我发现牛逼的人都有这4个特质

    现在的职场竞争越来越激烈,不学上一两门新技能,保持自己知识更新,很容易被年轻后辈超越.有些人选择学一门外语,有些人选择学习职场上为人处事的能力. 如果你的工作需要和数据打交道,相信我,Python一定 ...

  3. 牛逼的人都是相似的,而苦逼的人则各有各的苦逼

    兰州自来水污染事件再次将中国的"饮用水安全问题"中国的饮用水标准究竟如何?我们喝的水究竟是否安全?谁来保障我们的饮水安全?顺着这几年公众关于自来水的讨论,我们梳理中国的饮用水标准和 ...

  4. 真正牛逼的人,都是极简主义者!!

    写在前面 一个真正牛逼的人,都是极简主义者:一款真正伟大的产品,都是极简主义的产品.一个人只要简单的专注于自己的领域,在思想上删繁就简,成为某个领域和某个行业的专家是很顺其自然的事情.一款产品,立足于 ...

  5. DayDayUp:2019.01.24新东方年会—俞敏洪点赞并奖励吐槽神曲《释放自我》12万元!—附全歌词(牛逼的人在哪里都不会彷徨)

    DayDayUp:2019.01.24新东方年会-俞敏洪点赞并奖励员工的吐槽神曲<释放自我>12万元!-附全歌词 目录 新东方年会神曲亮了 官微回应:放手去做,未来可期! 各家吃瓜 < ...

  6. 计算广告 pdf_他创业20年死磕PDF一项业务,如今上市身家76亿:所有的突然牛逼,背后都是玩命死磕...

    关注 ▲粥左罗▲ 和百万互联网精英,一起向上生长 这是粥左罗的第 883 期分享 作者 l 夏未来 来源 l 粥左罗(ID:fangdushe520) 转载请联系授权(微信ID:zzlloveutoo ...

  7. 牛逼的人很早就开始牛逼了

    作者:拾遗君 来源:拾遗(ID:shiyi201633) "牛逼的人很早就开始牛逼了."这话很有道理.虽然有"大器晚成"一说,但罗马绝对不是一天建成的.能够&q ...

  8. 为什么技术越牛逼的人,越得不到提拔?

    作者| Mr.K   整理| Emma 来源| 技术领导力(ID:jishulingdaoli) 许多IT职场人,都有这样的困惑: "我技术这么牛逼,为什么领导不提拔我?" &qu ...

  9. 看了28岁华为员工的工资表才知道:牛逼的人注定会牛逼

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者丨小椰子 来源丨小椰子专栏(ID:xiaoyez ...

最新文章

  1. Ubuntu16.04下搭建开发环境及编译tiny4412 Android系统【转】
  2. 往事并不如烟@武汉 --- 和同事们一起'诈金花’
  3. iScreenLocker 3.1.8 安卓锁屏通知--苹果一样的体验
  4. SQL Server 导入bak备份出错
  5. Android 系统(156)----Android APP适配全面屏手机的技术要点
  6. ubuntu sun-java-jdk(zhuan)
  7. DIV+CSS如何让文字垂直居中
  8. linux硬盘只读脚本 zabbix,Zabbix如何设置脚本告警
  9. 储户诉银行虚假宣传 微众银行智能存款产品屡遭用户投诉
  10. java微信开发之--更换背景图片
  11. 【day22】java导出word文档(包含导出图片)
  12. 黑吃黑第四季/全集Banshee迅雷下载
  13. C语言高级部分总结,也是面试官会经常问的问题哦~
  14. 刚子扯谈:一个调皮小子也能鼓捣教育?
  15. 【最经典的79个】软件测试面试题(内含答案)提前备战“金九银十”
  16. QTabWidget的tabbar右侧背景色设置
  17. 具有黑马潜质的电影都有哪些特色?
  18. 万字,入门教学,js逆向实战,某易云评论,歌词,(附源代码)仅供学习使用。
  19. 区块链产业生态发展情况-中国区块链产业生态发展
  20. 高效阅读英语信息的方法

热门文章

  1. 教程 | 学好简笔画,再画动漫美少女!
  2. php 下载微信语音文件怎么打开软件,微信群讲课或语音讨论交流 如何把大家讲的微信语音合成一个音频文件mp3格式...
  3. 安装sql2000挂起导致无法继续安装问题
  4. PHP QRCODE 彩色二维码
  5. oracle数据库生成拼音码,Oracle中生成汉字拼音码的函数(转载)
  6. Android, 省市县三级联动
  7. PsbA蛋白定量研究丨PsbA|D1 protein of PSII
  8. [原创]Redis BUG系列(I)——SDS字符串的sdssplitlen函数实现顺序BUG,浪费了计算与内存资源
  9. 1个人·2星期·10万+下载的游戏
  10. 工科学生学计算机有什么好处,工科大学生就业最抢手 计算机专业市场现饱和...