DESCRIPTION ----------- This is a Befunge interpreter written in PIR. This interpreter should be Befunge-93 compliant. This means the playfield is limited to 80x25. This should also mean that the torus can hold *only bytes* (that is, you can't store/fetch numbers greater than 255 or less than 0), but actually I do not check for over / underflow - for now. You should compile and test the files with: $ make test Then you can run your Befunge program with: $ ../../../parrot befunge.pbc [-d] foo.bef The -d flag enables debugging within the befunge interpreter (not yet fully implemented, this is a work in progress). Type 'help' in the debugger to see the commands supported. FILES ----- The files are the following: befunge.pir the main loop debug.pir routines for the debugger flow.pir handles the flow-control instructions io.pir handles the i/o related instructions load.pir function to load the code from source file maths.pir handles all the maths instructions stack.pir handles the stack instructions Makefile a little Makefile generated by config/makefiles/root.in Configure.pl regenerate Makefile test.bef a befunge script that test almost all the instructions (and is even self-modifying!) pascserp.bef a befunge script generating variant of Sierpinsky triangle (by Chris Pressey) t/harness the test harness script t/basic.t test test.bef BUGS ---- * pascserp.bef output is not correct (right bottom part of image is just noise) TODO ---- * more error checking * better rand() methods * more tests (with Perl and Test::Harness) * debugging options (work in progress) * implement Befunge 98 AUTHOR ------ Jerome Quelin, <jquelin@cpan.org> ACKNOWLEDGEMENTS ---------------- I would like to thank: * Chris Pressey, creator of Befunge, who gave a whole new dimension to both coding and obfuscating. * Leon Brocard and Rafael Garcia-Suarez, for giving me this crazy idea. * Leon Brocard (again), because he told me he will help me with the Befunge-98 version :o) * Dan Sugalski and all the parrot folks (you know who you are) for providing such a nice toy to play with. COPYRIGHT --------- This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO -------- * http://www.parrot.org * http://www.catseye.mb.ca/esoteric/befunge/