32leaves.net

Online brainf*ck IDE

Yet another old piece of software … some sort of a Brainfuck IDE written in JavaScript. Click here to have a look at it

MiniC00per

While looking thru my old files, I recently stumbled upon some piece of code I wrote back in April 2006. That time I was just waiting for my new car to be built (guess what kind of car it was :-) ). So I wrote a “programming language” modeled after a story regarding a Mini Cooper. Actually the language is modelled after Brainfuck. Btw. there is no real documentation. But what makes this thing worth posting is, that the “code” is directly compiled to Java bytecode. I have to admit that the code is pretty rubish, but this should be considered to be a kinda quick hack and not serious software engineering.

Example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All this is done using my Cooper.
Yesterday I went 104 circles just for fun while accelerate.
After I leave I alight.
decelerate decelerate decelerate alight.
go 7 circles accelerate leave. alight and alight.
accelerate accelerate accelerate alight.

Cooper. go 32 circles accelerate leave. alight.

go 87 circles accelerate leave. alight. MiniOne alight
accelerate accelerate accelerate. alight
go 6 circles decelerate leave. alight
go 8 circles decelerate leave. alight

Cooper Cooper. go 10 circles accelerate leave alight.

The compilation of this code will produce

Hello World

when executed.

Everything except the following keywords is ingored (which enables you to write “real” stories). The chars in the brackets denote the original brainfuck op’s:

  • Cooper

    (

    >

    ): Increment Pointer

  • MiniOne

    (

    <

    ): Decrement Pointer

  • accelerate, accelerated

    (

    +

    ): increment value

  • decelerate, decelerated

    (

    -

    ): decrement value

  • step in, stepped in

    (

    .

    ): request input from user

  • alight, alighted, alit

    (

    ,

    ): output current fields value to user

  • circles

    (

    [

    ): mark the beginning of a loop

  • leave, left

    (

    ]

    ): mark the end of a loop and start it

  • 0..9

    : set the value to current field

You can download the binary here, and click here for the source code (including some more examples).

Creative Commons License
MiniC00per by 32leaves is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.

Fork me on GitHub