0%

Copyright 2019 HisenZhang

1993年被提出的Brainfuck(以下简称BF)是一种极小化的语言, 全部使用的符号只有八种. 下面是BF的例程Hello World.

1
2
3
++++++++++ [>+++++++ >++++++++++ >+++>+<<<<-]
>++.>+.+++++++ ..+++.>++.<<+++++++++++++++ .
>.+++.------ .-------- .>+.>.

BF的工作原理模拟了一台简单的图灵机Turing Machine. 这个在1936年由图灵提出的计算模型描述了在一条无限长的纸带上, 机器的读写头不停的移动或读写以完成计算任务.

虽然图灵模型看上去简单, 但是图灵机可以解决大多数计算问题. 今天常用的计算机正是按照图灵机模型设计的. 因此, 理解了BF的工作原理, 也就很大程度上理解了现代计算机的数学原理和一些简单的计算理论Computation Theory.

在这个挑战里, 你需要编写一个解释器来运行BF语言.

Read more »

近期在尝试编写一个Simpson's Rule近似数值积分的例子, 忽然想到可以把被积函数作为一个参数传入, 使这个积分函数更具有通用性. 这个例子我们会在文末作为实际应用来阐述. 在开始之前, 我们先要讨论一下C语言里的函数到底和函数调用到底是什么.

这篇文章篇幅较长, 且涉及较多示例和证明代码, 建议在桌面设备上阅读. 对于证明代码, 请务必亲自动手编译, 只有真正动手敲过的代码才算有深入理解.

Read more »

这里是海森2018年的TOP10歌单. 其中一些作品非常值得我在日后细细撰写乐评.

现在车抛锚了, 我只能缩在吉普车里. 即便此刻是正午, 蔽天浓烟之下四周依然昏暗.

Read more »

Copyright 2019 HisenZhang

1920年, 逆波兰表示法Reverse Polish Notation首次被提出. 不同于我们常用的中置表达式, 逆波兰表示法将操作符写在操作数后面, 例如阶乘!.

逆波兰表示法的这一特性适合使用栈stack来解析. 这种设计可以减少存储器访问. 因此在1960和1970年代, 逆波兰记法广泛应用于台式和手持计算器.

在这个挑战里, 你需要编写一个解释器来计算逆波兰表达式, 实现加减乘除四则运算.

Read more »