कई चुनौतियां हैं जो "एक्स की व्याख्या करती हैं" कहती हैं, जहां एक्स एक सरल भाषा है। मेरी राय में, यह तरीका बहुत उबाऊ है। इंटरनेट पर सभी प्रमुख लोगों को कुछ दिलचस्प करने के लिए, आप इस चुनौती को करने की कोशिश कर सकते हैं:
चुनौती
एक भाषा चुनें $LANG
। $LANG
किसी भी ट्यूरिंग पूर्ण प्रोग्रामिंग भाषा या एक प्रोग्रामिंग भाषा का एक ट्यूरिंग पूरा सबसेट हो सकता है। सावधान रहें कि यदि आप $LANG
व्याख्या के लिए अपनी भाषा की एक विशेषता को छोड़ देते हैं , तो आपको इसे अपने स्वयं के कार्यक्रम के लिए भी उपयोग नहीं करना चाहिए, क्योंकि आपके प्रस्तुत को भी लिखा जाना चाहिए $LANG
।
$LANG
लिखित में संकलक / दुभाषिया लिखें $LANG
। आप eval
अपनी भाषा की सभी सुविधाओं (सहित और दोस्तों) का उपयोग कर सकते हैं जो इस संकलक को लिखने के लिए उपलब्ध हैं। कार्य को अधिक चुनौतीपूर्ण बनाने के लिए, एक प्रतिबंध है: आपको $LANG
अपने इंटरप्रेटर / कंपाइलर को छोड़कर सभी वैध कार्यक्रमों की व्याख्या / संकलन करने में सक्षम होना चाहिए । यदि ऐसा होता है कि प्रोग्राम की व्याख्या / संकलित किया जाना आपका इंटरप्रेटर या कंपाइलर है (भले ही फ़ाइल नाम की परवाह किए बिना), आपके प्रोग्राम को इंटरप्रेटर या कंपाइलर की कार्यक्षमता से पूरी तरह से असंबंधित होना चाहिए (जैसे कि बारफेक या प्रिंटिंग Hello, world!
)।
इस कार्य को और अधिक जटिल बनाने के लिए, संकलन या व्याख्या करते समय आपके कार्यक्रम को अपने स्वयं के स्रोत को नहीं पढ़ना चाहिए।
विशेष विवरण
- यह कार्य कोड गोल्फ है। कम से कम पात्रों के साथ प्रस्तुत करना सही जीत है। एक टाई के मामले में, जो समाधान प्रस्तुत किया गया था वह पहले जीतता है।
- आपके प्रोग्राम / स्क्रिप्ट को फ़ाइल से व्याख्या किए जाने वाले प्रोग्राम को पढ़ना चाहिए। आप इसका पथ और नाम हार्डकोड कर सकते हैं। जब फ़ाइल पढ़ी जाती है, तो आप फ़ाइल को किसी अन्य फ़ाइल के लिए संकलित कर सकते हैं (यह आपके सिस्टम पर निष्पादन योग्य होना चाहिए) या इसे सीधे चलाएं। यदि
$LANG
फ़ाइल-रीडिंग क्षमताओं की कमी है, तो आप उस कोड में पढ़ने के लिए एक और तरीका चुन सकते हैं जो फिट बैठता है$LANG
। आप$LANG
किसी अन्य भाषा के सबसेट के रूप में नहीं चुन सकते हैं, लेकिन फाइल-रीडिंग कैपेबिलिटीज को हटा सकते हैं। - सामान्य कोड-गोल्फ नियम लागू होते हैं। वह यह है: आपकी व्यक्तिगत पालतू-भाषा जिसे आपने इस चुनौती को हल करने के लिए बनाया है, मना किया जाता है, यदि समाधान इसका उपयोग करने के लिए तुच्छ हो जाता है (जैसे एकल-चार प्रोग्राम को परिभाषित करना जो समाधान को लागू करता है)। नियमों के दुरुपयोग को प्रोत्साहित किया जाता है।