क्विन / एरर क्विन पॉलीग्लॉट


14

आपका कार्य सरल है: एक प्रोग्राम लिखें जो दो भाषाओं में चलाया जा सकता है। यह भाषा 1 में एक सामान्य क्वीन (अपने स्वयं के स्रोत कोड को प्रिंट करता है) होनी चाहिए, और भाषा 2 में एक त्रुटि क्वीन (अपने स्रोत कोड के समान त्रुटि संदेश उत्पन्न करता है) होनी चाहिए।

यह , इसलिए सबसे कम वैध जमा (बाइट्स में) जीतता है।

नियम:

  • भाषाएँ मनमाने ढंग से समान हो सकती हैं। सुपरसेट / समान संस्करण / समान बोलियाँ अस्वीकृत नहीं हैं।
  • त्रुटि क्वीन नियम मेक ए क्वीन मेक के समान हैं !


क्या BASIC की दो अलग-अलग बोलियों की अनुमति है?
एमडी एक्सएफ

@MDXF अगर उनके पास एक ही व्यवहार है सिवाय इसके कि इसके बजाय STDERR को आउटपुट दिया जाए, तो नहीं। नहीं तो हां।
फल तोड़ना

तो मेरा जवाब मान्य है, फिर।
एमडी एक्सएफ

@MDXF यह मान्य है।
एगलैंगिंग फ्रूट

जवाबों:


2

Befunge-93 (FBBI) / C (tcc) , 93 + 62 = 155 बाइट्स

^"
>#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#"और अंत में एक लूप स्टैक पर सभी मानों को वर्णों के रूप में प्रिंट करता है जब तक कि यह एक एनयूएल वर्ण नहीं पाता है और समाप्त हो जाता है।


आपको एक ओएस खोजने की ज़रूरत है जो इस तरह के फ़ाइलनाम का समर्थन करता है और इसे सूचीबद्ध करता है। मुझे पता है कि विंडोज इसका समर्थन नहीं करता है।
mbomb007 20

@ mbomb007 माना जाता है, लिनक्स आमतौर पर एक फ़ाइल नाम में किसी भी मुद्रण योग्य चरित्र को छोड़कर को स्वीकार करेगा /। मैं अभी खुद को परख नहीं सकता।
नकारात्मक सात

1
Tcc के किस संस्करण का आपने उपयोग किया? मैं आर्क रिपोज से सीधे 0.9.27-3 का उपयोग कर रहा हूं, और मुझे जो त्रुटि मिली है <define>:1: error: missing terminating " character
randomdude999

1
ठीक है, मुझे TIO पर प्रयुक्त tcc का सटीक संस्करण मिला, और मुझे वही त्रुटि संदेश मिला, लेकिन केवल अगर फ़ाइल नाम के उद्धरण। कार्य के इस उत्तर के लिए बेजोड़ उद्धरण होना बहुत आवश्यक है। यहाँ कुछ ऐसा है जो आपकी मदद कर सकता है: लिनक्स फ़ाइलनामों में भी नई सूची देता है। यह एक नई पंक्ति और फ़ाइल नाम के अंत में एक उद्धरण जोड़ते समय tcc आउटपुट है: (लंबे समय तक लिंक) । इसका मतलब यह है कि आपको नई लाइन और सामान को 2 लाइन पर प्रिंट करने का एक तरीका खोजना होगा।
randomdude999

@ randomdude999 धन्यवाद। मैंने इसका समाधान करने के लिए समाधान अपडेट किया है। वास्तव में काफी दिलचस्प है कि एक बेजोड़ उद्धरण ऐसे मुद्दे का कारण बनता है ...
नकारात्मक सात

0

अप्लेसॉफ्ट बेसिक / कमोडोर एलसीडी बेसिक , 13 बाइट्स

?SYNTAX ERROR

Apple में] [एमुलेटर, ने RESETBASIC मोड में प्रवेश करने के लिए कुंजी को मारा ।
कमोडोर एलसीडी एमुलेटर RightArrowEnterमें, BASIC एप्लिकेशन में आने के लिए मारा गया।
उन दोनों में, ?SYNTAX ERRORसभी कैप में टाइप न करें , क्योंकि वे स्वचालित रूप से कैपिटल करते हैं।


2
गैर-प्रतिस्पर्धी स्थिति उन भाषाओं में प्रस्तुतियाँ के लिए आरक्षित है जिन्हें चुनौती के बाद बनाया गया था। यदि यह नियमों के अनुसार अमान्य है, तो इसे हटा दें। पहले ओपी की पुष्टि करें क्योंकि मुझे लगता है कि यह मान्य होना चाहिए (यह काम करता है)।
हाइपरएनुट्रिनो

@ हाइपर न्यूट्रिनो धन्यवाद, संपादित।
एमडी एक्सएफ

1
इस पर भी संदेह करना होगा। यह प्रश्न जितना दिखता है, उससे कहीं अधिक क्रूर ...
अर्जन जोहान्सन

1
@ SorjanJohansen खैर, मैं इस बारे में निश्चित नहीं हूँ। तकनीकी रूप से, कमोर एलसीडी में कोई मानक त्रुटि बाइट स्ट्रीम नहीं थी, तो क्या यह वास्तव में त्रुटि क्वीन है?
एमडी एक्सएफ

1
@ ØrjanJohansen इस ? मुझे लगता है कि इसका मतलब यह बताना असंभव है कि यह वैध है या नहीं। हम ओपी से पुष्टि की प्रतीक्षा कर सकते हैं?
एमडी एक्सएफ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.