Berikut ini definisi bahasa yang sangat sederhana:
A Variable is any string that does not contain ^, <, >, !, or ?
The empty string is a valid variable identifier
The value of every variable starts at 0.
A Statement is one of (var is a Variable, P is a Program):
var^ -> changes var to be equal to 1 more than itself
var<P> -> while var > 0, changes var to be equal to 1 less than itself, then runs P
var! -> output value of var
var? -> ask for non-negative integer as input, increase var by that value
A Program is a concatenation of Statements, running a Program means running each Statement in order
Contoh program (perhatikan bahwa string kosong adalah variabel, tetapi saya akan menggunakannya dengan hemat demi kejelasan, dan beberapa variabel diberi nol pada program ketika biasanya 0 secara default):
<>: sets the value of the empty string variable to 0
b<>b?b<a^>: asks for b, then adds the value stored in b to a, zeroing b in the process
b<>b?a<>b<a^>: asks for b, then sets a to the value of b, zeroing b in the process
a<>c<>b<a^c^>c<b^> : copies the value in b into a without zeroing it
b<>c<>a<c^c^c<b^>>b! : outputs a multiplied by 2
b^b<a<>a?a!b^> : outputs what you input, forever
Tujuan Anda adalah untuk menulis juru bahasa terkecil untuk bahasa ini.
Nilai suatu variabel bisa besar secara sewenang-wenang dan seharusnya hanya dibatasi oleh total memori yang dapat diakses oleh bahasa Anda, secara teori, tetapi Anda hanya diminta untuk menangani nilai hingga 2 ^ 256.
Program Anda seharusnya dapat menangani program panjang yang sewenang-wenang, secara teori, tetapi Anda hanya akan diminta untuk mengerjakan program dengan panjang 2 ^ 32 karakter. Anda diminta untuk menangani loop bersarang dengan kedalaman hingga 2 ^ 32 juga.
Anda dapat mengasumsikan bahwa program tersebut adalah program yang valid, dan bahwa Anda hanya akan mendapatkan bilangan bulat non-negatif saat Anda meminta input. Anda juga dapat berasumsi bahwa hanya karakter yang dapat dicetak ASCII yang dimasukkan dalam string input.
Kecepatan program yang Anda tafsirkan tidak masalah, itu akan sangat lambat untuk hal-hal sesederhana perkalian 5 digit, tanpa optimasi.
Jika Anda ingin menggunakan bahasa yang tidak dapat menerima input atau menghasilkan output dengan cara yang dijelaskan oleh bahasa, gunakan interpretasi apa pun yang Anda inginkan. Ini berlaku untuk alasan apa pun bahasa Anda tidak dapat menerapkan beberapa perilaku yang diperlukan. Saya ingin semua bahasa dapat bersaing.
Kemenangan program terpendek. Celah standar berlaku.