还记得那个刷爆朋友圈的那个文言文编程语言么?

这个项目是一位名为Huang Lingdong的大四学生创建的,当时,就连中科院计算所研究员、机器翻译领域知名专家刘群老师都赞叹道: 后生可畏

近日,Github上一个名叫dongbei的开源编程项目,再一次引起大家关注,这是一个以东北方言词汇为基本关键字的编程语言——dongbei。

该项目作者是一位 Google 的高级软件工程师/技术主管,同时也是 Google C++测试框架 googletest 以及 googlemock 的原作者。

根据项目作者介绍:

dongbei可是填补了世界方言编程地图上的一大片儿空地啊!这么说吧,谁要是看了 dongbei 程序能憋住了不笑,我敬他是纯爷们儿!

那它有啥特点咧?多了去了:

简单啊!小学文化程度就行。您能看懂春晚不?能?那就没问题。

好读啊!看着看着包您不由自主地念出声儿来。

开心啊!呃,做人嘛,最重要的是要开心。

开源啊!不但不要钱,而且不要脸 -- 随时随地欢迎东北话高手打脸指正。

总而言之,dongbei 语言具有极高的娱技比(娱乐精

dongbei 编程语言的开发采用了业界领先的 TDD(TreeNewBee-Driven Development) 方式。 具体地说,就是每个功能都是先把文案写好,八字没一撇牛皮就吹起来了,然后根据牛皮写测试案例,最后再实现功能让牛皮不被吹破。 这样做有两大好处:第一每个功能都是有的放矢,不值得 tree new bee 的功能一概没有。 第二确保了每个功能都有文案负责吹嘘,开发者绝对不会养在深闺无人识。

再来就是系统支持的问题了,donbei只需要保证开发环境有 Python 3 ,直接下载GitHub项目,跑src/dongbei.py,这事儿就成了。

我们还是先来个东北味儿的hello World程序吧:

唠唠:“唉呀,这嘎哒真他妈那啥!”。

用 utf-8 编码保存。要是编辑器因为编码错误埋汰你,那就把文件内容改成:

# -*- coding: utf-8 -*-唠唠:“唉呀,这嘎哒真他妈那啥!”。

再试,应该就成了。然后在命令行窗口运行:

src/dongbei.py hello-world.dongbei

你应该看到执行结果:

唉呀,这嘎哒真他妈那啥!

语法规则

学习一门语言,先得了解它的词法、语法和语义,下面我们就一点一点来了解一下:

词法

字符串常量

一行代码当中,要是出现配对的中文全角双引号,比如

...“我是一个字符串”...

那么引号当中的内容(我是一个字符串)会被当成一个字符串常量。

常数

除了用阿拉伯数字表示的十进制整数(比如 2、42、250,等等),0 到 10 的常数也可以用中文表达:

零一二三四五六七八九十

二也可以写成两或者俩。三也可以写成仨。

语句

一个 dongbei 程序是由一串语句组成的。每个语句以句号(。)结束。为了表达程序员炽热的感情,也可以用感叹号(!)结束,意思和句号是一样一样的。请大家根据自己的心情任选使用。

1、变量

dongbei 语言允许使用任何字符串做变量名。定义变量如下:

老王是活雷锋。

2、给变量赋值

dongbei 语言不整“赋值”这种文绉绉的词儿。咱们叫“装”。比如:

老王装二。

可以理解为 C 语言的

lao_wang = 2;

要把一个活雷锋的值清空回到原始状态,可以用削:

削老王。

过后老王就啥也不是了。

3、增减变量

活雷锋除了会装,加加减减也是常见的操作。按没病走两步的规矩,这些操作的名字叫做:走走、稍稍、走X步、稍X步。比如:

老张装二。  # 现在老张等于2
老张走走。  # 现在老张等于3
老张走两步。  # 现在老张等于5
老张稍稍。  # 现在老张等于4
老张稍五步。  # 现在老张等于-1

4、输出

要输出信息,咱们得说“唠唠”。假定要说的信息是 YY,就得写

唠唠:YY。

5、循环

磨叽,就是一遍一遍循环。 所以,在 dongbei 语言里循环的写法是:

老王从一到五磨叽:  # 老王从1走到5。唠唠:老王!  # 打印老王的当前值。
磨叽完了!  # 循环结束。

运行结果如下:

6、条件

虽然 dongbei 人都是活雷锋,干活的时候该讲条件还是要讲条件的。寻思是一项很有用的技能!比如有件事情(不妨叫做 XXX)只想在某个条件(不妨叫 CCC)成立的时候再做,就写:

寻思:CCC ?
要行咧就 XXX

要是 CCC 不成立的时候俺们有另外一件事情 YYY 要做,那就写:

寻思:CCC ?
要行咧就 XXX
要不行咧就 YYY

7、套路

“套路”这名字听着吓人,其实就是给一串常用的组合拳取一个名字,定义套路用这个格式:

套路名字 咋整:...  # 爱做的事儿
整完了。

下面定义一个叫“写九九表”的套路。注意定义套路本身不会让这个套路真的跑起来。所以下面这段程序跑的结果是啥也不做。

写九九表咋整:  # 定义套路 写九九表。老王从1到9磨叽:老张从老王到9磨叽:唠唠:老王、“*”、老张、“=”、老王乘老张。  # 打印 X*Y=Z磨叽完了。唠唠:“”。  # 空一行。磨叽完了。
整完了。  # 结束套路定义。

想把上面的套路跑一遍,你得写:

整写九九表。

然后,你就可以输出一份九九乘法表啦:

1*1=1
1*2=2
1*3=3
...8*8=64
8*9=729*9=81

这嘎哒真TM那啥!Python版东北话编程火爆网络相关推荐

  1. 编程n的阶乘使用while语句_谷歌工程师新作,东北话编程

    作者 | AI前线小组如果说用文言文编程还是有些困难,那么,东北话呢? 项目介绍 文言文编程火了,但使用它需要有一定的古文功底,因此它对大部分开发者来说并不够友好.近日,一位谷歌的工程师琢磨出来一个更 ...

  2. 谷歌工程师新作,东北话编程

    项目介绍 文言文编程火了,但使用它需要有一定的古文功底,因此它对大部分开发者来说并不够友好.近日,一位谷歌的工程师琢磨出来一个更加接地气的编程语言项目:dongbei. 项目地址:https://gi ...

  3. python还能火多久 搜狐_老像样了:基于Python的东北话编程语言,火了

    来自:开源最前线(ID:OpenSourceTop) 项目地址:https://github.com/zhanyong-wan/dongbei 还记得12月份刷爆朋友圈的那个文言文编程语言么? 这个项 ...

  4. 一个丧心病狂的Github项目:东北话编程,大写的服!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:开源最前线(ID:OpenSourceTop) 还记得12月 ...

  5. 东北话编程,大写的服!这是一个丧心病狂的Github项目!

    程序员的成长之路 互联网/程序员/成长/职场 关注 阅读本文大概需要 4.2 分钟. 来自:开源最前线(ID:OpenSourceTop) 项目地址:https://github.com/zhanyo ...

  6. python套接字编程_Python网络编程 Python套接字编程

    Python 提供了两个级别访问的网络服务. 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法. 高级别的网络服 ...

  7. python是外部还是编程_Python网络编程(绑定到外部地址)

    我是python的新手,几天前我开始尝试网络编程(我在那里也是新手) 现在我发现了一个简洁的客户机-服务器程序,它在我的电脑上运行得非常简单,但是当我替换了本地地址,并告诉我的朋友运行客户机脚本时,它 ...

  8. python中http协议编程_python网络编程、套接字、HTTP协议

    网络编程 网络目的 : 数据的传输 网络数据传输是一个复杂的过程 OSI 七层模型 --> 网络通信标准化流程 应用层 : 提供用户服务,具体内容由特定程序规定 表示层 : 数据的压缩优化 会话 ...

  9. 面向对象编程(Python版详解)

    [辰兮要努力]:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端.后台.数据 ...

最新文章

  1. C#实现Winform自定义半透明遮罩层
  2. C++ leetcode 7. 整数反转 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
  3. Aerospike NoSQL 数据库介绍
  4. linux 下载、安装 maven
  5. WP百度搜索推送管理插件
  6. Mysql学习总结(44)——Linux下如何实现mysql数据库每天自动备份定时备份
  7. 数据库设计原理【B树、B-树、B+树】
  8. 使用audit工具常规命令监控系统访问文件
  9. 0003-img标签-前端学习笔记
  10. 分享一个在沪深300下获得146.56%超额收益的策略
  11. 不打补贴战,快狗打车凭什么冲刺“同城货运第一股”?
  12. 苹果怎么在电脑上备份?3种备份方式选择
  13. Word提示:“向程序发送命令时出现问题”解决方法
  14. 麦子学院demo(html+css)
  15. his系统计算机软件,医院信息系统(HIS)
  16. 梯度累加(Gradient Accumulation)
  17. MongoDB分片(Sharding)技术
  18. Unity3d实现扭动挤压浏览效果
  19. java简单计算器课程设计报告_JAVA课程设计之计算器设计报告
  20. java如何获取手机号码归属地_在java中如何根据手机号查询号码归属地

热门文章

  1. 犬夜叉视频在线观看,犬夜叉游戏在线玩
  2. 前端动画——网页时钟
  3. TKinterDesigner界面背景和操作界面调试,TKinterDesigner教程(3)
  4. 什么是数据分类分级?
  5. 公里与英里的换算c语言函数_一万公里是极限吗?全合成机油最多能跑多远?...
  6. SAP成都研究院小伙伴们2018~2019两年间的179篇原创文章合集
  7. MATLAB的M文件、MEX文件、MAT文件是什么 .如何打开(直接鼠标拖入相应区域)
  8. 星辰小队针对于软件“星遇”的第二次10天冲刺——第3天
  9. c语言五子棋键盘操控,c语言写的鼠标操作的五子棋游戏,欢迎观赏!
  10. Damerau–Levenshtein Distance的java实现