04-22-2013, 02:22 PM 
(This post was last modified: 04-22-2013, 03:10 PM by mad1231999.)
	
	
	
		This is just a Brainfuck interpreter that I made in the programming language C. It's only 36 lines, and still very readable!
Source code:
or on Github.
How to compile:
On windows, install Mingw, and run this command:
and run the executabe from the commandline.
On Mac or Linux, run this:
and run the executable from the commandline.
Alternatively, you can just install Code::Blocks and compile with that too(should work on all platforms).
	
	
	
Source code:
Code:
#include <stdio.h>
const int MAX_DEPTH = 100, MEM_SIZE = 30000;
 
int main(int argc, char **argv)
{
    if(argc <= 1) { printf("You have to specify a filename. Usage:\n<executable> <BF filename>\n"); return 0; }
    
    char mem[MEM_SIZE]; // 30,000 is default with Brainfuck
    int lindex[MAX_DEPTH];
    int depth = 0, len = 0, ptr = 0;
    
    FILE *f = fopen(argv[1], "r");
    if(f == 0) { printf("Invalid filename: %s\n", argv[1]); return 0; }
    int curr; while((curr = fgetc(f)) != EOF)  
    {
        switch((char) curr)
        {
            case '+':   ++(mem[ptr]);                       break;
            case '-':   --(mem[ptr]);                       break;
            case '<':   if(ptr > 0) --ptr;                  break;
            case '>':   if(ptr < MEM_SIZE) ++ptr;           break;
            case '.':   putchar(mem[ptr]);                  break;
            case ',':   mem[ptr] = getchar();getchar();     break;
            case '[':   if(mem[ptr] == 0) {
                            int d = 0, i = ftell(f); char c = '\0';
                            while(!feof(f)) { ++i; c = fgetc(f); if(c == '[') { ++d; } else if(c == ']') { if(d == 0) { fseek(f, i, SEEK_SET); break; } else { --d; } } }
                        } else
                            lindex[depth++] = ftell(f);
                        break;
            case ']':   if(depth > 0 && mem[ptr] == 0) {} else { fseek(f, lindex[depth - 1], SEEK_SET); } break;
            default: break;
        } if(feof(f)) break;
    }
    fclose(f);
    printf("\n");
}How to compile:
On windows, install Mingw, and run this command:
Code:
mingw32-gcc Brainfuck.c -o BF.exeOn Mac or Linux, run this:
Code:
gcc Brainfuck.c -o BFAlternatively, you can just install Code::Blocks and compile with that too(should work on all platforms).