一门能让你五分钟学会的语言-Brainfuck

🚀 优质资源分享 🚀

学习路线指引(点击解锁)知识定位人群定位
🧡 Python实战微信订餐小程序 🧡进阶级本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
💛Python量化交易实战💛入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统
目录

看到标题,不出意外的话,你肯定开始骂我了:**标题党,什么编程语言五分钟就能学会?

其实我本来也是不相信的,但是学过了才知道这是真的。

回到顶部### 1、Brainfuck

看到这个小标题,不要误会,我没有骂人。

这就是今天文章的主人公,也就是让你们五分钟能够学会的一门编程语言——Brainfuck。

Brainfuck,简称BF,是一种极小化的编程语言,由Urban Müller在1993年创造。

目标是创建一种简单的、可以用最小的编译器来实现的、符合图灵完全思想的编程语言。

PS:不得不佩服大佬命名方式,或许这就是大佬吧!!!

回到顶部### 2、语法

学习编程语言,首先就要学习其语法。

Brainfuck 编程语言 由 8 个命令组成:

语法含义
>指针向右移动一格
<指针向左移动一格
+使指针当前格的字节数值加1
-使指针当前格的字节数值减1
.把当前格数值按 ASCII 表输出到终端
,接受一个字节的输入,将其值存储在数据指针的字节中。
[当指针当前值为 0 时,程序跳转至与之对应的 ] 之后;否则程序正常执行
]程序跳转回与之对应的 [ 处

自此,你学完了 Brainfuck 语言的所有语法,我想都用不了五分钟吧。

回到顶部### 3、Hello World

老规矩,新语言上手的第一步就是要能输出 Hello World。

问题:这里我们先练习如何在屏幕打印一个字母 ‘A’ ?

3.1 菜鸟版

分析:

因为 ASCII 表中 ‘A’ 对应的值为 65。所以你可能很快就会有第一种编程方案:



|  | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. |


这里 + 有65个,然后通过 . 将其输出到终端,如下:

看上去解决了这个问题,但是这里的 + 实在太多了,我们编程的时候很容易少写或者多写,那么有没有什么方法能简化呢?

3.2 进阶版

ASCII 表中 ‘A’ 对应的值为 65。为了少打几个 +,我们很自然的想到乘法运算,65 = 13*5.

所以我们可以通过循环来改进上面的方法:



|  | +++++ |
|  | [ |
|  | >+++++++++++++ |
|  | <- |
|  | ] |
|  | >. |


这里我解释一下上面的语法:

①、第一行,有5个 +,表示当前格子数加到 5;

②、第二行,一个 [,表示进入一个循环;

③、第三行,表示指针向右移动一格,并且该格子数值为 13;

④、第四行,表示指针向左移动一格,并且该格子数值减 1(初始化值为5);

⑤、第五行,循环的结束语句,判断指针所在格子是否为0,不为0,移动到第3行代码继续执行,为零则退出循环。

⑥、第六行,指针向右移动一格,并且向终端输出该格子的值。

下面通过动图给大家演示一下:

3.3 输出 Hello World!


|  | ++++++++++[>+++++++>++++++++++>+++>+<<<<-] |
|  | >++.>+.+++++++..+++.>++.<<+++++++++++++++. |
|  | >.+++.------.--------.>+.>. |


回到顶部### 4、总结

不知道大家学完这门语言之后有什么感想。

首先我要说的是,这门语言并不是为了设计实际软件而设计的,而是为了挑战计算机编程的界限。

我们知道计算机界最高奖项叫图灵奖,图灵在1936年发表的 “On Computable Numbers, with an Application to the Entscheidungsproblem”(《论可计算数及其判定性问题的应用》)中提出的数学模型——图灵机(Turing Machine),描述了它是什么,并且证明了只要图灵机可以被实现,就可以用来解决任何可计算问题,感兴趣的大家可以去研究研究。

这门语言对于我们去理解图灵思想也是很有帮助的。

比如,一门新的语言,我们要证明其是否是图灵完备的,如果用数学证明的方式必然会比较复杂,但是如果你能用这门新语言实现一个 Brainfuck 的解释器,那么就必然证明其是图灵完备的。

回到顶部### 彩蛋

Brainfuck 语言图形化演示:https://openprocessing.org/sketch/516467
程序员必读电子书领取:https://mp.weixin.qq.com/s?__biz=MzUwOTQwNTUzNQ==&mid=2247488293&idx=1&sn=1515e62492388c321717dbdc7209990d&chksm=f913e315ce646a03a6daf8a1621f1d127a95fe9ea10a442fc1b0b9eb2dddc5531bac722f3656&token=1554842810&lang=zh_CN#rd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值