ABC (compiler)

From Esolang
Jump to navigation Jump to search

ABC is a compiler to an esoteric language by Tom Murphy VII (tom7), published on 2017-03 for the SIGBOVIK 2017 eso-conference.

The compiler outputs such DOS EXE executables that contain only printable ASCII characters, don't modify their own code in memory while running, and only execute instructions made of only printable ASCII characters. The compiler inputs C with some reasonable restrictions. IO access of the program is very limited.

The conference paper is plain ASCII text without newlines printed 160 characters per column, and that text is the executable of an example program created by the compiler.


One of the biggest challenges faced by the all-ASCII restriction is that the program cannot execute any jump backward, and cannot jump forward more than 127 bytes at a time. Thus an executable output by ABC just keeps looping around its 64 kilobyte long code segment, hopping over parts of the code it doesn't need.