^"
>#001p#"<>:#,_@#1-8*3:-1*57+55-1*79*57:-1:*77**278\-1:*57$p:1: error: declaration expected
इसे ऑनलाइन आज़माएं !: Befunge-93 , C
यह ध्यान देने के लिए randomdude999 के लिए धन्यवाद कि फ़ाइल नाम को काम करने के लिए मिलान उद्धरण की आवश्यकता है।
फ़ाइल नाम के तहत सहेजा जाना चाहिए ^"\n>#001p#"<>:#,_@#1-8*3:-1*57+55-1*79*57:-1:*77**278\-1:*57$p
, जहां \n
एक नई रेखा है। इस वजह से, C के लिए TIO ठीक उसी तरह से नहीं चलता जैसा कि इरादा था। लुबंटू पर काम करने के लिए परीक्षण किया गया।
स्पष्टीकरण (C):
प्रोग्राम को संकलित करने में विफल रहता है, और tcc खुशी से फ़ाइल के नाम को उसके त्रुटि संदेश के भाग के रूप में आउटपुट करता है। कोड की शुरुआत के आधार पर, आपको कई संकलन त्रुटियां हो सकती हैं। ^
शुरू में हमें एक देता है declaration expected
, जो छोटा है और इसमें कोई समस्याग्रस्त अक्षर नहीं है "
। दूसरी ओर, जीसीसी और क्लैंग डेवलपर्स बहुत निराशावादी हैं और उन्होंने एक ही बार में कई त्रुटियों का उत्पादन करने के लिए चुना, जो बहुत अच्छा नहीं है, इसलिए हम उनके संकलक का उपयोग नहीं कर रहे हैं।
स्पष्टीकरण (Befunge-93):
Befunge इस बात के लिए सुविधाजनक है कि इसका कोड चरित्र डेटा के रूप में भी उपयोग किया जा सकता है, "
कमांड के लिए धन्यवाद , जो स्ट्रिंग मोड को टॉगल करता है। शुरुआत में, हम कुछ बेकार स्टैक ऑपरेशन करते हैं, फिर एक p
(पुट कमांड) जारी करते हैं जो एनयूएल चरित्र को (0, 1) पर रखता है। फिर हम निर्देश सूचक को बाईं ओर दर्शाते हैं और स्ट्रिंग के रूप में सब कुछ पढ़ना शुरू करते हैं। स्टैक के लिफो प्रकृति के कारण, इसे बाईं ओर किया जाना चाहिए। चारों ओर लपेटने और "
फिर से चरित्र तक पहुंचने के बाद , स्ट्रिंग समाप्त हो जाती है। ध्यान दें कि NUL वर्ण ने प्रतिस्थापित कर दिया है$
चरित्र, स्ट्रिंग के माध्यम से एक सीमांकक मध्य मार्ग का निर्माण। हम फिर स्टैक पर 3 नंबरों को धक्का देते हैं और एनयूएल पर कूदते हैं (क्योंकि यह दुर्भाग्य से एक निर्देश के रूप में चलाने पर दुभाषिया को लटका देता है)। त्रुटि संदेश के स्थिर भाग को यहाँ निष्पादित किया जाना है। इसके अधिकांश चरित्र नो-ऑप हैं, लेकिन p
कमांड तीन तर्क खाती है (इसलिए हमने 3 संख्याओं को धक्का दिया, अन्यथा स्ट्रिंग का हिस्सा यहां खाया जाएगा), और :
& 1
वर्ण ढेर में कुल 4 मानों को धक्का देते हैं, जिसे हम प्रतिसाद देते हैं एक p
और $
(पॉप और त्यागें) निर्देश के साथ। फिर, कुछ अंकगणित के लिए ASCII कोड पुश करने के लिए प्रदर्शन किया जाता है ^"\n>#001p#"
और अंत में एक लूप स्टैक पर सभी मानों को वर्णों के रूप में प्रिंट करता है जब तक कि यह एक एनयूएल वर्ण नहीं पाता है और समाप्त हो जाता है।