有内味儿了,东北话做编程语言,好使、招人稀罕
点击上方“涛哥聊Python”,选择“星标”公众号
重磅干货,第一时间送达
机器之心报道
参与:思源、Jamin
如果东北话是编程语言中使用的主要语言,编程是否更招人稀罕?学习编程是否会更欢乐?
前段时间,机器之心刚介绍过以文言文为编程语言的 CMU 本科生项目。近日,圈内又惊现以东北方言词汇为基本关键字的编程语言(dongbei),此项目一出便有天雷勾地火,宝塔镇河妖之势。作者是一位 Google 的高级软件工程师/技术主管,同时也是 Google C++测试框架 googletest 以及 googlemock 的原作者。
项目地址:https://github.com/zhanyong-wan/dongbei
dongbei 是个啥项目?
简而言之,它是一门东北方言词汇为基本关键字的编程语言。作者在项目开篇便强调了此编程需要「以人为本」:
这玩意儿可是填补了世界方言编程地图上的一大片儿空地啊!这么说吧,谁要是看了 dongbei 程序能忍住了不笑,我敬他是纯爷们儿!
那它有啥特点咧?多了去了:
简单啊!小学文化程度就行。您能看懂春晚不?能?那就没问题。
好读啊!看着看着包您不由自主地念出声儿来。
开心啊!呃,做人嘛,最重要的是要开心。
开源啊!不但不要钱,而且不要脸 -- 随时随地欢迎东北话高手打脸指正。
dongbei 编程语言的开发采用了业界领先的 TDD(TreeNewBee-Driven Development)方式。具体地说,就是每个功能都是先把文案写好,八字没一撇牛皮就吹起来了,然后根据牛皮写测试案例,最后再实现功能让牛皮不被吹破。这样做有两大好处:第一每个功能都是有的放矢,不值得 tree new bee 的功能一概没有。第二确保了每个功能都有文案负责吹嘘,开发者的辛劳绝对不会被埋没。
不扯犊子了。翠花,上酸菜~~~
没事儿,跑两圈
项目是用来跑的,是骡子是马需要拉出来溜溜。用东北话写代码,看起来就比较有意思,因此我们也把这个项目拉到电脑上溜一溜。首先,只要你的系统有 Python 3,那就甭麻烦了,直接下载 GitHub 项目,跑 src/dongbei.py 就成。
如下短视频展示了下载及测试东北方言编程的简单过程,项目实测很好用:
我们用着非常顺滑,只需要保证开发环境有 Python 3 就行了。在上面的短视频中,我们测试了东北方言中的「Hello World」,即输出「唉呀,这嘎哒真他妈那啥!」。这里唯一需要注意的是东北方言代码文件需要确保字符编码方式为 UTF-8,即在代码文件最上一行加上「# -*- coding: utf-8 -*-」。
如果你觉得编译成功,完美地问候了世界,那我们写一小段循环语句:
# -*- coding: utf-8 -*-老王装仨。
老王从1到10磨叽:老王走两步。唠唠:老王。
磨叽完了!
直观理解起来就是:我们先给老王赋值为 3,然后循环十次,每次老王会加二。确实在运行中,我们也能得到期望的结果。不过值得注意的是,每次执行东北方言,它都会给出对应的 Python 代码,如下所示,「从 1 到 10 磨叽」展示的却是 range(1, 11),这也许是使 Python 更贴近方言语法。
东北方言编程还有很多待我们挖掘的地方,也有很多更有意思的扩展。项目作者在项目中详细介绍了各种词法与语法,其它开发者同样还提了很多有意思的建议,例如:
创建个新对象 - > 娶个新媳妇?
break - > 完犊子了
exit() - > 整没了
Exception - > 整岔劈了
type() - > 你瞅啥
也许等项目完善后,导入第三方库,用东北话写个神经网络也是阔以滴。
东北话「规则」大全
dongbei 固然好玩,但避免有些对我大东北方言整的不太明白的同学,作者也提供了一些词法,语法,语义的解释。
东北话词法
字符串常量:字符串常量的用法变化不大,比如依旧是需配对对应的双引号,这里理所应当配对的是中文全角双引号:
...“我是一个字符串”...
注释:注释依旧使用 #,在字符串常量外,从 # 号开始后的都会成为注释而被忽略掉:
唠唠: # 我是一个注释。“嘎哈#?”。 # 我还是一个注释。
唠唠:“嘎哈#?”。
两者是一样一样滴。
分词:而分词方面,为了适应广大中文语言使用者,作者将其设定为加不加空格或换行都一样。要知道在西方各语言中,空格对分词的意义非常大,往往会导致整个词组或语句所表达的核心意思完全不同。下面我们来看看示例:
唠唠:“嘎哈?”。
唠唠:“嘎哈?”。
两者也是一样一样滴,没有任何区别。
名字:在 dongbei 的设定里,除了关键词、标点符号和常数,其余都是名字。「张三乘李四」会自动判定「乘」是关键词,「张三」「李四」是名字。如要避免这种情况,可以直接添加【】把一串字符标注为名字。
如【张三乘李四】则会完全被判定一个名字,而不是再将「乘」当作关键词。这一点在之前的文言编程中是做不到的,我们在写文言语句时经常要避开采用关键词做变量名。
常数:除了日常所用的阿拉伯数字所表示的十进制整数外,dongbei 同样可支持使用中文表达 0 - 10 的常数:
零一二三四五六七八九十
二也可以写成两或者俩。三也可以写成仨。「+」也可用中文「加」表示。
东北话语法
东北话词法承接厚重的中国文化,我们怎么用着舒服就怎么定义。而到了语法,一方面需要有对应的 Python 语句,另一方面也要保留原汁原味的东北话语法。dongbei 程序是通过多个语句组成,每一个语句通过句号「。」分隔。项目作者表示,为了表达开发者炽热的情感,结尾的句号也可以等价替代为感叹号「!」。
项目作者在 README 文件中描述的语法非常详细,但是我们感觉直接看示例更加便捷。要是在写东北话代码时遇到了问题,那时再具体看看 README 中的语法也是不错的选择。
具体而言,我们可以从如下 8 个方面了解整体语法情况,这也是项目作者准备的「dongbei 语言考试小抄」。
1. 变量
老张是活雷锋。 # 定义变量。初始值:啥也不是。
老张装二。 # 老张 = 2
削老张。 # 老张 = 啥也不是
老王是活雷锋。
老王装仨。 # 老王 = 3
老张装老王。 # 引用变量。老张 = 3
2. 运算
老张走走。 # 老张 += 1
老张走两步。 # 老张 += 2
老张退退。 # 老张 -= 1
老张推三步。 # 老张 -= 3
老张装老王加二。 # 老张 = 老王 + 2
老张装(老张减三)除以五乘老王。 # 老张 = (老张 - 3)/5*老王
3. 比较
老王比5大
7加二比老刘小
老张跟老王一样一样的
老李跟250不是一样一样的
老刘啥也不是
4. 打印
唠唠:“唉呀妈呀”。 # 打印字符串常量。
唠唠:老王。 # 打印变量的值。
唠唠:老王比老张大。 # 打印表达式的值。
唠唠:“老王是”、老王。 # 打印两个表达式的并置。
5. 条件
寻思:老王比老张大?
要行咧就唠唠:“老王!”。
要不行咧就唠唠:“老张!”。
6. 循环
老王从1到10磨叽:唠唠:老王。
磨叽完了!
7. 组合
寻思:老王比老张大?
要行咧就开整:唠唠:“老王!”。唠唠:“你好美!”。
整完了。
8. 套路
【阶乘】(那啥)咋整: # 定义套路 阶乘,有一个参数 那啥。寻思:那啥比一小? # 需要自推吗?要行咧就 滚犊子吧 一。 # 返回值1。要不行咧就 滚犊子吧 那啥乘整【阶乘】(那啥减一)。 # 需要。返回自推结果。
整完了。 # 定义结束。唠唠:整【阶乘】(五)! # 使用套路
你一定要知道,关于https的五大误区关于Python列表操作,最常见的10个问题自动编写Python程序的神器,Python 之父都发声力挺!
有内味儿了,东北话做编程语言,好使、招人稀罕相关推荐
- 《柳叶刀》文章用AI寻找新冠肺炎潜在有效药物;东北话做编程语言招人稀罕 ...
行 业 要 闻 Industry News ▲▲▲ 01 GitHub 中文趋势榜第一! nCovMemory 项目的中文名称是「2020新冠肺炎记忆:报道.非虚构与个人叙述」,创立该项目的目的是 ...
- GitHub 牛逼项目:用东北话来编程,就问你怕不怕!
公众号关注 "GitHubDaily" 设为 "星标",每天带你逛 GitHub! 如果东北话是编程语言中使用的主要语言,编程是否更招人稀罕?学习编程是否会更欢 ...
- 这味儿上头,前有文言文,又来东北话,中文编程玩得挺得劲!
点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 转自:大数据文摘 全宇宙都知道,东北话容易上头,不知道用东北话编程,会不会上头. Go ...
- python还能火多久 搜狐_老像样了:基于Python的东北话编程语言,火了
来自:开源最前线(ID:OpenSourceTop) 项目地址:https://github.com/zhanyong-wan/dongbei 还记得12月份刷爆朋友圈的那个文言文编程语言么? 这个项 ...
- 一个丧心病狂的Github项目:东北话编程,大写的服!
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:开源最前线(ID:OpenSourceTop) 还记得12月 ...
- 这嘎哒真TM那啥!Python版东北话编程火爆网络
还记得那个刷爆朋友圈的那个文言文编程语言么? 这个项目是一位名为Huang Lingdong的大四学生创建的,当时,就连中科院计算所研究员.机器翻译领域知名专家刘群老师都赞叹道: 后生可畏 近日,Gi ...
- 东北话编程,大写的服!这是一个丧心病狂的Github项目!
程序员的成长之路 互联网/程序员/成长/职场 关注 阅读本文大概需要 4.2 分钟. 来自:开源最前线(ID:OpenSourceTop) 项目地址:https://github.com/zhanyo ...
- 编程n的阶乘使用while语句_谷歌工程师新作,东北话编程
作者 | AI前线小组如果说用文言文编程还是有些困难,那么,东北话呢? 项目介绍 文言文编程火了,但使用它需要有一定的古文功底,因此它对大部分开发者来说并不够友好.近日,一位谷歌的工程师琢磨出来一个更 ...
- 东北人,请你讲东北话
现在在东北的好多城市里,已经听不到真正的东北话了,就连赵本山大叔的东北话也逐渐变味儿.为什么会这样?就是因为很多人觉得东北话很土.我觉得,如果是一个外地人觉得东北话土也就算了,可是,咱们东北老乡不应该 ...
最新文章
- 分水岭算法分割图像的原理概述及OpenCV代码实现
- Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled
- SqueezeNet
- java web前后台交互_前后端交互(javaweb)
- 洛谷P1807 最长路_NOI导刊2010提高(07) 求有向无环图的 最长路 图论
- 贝店与谷歌、阿里巴巴同台亮相电博会,获市领导点赞
- 管理系统项目-简历描述篇
- 计算机桌面任务栏过宽怎么处理,任务栏变宽了怎么办 还原变宽任务栏的方法【图文教程】...
- (二)java项目中的文档转换案例实战——PDF转换为JPG图片压缩包
- windows下jenkins批处理执行git pull失败的原因
- 分配甲、乙、丙、丁四人去完成五项任务,每人完成各项任务的时间如下表所示
- Vfed大橙子模板 苹果cms自动采集 的方法
- 网站如何统计访问人数?51LA如何安装使用?
- 使用mondo制作备份linux的iso文件
- 「BIND9」- DLZ(Dynamically Loadable Zones) @20210212
- 计算机网络6 应用层
- Broadcasting
- 全景拍摄中的全景接片是什么?怎么操作?
- DB-Day2 输入生日的月和日,计算出你下一个生日还有多少天
- jQuery的模糊匹配