一个丧心病狂的Github项目:东北话编程,大写的服!
点击上方“方志朋”,选择“设为星标”
回复”666“获取新整理的面试文章
来源:开源最前线(ID:OpenSourceTop)
还记得12月份刷爆朋友圈的那个文言文编程语言么?
这个项目是一位名为Huang Lingdong的大四学生创建的,当时,就连中科院计算所研究员、机器翻译领域知名专家刘群老师都赞叹道:后生可畏。
近日,Github上一个名叫dongbei的开源编程项目,再一次引起大家关注,这是一个以东北方言词汇为基本关键字的编程语言——dongbei 大写的服!
该项目作者是一位 Google 的高级软件工程师/技术主管,同时也是 Google C++测试框架 googletest 以及 googlemock 的原作者。(Github地址:https://github.com/zhanyong-wan/dongbei)
根据项目作者介绍:
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。唠唠:老王! # 打印老王的当前值。
磨叽完了! # 循环结束。
运行结果如下:
1
2
3
4
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
项目的issue上,更是好多热心网友给出建议:
你觉得这门东北方言的编程语言好不好使呢?如果你也对它感兴趣,可以去Github上下载下来好好研究研究。
最后附上Github地址:https://github.com/zhanyong-wan/dongbei
热门内容:
一位后端妹纸的面试总结(美团+阿里+携程+58+贝贝+招银+华为+....)
它是谁?一个比 c3p0 快200倍的数据库连接池!
终于放弃了单调的swagger-ui了,选择了这款神器—knife4j
Java8中一个极其强悍的新特性,很多人没用过(非常实用)
消灭 Java 代码的“坏味道”
代码生成器:IDEA 强大的 Live Templates
最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。
获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。
明天见(。・ω・。)ノ
一个丧心病狂的Github项目:东北话编程,大写的服!相关推荐
- 东北话编程,大写的服!这是一个丧心病狂的Github项目!
程序员的成长之路 互联网/程序员/成长/职场 关注 阅读本文大概需要 4.2 分钟. 来自:开源最前线(ID:OpenSourceTop) 项目地址:https://github.com/zhanyo ...
- 编程n的阶乘使用while语句_谷歌工程师新作,东北话编程
作者 | AI前线小组如果说用文言文编程还是有些困难,那么,东北话呢? 项目介绍 文言文编程火了,但使用它需要有一定的古文功底,因此它对大部分开发者来说并不够友好.近日,一位谷歌的工程师琢磨出来一个更 ...
- 谷歌工程师新作,东北话编程
项目介绍 文言文编程火了,但使用它需要有一定的古文功底,因此它对大部分开发者来说并不够友好.近日,一位谷歌的工程师琢磨出来一个更加接地气的编程语言项目:dongbei. 项目地址:https://gi ...
- 这嘎哒真TM那啥!Python版东北话编程火爆网络
还记得那个刷爆朋友圈的那个文言文编程语言么? 这个项目是一位名为Huang Lingdong的大四学生创建的,当时,就连中科院计算所研究员.机器翻译领域知名专家刘群老师都赞叹道: 后生可畏 近日,Gi ...
- 我在 GitHub 上看到了一个丧心病狂的开源项目!治好了我的拖延症
有人说,写作是少数可随时间推移而不过时的技能之一. 但实际情况是,尽管许多人在写作这条道路都做出了尝试,可最终坚持下来的只有极少部分人.在这当中,导致他们放弃或停止写作的最大一个原因就是:拖!延!症! ...
- 我在 GitHub 上看到了一个丧心病狂的开源项目!
有人说,写作是少数可随时间推移而不过时的技能之一. 但实际情况是,尽管许多人在写作这条道路都做出了尝试,可最终坚持下来的只有极少部分人.在这当中,导致他们放弃或停止写作的最大一个原因就是:拖!延!症! ...
- 一个有意思的github项目“狗屁不通文章生成器”
github地址:https://github.com/menzi11/BullshitGenerator 作者声明过,本项目生成的文章真的狗屁不通, 只能拿来搞笑, 请不要用于正规用途! 但是项目 ...
- 如何写一个优秀的GitHub项目README文档?
今天给大家介绍一个Github上的README文档写作教程模版,该模版目前获得6634颗星星,2296Fork,相对而言,还是比较得到大家认可的.不花哨,不别出心裁,一个比较实用的,普适性的架子:所谓 ...
- 如何写一个好的Github项目文档
一.什么是Github? Github是通过Git进行版本控制的软件源代码托管服务平台. Github除了Git代码仓库托管及基本的Web管理界面以外,它还提供了一些方便社会化共同软件开发的功能,即一 ...
最新文章
- 解读《这就是 OKR》 | 你制定的 OKR 真的合格吗?
- sprint2第三天任务完成情况
- 目前市场上用于个人计算机的硬盘尺寸是,第5章-硬盘(计算机组装与维护).docx
- Lua开发工作笔记0002---Lua开发语言简介
- MYSQL存储过程中事务和DECLARE EXIT/CONTINUE HANDLER的使用
- 警告: Can't find the request for http://localhost:8080/ibatisSpringDemo/ws/testWS's Observer
- 3.Linux性能诊断 --- 快速检查单(10个命令) 监控
- pytorch与resnet(六) 预训练模型使用的场景
- 批量更新 elasticsearch 内指定字段状态, 先查询后更新
- 谷歌约束控件(ConstraintLayout)扁平化布局入门
- 电容 电阻0201/0402/0603/等封装长宽高定义
- 附资料:工程总承包项目管理流程图(全套)
- 全志h6对比晶晨s905_一决雌雄!64位芯片晶晨S905对比瑞芯微RK3368谁胜?
- Mybatis 批量更新运行异常,数据库 postgres
- 干货——MRD(市场需求文档)模板
- 智能运动手环设计构思
- 多线程停止的几种方式(详细讲解)
- wordpress企业网站模板
- 泛微OA流程插入JS代码块
- 【Unity3D日常开发】修改游戏对象的材质颜色
热门文章
- windows下配置java环境jdk
- Codeforces Gym100812 L. Knights without Fear and Reproach-扩展欧几里得(exgcd)
- 获取枚举值上的Description特性说明
- KDE社区:首个KDialogue正式开放
- 数据结构与算法:06 线性表
- 技术图文:Python魔法方法之属性访问详解
- 图像读取、转为灰度图像、均值平滑、显示保存操作
- 【ACM】杭电OJ 1096
- python asyncio教程_python中使用asyncio实现异步IO实例分析
- 设计师你们还坐的住吗?2021 PS 进入人工智能 P 图时代