brain
brain copied to clipboard
A high level programming language that compiles into the brainfuck esoteric programming language
We need some examples of writing brain code. These will end up in the `examples/` directory in the project. You can draw inspiration from things like: - your own programming...
Mode of compilation (compilation flag) that makes it so that no drop instructions are generated. In other words, rather than zeroing and reusing memory, the compiler will generate code that...
Currently, the AST only supports assignment to plain identifiers. The grammar should support assignment to fields (at an arbitrary depth). ```brain // currently supported foo = 2; // wanted bar.foo.spam...
It would be really cool to support 32-bit integers in Brain. That means four 8-bit cells. It should support the following syntax: ```brain // Integers are 32-bit and are declared...
We want to generate the smallest brainfuck files possible while still using as few brainfuck cells as possible. Less instructions is a greater priority than memory efficiency since brainfuck doesn't...
Brainfuck doesn't really have anything other than basic IO. It would be cool if we could design some libraries in another library that could interface with a brainfuck program. Example:...
We use byte strings to initialize arrays of bytes. This works for things that can be represented by just strings, but what about more types like arrays of booleans or...
There needs to be some thought put into the design of this and how the required operations would work. - [ ] Moving the array to another memory location -...
Declarations should be immutable by default. To make them mutable, use the `mut` keyword as demonstrated below. This should be statically checked and enforced by the compiler. ```brain let x:...
In order to support libraries, we want to be able to compile brain code into a special library format akin to C/C++ object files and Rust rlib files. There should...