PainLang
Overview
PainLang is basically Brainf*** but written in Python and writes Lua and has one less core command (7 excluding comments and debug). It was written by User:TeamLightning due to boredom.
Computational class
Because PainLang has bits of memory by default (4 for the index, 1 for the negation bit, and 8 bits for each of the 16 cells), it is a bounded-storage machine.
Syntax
Given an index i, a negation bit neg, and a sixteen cell tape t, with each cell being one byte:
o sets i to (i + 1) % len(t) w increments t[i], and wraps to zero upon exceeding one byte ! prints the ascii character t[i] represents ? reads the ascii value of one byte from the console into t[i] O jumps to the matching W character if t[i] is zero W jumps to the matching O character if t[i] is nonzero a sets neg to neg * -1 A is a comment If debug mode is enabled, # prints debug info
Loops are not nestable in the legacy Python compiler.
Examples
Hello World!
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww owwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww owwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww owwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww owwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww owwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww owwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww owwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww aoooooooa !o!o!!o!o!o!aoo!aooo!aoooo!aooooo!
This specific version of Hello World was written before loops were implemented. Output: Hello World
Number to ASCII character
o?o?o?aoooa# wwwwwwwwOoawwwwwwowaW wwwwwwwwOooawwwwwwoowaW wwwwwwwwOoooawwwwwwooowaW oOaoawwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwoawaW#oOaooawwwwwwwwwwooawaW#oOaoooawoooawaW# aoooa!
Input: 3 digit number, left padded with zeroes. Output: ASCII character input represents.
Interpreters
The current interpreter and compiler source can be found here.
The legacy Python interpreter and compiler source can be found here.