查看: 367|回复: 0

有内味儿了,东北话做编程语言,好使、招人稀罕

[复制链接]
发表于 2020-2-7 04:52:37 | 显示全部楼层 |阅读模式
  呆板之心报道,参与:思源、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 -*-」。
  如果你觉得编译成功,完美地问候了世界,那我们写一小段循环语句:
  1. # -*- coding: utf-8 -*-老王装仨。老王从 1 到 10 磨叽:  老王走两步。  唠唠:老王。磨叽完了!
复制代码
  直观明白起来就是:我们先给老王赋值为 3,然后循环十次,每次老王会加二。确实在运行中,我们也能得到期望的结果。不外值得注意的是,每次执行东北方言,它都会给出对应的 Python 代码,如下所示,「从 1 到 10 磨叽」展示的却是 range (1, 11),这大概是使 Python 更贴近方言语法。

  东北方言编程还有很多待我们挖掘的地方,也有很多更有意思的扩展。项目作者在项目中详细先容了各种词法与语法,其它开发者同样还提了很多有意思的建议,例如:
  1. 创建个新对象 - > 娶个新媳妇?break - > 完犊子了exit () - > 整没了Exception - > 整岔劈了type () - > 你瞅啥
复制代码
  大概等项目完善后,导入第三方库,用东北话写个神经网络也是阔以滴。
  东北话「规则」大全
  dongbei 固然好玩,但避免有些对我大东北方言整的不太明确的同学,作者也提供了一些词法,语法,语义的表明。
  东北话词法
  字符串常量:字符串常量的用法变化不大,比如依旧是需配对对应的双引号,这里理所应当配对的是中文全角双引号:
  1. ...“我是一个字符串”...
复制代码
  注释:注释依旧利用 #,在字符串常量外,从 # 号开始后的都会成为注释而被忽略掉:
  1. 唠唠:  # 我是一个注释。    “嘎哈#?”。  # 我还是一个注释。 
复制代码
  1. [/code][code]唠唠:“嘎哈#?”。
复制代码
  两者是一样一样滴。
  分词:而分词方面,为了适应广大中文语言利用者,作者将其设定为加不加空格或换行都一样。要知道在西方各语言中,空格对分词的意义非常大,每每会导致整个词组或语句所表达的核心意思完全不同。下面我们来看看示例:
  1. 唠  唠    :      “嘎哈?”        。
复制代码
  1. 唠唠:“嘎哈?”。
复制代码
  两者也是一样一样滴,没有任何区别。
  名字:在 dongbei 的设定里,除了关键词、标点符号和常数,其余都是名字。「张三乘李四」会主动判断「乘」是关键词,「张三」「李四」是名字。如要避免这种环境,可以直接添加【】把一串字符标注为名字。
  如【张三乘李四】则会完全被判断一个名字,而不是再将「乘」当作关键词。这一点在之前的文言编程中是做不到的,我们在写文言语句时经常要避开采用关键词做变量名。
  常数:除了日常所用的阿拉伯数字所表现的十进制整数外,dongbei 同样可支持利用中文表达 0 - 10 的常数:
  1. 零一二三四五六七八九十
复制代码
  二也可以写成两或者俩。三也可以写成仨。「+」也可用中文「加」表现。
  东北话语法
  东北话词法承接厚重的中国文化,我们怎么用着舒服就怎么定义。而到了语法,一方面需要有对应的 Python 语句,另一方面也要保留原汁原味的东北话语法。dongbei 程序是通过多个语句组成,每一个语句通过句号「。」分隔。项目作者表现,为了表达开发者炽热的情感,结尾的句号也可以等价替代为感叹号「!」。
  项目作者在 README 文件中描述的语法非常详细,但是我们感觉直接看示例更加便捷。要是在写东北话代码时遇到了题目,那时再具体看看 README 中的语法也是不错的选择。
  具体而言,我们可以从如下 8 个方面了解整体语法环境,这也是项目作者预备的「dongbei 语言考试小抄」。
  1. 变量
  1. 老张是活雷锋。  # 定义变量。初始值:啥也不是。老张装二。  # 老张 = 2削老张。  # 老张 = 啥也不是老王是活雷锋。老王装仨。  # 老王 = 3老张装老王。  # 引用变量。老张 = 3
复制代码
  2. 运算
  1. 老张走走。  # 老张 += 1老张走两步。  # 老张 += 2老张退退。  # 老张 -= 1老张推三步。  # 老张 -= 3老张装老王加二。  # 老张 = 老王 + 2老张装(老张减三)除以五乘老王。  # 老张 = (老张 - 3)/5*老王
复制代码
  3. 比力
  1. 老王比 5 大7 加二比老刘小老张跟老王一样一样的老李跟 250 不是一样一样的
复制代码
  4. 打印
  1. 唠唠:“唉呀妈呀”。  # 打印字符串常量。唠唠:老王。  # 打印变量的值。唠唠:老王比老张大。  # 打印表达式的值。唠唠:“老王是”、老王。  # 打印两个表达式的并置。
复制代码
  5. 条件
  1. 寻思:老王比老张大?要行咧就唠唠:“老王!”。要不行咧就唠唠:“老张!”。
复制代码
  6. 循环
  1. 老王从 1 到 10 磨叽:  唠唠:老王。磨叽完了!
复制代码
  7. 组合
  1. 寻思:老王比老张大?要行咧就开整:  唠唠:“老王!”。  唠唠:“你好美!”。整完了。
复制代码
  8. 套路
  1. 【阶乘】(那啥)咋整:  # 定义套路阶乘,有一个参数那啥。  寻思:那啥比一小? # 需要自推吗?  要行咧就滚犊子吧一。  # 返回值1。  要不行咧就滚犊子吧那啥乘整【阶乘】(那啥减一)。  # 需要。返回自推结果。整完了。  # 定义结束。唠唠:整【阶乘】(五)!  # 利用套路
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?用户注册

x

相关技术服务需求,请联系管理员和客服QQ:2753533861或QQ:619920289
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

帖子推荐:
客服咨询

QQ:2753533861

服务时间 9:00-22:00

快速回复 返回顶部 返回列表