5command
Jump to navigation
Jump to search
5command is an esoteric programming language created by User:Icepy in 2014. 5command has a very small command set of only 5 commands. 5command is a tape based language which has an infinite amount of slots. It has a debug mode that can be set to true or false in a interpreter. debug mode is automatically false. Also, anything that is not valid syntax, is a comment. 5command was built to print out very large numbers, in a small amount of time and space.
Commands
+ move the pointer right on the tape - move the pointer left on the tape ^ increment where the pointer is pointing at v decrement where the pointer is pointing at * print out the number at the pointer (without a space)
Examples
Simple Program
^*
Normal mode will print
Program: ^* Output: 1
Debug mode will print
Program: ^* Output: 1 DEBUG 0->1
Interpreters
Here is one written in PHP:
<?php $program = "<YOUR CODE HERE>"; function run($program = "", $debug = false) { $counter = 0; $tape = array(0); echo "Program: '$program'<br>"; echo "Output: '"; $program = str_split($program); foreach($program as $cmd) { switch($cmd) { case '+': $counter++; if($tape[$counter] == null) { $tape[$counter] = 0; } break; case '-': if($counter == 0) { echo " You cant go there!<br>"; } else { $counter--; } break; case '^': $tape[$counter]++; break; case 'v': if($tape[$counter] == 0) { echo " You cant go there!" } else { $tape[$counter]--; } break; case '*': echo $tape[$counter]; break; } } echo "'"; if($debug) { echo "<br><br>DEBUG<br>"; for($i = 0; $i <= count($tape) - 1; $i++) { echo "$i->$tape[$i]<br>"; } } } run($program); ?>
And one written in perl
%c=qw(+ $p++ - $p-- ^ D++ v D-- * print+D); $/=$,;$_=<>;s/./$c{$&};/g;s[D]'$b[$p]'g;eval