यहाँ एक बहुत ही सरल भाषा की परिभाषा है:
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
उदाहरण कार्यक्रम (ध्यान दें कि खाली स्ट्रिंग एक चर है, लेकिन मैं इसे स्पष्टता के लिए संयम से उपयोग करूंगा, और कुछ चर कार्यक्रम में शून्य हो जाते हैं जब वे आम तौर पर डिफ़ॉल्ट रूप से 0 होते हैं):
<>: 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
आपका लक्ष्य इस भाषा के लिए सबसे छोटा दुभाषिया लिखना है।
एक चर का मान मनमाने ढंग से बड़ा हो सकता है और केवल उस कुल मेमोरी द्वारा सीमित होना चाहिए जो आपकी भाषा को सिद्धांत में उपयोग करने के लिए सीमित है, लेकिन आपको केवल 2 ^ 256 तक मान को संभालने की आवश्यकता है।
आपका कार्यक्रम सिद्धांत रूप में मनमाने ढंग से लंबे कार्यक्रमों को संभालने में सक्षम होना चाहिए, लेकिन आपको केवल 2 ^ 32 वर्णों के तहत कार्यक्रमों पर काम करने की आवश्यकता होगी। आपको 2 ^ 32 तक गहराई के नेस्टेड लूप को संभालने की आवश्यकता है।
आप मान सकते हैं कि कार्यक्रम एक वैध कार्यक्रम है, और जब आप इनपुट मांगेंगे तो आपको केवल गैर-नकारात्मक पूर्णांक मिलेंगे। आप यह भी मान सकते हैं कि इनपुट स्ट्रिंग में केवल ASCII प्रिंट करने योग्य वर्ण शामिल हैं।
जिस प्रोग्राम की आप व्याख्या करते हैं उसकी गति कोई मायने नहीं रखती है, यह पहले से ही बिना अनुकूलन के 5 अंकों के गुणा के रूप में सरल रूप से चीजों के लिए दर्दनाक रूप से धीमा होगा।
यदि आप किसी ऐसी भाषा का उपयोग करना चाहते हैं, जो भाषा द्वारा बताए गए तरीके से इनपुट को स्वीकार या उत्पादन नहीं कर सकती है, तो किसी भी व्याख्या का उपयोग करें जिसे आप संभव बनाना चाहते हैं। यह किसी भी कारण से आपकी भाषा के लिए आवश्यक व्यवहार को लागू नहीं कर सकता है। मैं चाहता हूं कि सभी भाषाएं प्रतिस्पर्धा में सक्षम हों।
सबसे छोटा कार्यक्रम जीतता है। मानक खामियां लागू होती हैं।