首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Brainfuck JIT Compiler in Rust

An interpreter for Brainf*ck ---- 我们将实现一个Brainfuck的解释器,随后再实现一个JIT编译器。...之所以选择Brainfuck,自然是因为它相当简单,完全可以当做中间代码进行处理,省去了词法语法分析、中间代码生成等与编译原理直接相关的部分。 解释器写起来就太简单了。...Brainfuck预设我们有一块无限大的内存,初值均为0。数据指针指向第一个字节。...第二步:生成函数框架 在这里我们将一整个Brainfuck程序编译成一个函数。这个函数接受一个参数,即我们事先申请好的一块内存作为数据区域。...除了上面自己实现的解释器和JIT编译器外,我还找了一个Brainfuck的编译器bfc进行测试。

94530
您找到你想要的搜索结果了吗?
是的
没有找到

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

1、Brainfuck 看到这个小标题,不要误会,我没有骂人。 这就是今天文章的主人公,也就是让你们五分钟能够学会的一门编程语言——Brainfuck。...Brainfuck,简称BF,是一种极小化的编程语言,由Urban Müller在1993年创造。 目标是创建一种简单的、可以用最小的编译器来实现的、符合图灵完全思想的编程语言。...Brainfuck 编程语言 由 8 个命令组成: 语法 含义 > 指针向右移动一格 < 指针向左移动一格 + 使指针当前格的字节数值加1 - 使指针当前格的字节数值减1 ....[ 当指针当前值为 0 时,程序跳转至与之对应的 ] 之后;否则程序正常执行 ] 程序跳转回与之对应的 [ 处 自此,你学完了 Brainfuck 语言的所有语法,我想都用不了五分钟吧。...比如,一门新的语言,我们要证明其是否是图灵完备的,如果用数学证明的方式必然会比较复杂,但是如果你能用这门新语言实现一个 Brainfuck 的解释器,那么就必然证明其是图灵完备的。

1.7K30

盘点那些奇形怪状的编程语言

Brainfuck 脑……操? 没错,这种 esolang 就叫 brainfuck。 看名字就知道不是什么正经的编程语言。 名字虽然不正经,这却是最著名的一种 esolang。...很多地方都可以看到它的身影,比如说 Stack Overflow 的404页面: 这段代码可以在包括 brainfuck 在内的几种不同的语言中运行,输出结果都是404 Brainfuck 的语法非常简单...因此,要证明一种编程语言是图灵完备的,我们只需要用它实现一个 brainfuck,或者证明它的一个子集与 brainfuck 等价。...很多 esolang 的图灵完备性就是通过 brainfuck 来证明的。 有不少 esolang 以极简主义为自己追求的目标, brainfuck 只是其中的一种。...Brainfuck 并没有规定每个存储单元有多大,主流的 brainfuck 实现大多把它定为一个字节(byte)。我们也可以把它改成一个比特(bit);也就是说,每个存储单元只有0和1两种状态。

1.7K40
领券