İşte çok basit bir dil tanımı:
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
Örnek programlar (boş dizgenin bir değişken olduğuna dikkat edin, ancak netlik sağlamak için kullanışsız kullanacağım ve bazı değişkenler genellikle varsayılan olarak 0 olduklarında programda sıfırlanır):
<>: 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
Amacınız bu dil için en küçük tercümanı yazmak.
Bir değişkenin değeri keyfi olarak büyük olabilir ve yalnızca dilinizin erişebildiği toplam bellekle sınırlandırılmalıdır, ancak teoride yalnızca 2 ^ 256 değerine kadar değerleri kullanmanız gerekir.
Programınız teorik olarak keyfi olarak uzun programları yönetebilmelidir, ancak yalnızca 2 ^ 32 karakterden uzun olan programlar üzerinde çalışmanız gerekir. İç içe geçmiş derinlik döngülerini 2 ^ 32'ye kadar da kullanmanız gerekir.
Programın geçerli bir program olduğunu ve girdi istediğinizde yalnızca negatif olmayan tam sayılar alacağınızı varsayabilirsiniz. Giriş dizesinde yalnızca ASCII yazdırılabilir karakterlerinin bulunduğunu da varsayabilirsiniz.
Yorumladığınız programın hızı önemli değil, zaten optimizasyon olmadan 5 basamaklı çarpma kadar basit şeyler için acı verici bir şekilde yavaş olacak.
Girdiyi makul şekilde kabul edemeyen bir dili kullanmak veya dili tarafından tarif edilen şekilde çıktı üretmek istiyorsanız, mümkün kılmak için herhangi bir yorum kullanın. Bu, dilinizin gerekli bazı davranışları yerine getirememesi nedeniyle geçerlidir. Tüm dillerin rekabet edebilmesini istiyorum.
En kısa program kazanır. Standart boşluklar uygulanır.