HEX

HEX is a language created by User:Barrucadu based on the HEX machine from the Discworld books. As stated in the books, anything is possible if you get enough bugs in the system. If any discworld-enthusiasts want to help me with this, send me an email! The current specification is Hex Version 2.2

Examples
Basic Hello World GBL; Bug("1", "Hello, World!"); Scuttle("1"); Write;

CAT Program GBL; Bug("1", ""); Bug("2", ""); Bug("3", ""); :CAT_Loop Listen("2"); Fork("2" == "3"); Scuttle("1"); Write; End; EndFork; Breed("1" + "2"); Goto CAT_Loop;

Most Simple Quine Possible GBL; Quine;

99 Bottles of Winkles Old Peculiar GBL; Bug("1", "99"); Bug("2", "0"); Bug("3", "0.5"); Bug("4", "There are "); Bug("5", " bottles of Winkles Old Peculiar, sitting on a wall."); Bug("6", " bottles of Winkles Old Peculiar."); Bug("7", "Take one down, pass it to Vimes,"); :Loop Bug("Line_1", ""); Breed("Line_1" + "4"); Breed("Line_1" + "1"); Breed("Line_1" + "5"); Bug("Line_2", ""); Breed("Line_2" + "1"); Breed("Line_2" + "6"); Bug("Line_3", ""); Breed("Line_3" + "7"); Scuttle("Line_1"); Write; Return; Scuttle("Line_2"); Write; Return; Scuttle("Line_3"); Write; Return; Breed("1" - "3"); Fork("1" < "2"): End; EndFork; Goto Loop;
 * 1) This statement is executed twice for some reason, thats why Bug 3 is set to 0.5, instead of 1.
 * 2) If you can find the problem, and tell me, i'll be happy.

External resources
Interpreter

Specifications