Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Branch: gsoc_nfg
Pull request Compare This branch is 99 commits ahead, 11083 commits behind master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

..
Failed to load latest commit information.
t
Changes
MAINTAINER
README
befunge.pir
debug.pir
flow.pir
io.pir
load.pir
maths.pir
pascserp.bef
setup.pir
stack.pir
test.bef

README

# $Id$

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/

Something went wrong with that request. Please try again.