Prefunge is a Befunge derivative by User:BoundedBeans.
Prefunge is identical to Befunge, but now the C preprocessor is run on it. Additionally, the following restrictions are placed:
#, the only allowed character set is AB(), along with whitespace.__TIME__. Obviously this means programs may run differently depending on when the program is preprocessed (which in this language is basically just compiling into Befunge).# after the preprocessor has been run is removed.There are a few flavors of Prefunge:
#define AAAA __TIME__ $$$$$$$$"!dlrow ,olleH"zzzzzzz #define AAAB @ __TIME__ $$$$$$$$ __TIME__ $$$$$$$$ #define AABA > __TIME__ $$$$$$$$ __TIME__ $$$$$$$$ #define AABB : __TIME__ $$$$$$$$ __TIME__ $$$$$$$$ #define ABAA v __TIME__ $$$$$$$$ __TIME__ $$$$$$$$ #define ABAB _ __TIME__ $$$$$$$$ __TIME__ $$$$$$$$ #define ABBA , $$$$$$$$ __TIME__ $$$$$$$$ __TIME__ #define ABBB ^ $$$$$$$$ __TIME__ $$$$$$$$ __TIME__ AAAA AABA AABB ABAA AAAB ABBB ABBA ABAB AAAB
This expands to:
"00:00:00" $$$$$$$$"!dlrow ,olleH"zzzzzzz > "00:00:00" $$$$$$$$ "00:00:00" $$$$$$$$ : "00:00:00" $$$$$$$$ "00:00:00" $$$$$$$$ v "00:00:00" $$$$$$$$ "00:00:00" $$$$$$$$ @ "00:00:00" $$$$$$$$ "00:00:00" $$$$$$$$ ^ $$$$$$$$ "00:00:00" $$$$$$$$ "00:00:00" , $$$$$$$$ "00:00:00" $$$$$$$$ "00:00:00" _ "00:00:00" $$$$$$$$ "00:00:00" $$$$$$$$
and only runs in Prbefunge-98, because the lines are too wide for Prefunge-93 (Prefunge-93 is very limited due to the playfield limits and the wasted space from all the __TIME__ calls).