Skip to content

Latest commit

 

History

History
33 lines (25 loc) · 999 Bytes

File metadata and controls

33 lines (25 loc) · 999 Bytes

obf

An optimizing compiler for Brainfuck in Pharo. Compiles to Pharo VM bytecode.

Usage

The easiest access to the compiler is done by accessing the (Glamorous Toolkit) views just by getting a live instance:

BrainfuckCompiler new

You can generate compiled code like this:

"a regular compile"
BrainfuckCompiler new compile: '++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.'.

"or enable optimizations"
BrainfuckCompiler new enableOptimizations compile: '++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.'.

The resulting code can be executed using valueWithReceiver: arguments:. It doesn’t take any arguments and the receiver does not matter, so I usually use self valueWithReceiver: 1 arguments: #().

Installation

Metacello new
	repository: 'github://hellerve/obf:main/src';
	baseline: 'Brainfuck';
	load

Have fun!