Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

beef(1) [debian man page]

BEEF(1) 							   User Commands							   BEEF(1)

NAME
beef - flexible Brainfuck interpreter SYNOPSIS
beef [OPTIONS] FILE DESCRIPTION
beef is a Brainfuck interpreter written in C. It is written with flexibility and portability in mind: it is not the smallest nor the fastest Brainfuck interpreter on Earth, but it has some options to control his behavior and doesn't suffer most of the limitations which are usually present in Brainfuck interpreters. One of the best features of beef is that it has no limitations on the length of the tape, which is created dinamically, and allows you to move in any direction, even to move an unlimited amount of cells left when you are on the starting cell. beef also allows you to control his behavior in case it reads and EOF from the input stream: see below for a list of available options. OPTIONS
-d Enable debugging. The debugging command # is not part of the Brainfuck language, but it's an useful feature for the programmer, so most interpreters implement it. Debugging is off by default. -e When read an EOF from input, store an EOF in the current cell. This is for compatibility with programs written for other inter- preters; the default behavior is to store a 0 in the current cell when an EOF is read. -n When read an EOF from input, do nothing. This is the default behavior in some other interpreters, so it's supported in beef for com- patibility reasons. The default behavior is to store a 0 on the current cell instead. --version Show the version number and exit successfully. --help Show a short help message and exit with success. EXIT STATUS
beef returns an exit staus of zero on success, or an exit status of -1 if it was unable to perform the requested operation. Please note that no checks are performed on the code: if the code you are trying to run is buggy, beef will run it anyway and the result will probably differ from what you expected. AUTHOR
This manual page was written by KiyuKo <eof AT kiyuko DOT org> 0.0.6 February 01, 2007 BEEF(1)

Check Out this Related Man Page

Acme::Brainfuck(3)					User Contributed Perl Documentation					Acme::Brainfuck(3)

NAME
Acme::Brainfuck - Embed Brainfuck in your perl code SYNOPSIS
#!/usr/bin/env perl use Acme::Brainfuck; print 'Hello world!', chr ++++++++++. ; DESCRIPTION
Brainfuck is about the tiniest Turing-complete programming language you can get. A language is Turing-complete if it can model the opera- tions of a Turing machine--an abstract model of a computer defined by the British mathematician Alan Turing in 1936. A Turing machine con- sists only of an endless sequence of memory cells and a pointer to one particular memory cell. Yet it is theoretically capable of perform- ing any computation. With this module, you can embed Brainfuck instructions delimited by whitespace into your perl code. It will be trans- lated into Perl as parsed. Brainfuck has just just 8 instructions (well more in this implementation, see "Extensions to ANSI Brainfuck" below.) which are as follows Instructions + Increment Increase the value of the current memory cell by one. - Decrement Decrease the value of the current memory cell by one. > Forward Move the pointer to the next memory cell. < Back Move the pointer to the previous memory cell. , Input Read a byte from Standard Input and store it in the current memory cell. . Output Write the value of the current memory cell to standard output. [ Loop If the value of the current memory cell is 0, continue to the cell after the next ']'. ] Next Go back to the last previous '['. Extensions to ANSI Brainfuck This implementation has extra instructions available. In order to avoid such terrible bloat, they are only available if you use the ver- bose pragma like so: use Acme::Brainfuck qw/verbose/; The extra instructions are: ~ Reset Resets the pointer to the first memory cell and clear all memory cells. # Peek Prints the values of the memory pointer and the current memory cell to STDERR. See also "Debugging" below. Debugging By using the debug pragma like this: use Acme::Brainfuck qw/debug/; you can dump out the generated perl code. (Caution: it is not pretty.) The key to understanding it is that the memory pointer is repre- sented by $p, and the memory array by @m Therefore the value of the current memory cell is $m[$p]. RETURN VALUE
Each sequence of Brainfuck instructions becomes a Perl block and returns the value of the current memory cell. EXAMPLES
JABH #!/usr/bin/env perl use Acme::Brainfuck; print "Just another "; ++++++[>++++++++++++++++<-]> ++.-- >+++[<++++++>-]<.>[-]+++[<------>-]< +.- +++++++++.--------- ++++++++++++++.-------------- ++++++.------ >+++[<+++++++>-]<.>[-]+++[<------->-]< +++.--- +++++++++++.----------- print " hacker. "; Countdown #!/usr/bin/env perl use strict; use Acme::Brainfuck qw/verbose/; print "Countdown commencing... "; ++++++++++[>+>+<<-] >>+++++++++++++++++++++++++++++++++++++++++++++++<< ++++++++++[>>.-<.<-] print "We have liftoff! "; Reverse #!/usr/bin/env perl use Acme::Brainfuck qw/verbose/; while(1) { print "Say something to Backwards Man and then press enter: "; +[->,----------]< print 'Backwards Man says, "'; [+++++++++++.<]< print "" to you too. "; ~ } Math #!/usr/bin/env perl use Acme::Brainfuck; use strict; use warnings; my $answer = +++[>++++++<-]> ; print "3 * 6 = $answer "; VERSION
1.1.1 Apr 06, 2004 AUTHOR
Jaldhar H. Vyas E<lt>jaldhar@braincells.comE<gt> THANKS
Urban Mueller - The inventor of Brainfuck. Damian Conway - For twisting perl to hitherto unimaginable heights of weirdness. Marco Nippula <http://www.hut.fi/~mnippula/> - Some code in this module comes from his brainfuck.pl Mr. Rock - Who has a nice Brainfuck tutorial at <http://www.cydathria.com/bf/>. Some of the example code comes from there. COPYRIGHT AND LICENSE
Copyright (c) 2004, Consolidated Braincells Inc. Licensed with no warranties under the Crowley Public License: "Do what thou wilt shall be the whole of the license." perl v5.8.3 2004-04-06 Acme::Brainfuck(3)
Man Page