PainLang

From Esolang
Jump to navigation Jump to search

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.