23 बेफंगेस, 713 बाइट्स
एकमात्र भाषा जिसे मैं वास्तव में जानता हूं, वह है बेफ्यूज, इसलिए कई भाषाओं के बजाय, मैं सिर्फ बीफ्यूंज के कई कार्यान्वयनों के साथ गया हूं। मेरा मानना है कि यह अभी भी पीपीसीजी नियमों के तहत वैध है, जो भाषा को इसके कार्यान्वयन से परिभाषित करने पर विचार करते हैं ।
8023/# !-1401p680p88+79*6+1p238*7+0pg90p$#v0';1';+>9%80p$$$$"ph~s"+3vv
vv_2#!>#-/\#21#:+#:>#\<0/-2*3`0:-/2g01g00p>#< 2#0 ^#1/4*:*9"9"p00***<<
>>$:2%3*-4/3g68*-70p1-0`02-3/-03-2%1+2/-70g+80g65+70g`7++3g68*-70g9`*v
0168:0>0133?45130120340200v00:<+8*+76%4p00+5/4:+-*86g3++98/2%+98g09+<<
@>gg#^:#+,#$"!"-#1_@
!Helo Byd!!!!!Hai dunia!!!!Ciao mondo!!!Hallo Wereld!!!!
!Hallo Welt!!!Halo Dunia!!!Halo Dunya!!!Bonjour monde!!!
!Hei Verden!!!Hej Verden!!!Moien Welt!!!Labas pasauli!!!
!Molo Lizwe!!!Salut Lume!!!Hei maailma!!Sveika pasaule!!
!Hello World!!Salom Dunyo!!Tere maailm!!Sawubona Mhlaba!
!Kaixo Mundua!Salamu Dunia!Sannu Duniya!!!!!!!!!!!!!!!!!
Befunge के बारे में निराशाजनक बात यह है कि यद्यपि एक खुला स्रोत संदर्भ कार्यान्वयन है, और भाषा स्वयं मृत सरल है, एक भी तृतीय-पक्ष दुभाषिया नहीं है (जो मुझे पता है) कि बिल्कुल संदर्भ व्यवहार से मेल खाता है। हर कार्यान्वयन एक अलग तरीके से विफल हो जाता है।
प्लस साइड पर, यह हमें कोड का एक टुकड़ा विकसित करने का अवसर देता है जो लगभग हर दुभाषिया में एक अलग परिणाम देगा। और यही मैं ऊपर कार्यक्रम में प्रयास कर रहा हूं।
यदि किसी को परिणामों को सत्यापित करने में रुचि है, तो मैंने विभिन्न कार्यान्वयन को श्रेणियों में वर्गीकृत करने की कोशिश की है कि वे कितने आसान हैं, और उठना आसान है (उदाहरण के लिए कुछ लोग विंडोज बायनेरिज़ को चलाने में सक्षम नहीं हो सकते हैं, या करने के लिए तैयार नहीं हो सकते हैं स्रोत से निर्माण, लेकिन हर कोई ऑनलाइन दुभाषियों का परीक्षण करने में सक्षम होना चाहिए)।
ऑनलाइन इंटरप्रिटेटर
कोई स्थापना की आवश्यकता है। यह आमतौर पर कोड में चिपकाने और बटन या दो पर क्लिक करने की बात है। लेकिन ध्यान दें कि इनमें से कुछ काफी धीमी हैं, इसलिए निष्पादन को समाप्त करने के लिए कुछ समय की आवश्यकता हो सकती है।
अलेक्सियो 'बेफ्यूज प्लेग्राउंड -
सलामु दूनिया!
Clear...बटन पर क्लिक करें और कोड को इनपुट फ़ील्ड में पेस्ट करें। Editदुभाषिया को सक्रिय करने के लिए स्विच को टॉगल करें , और फिर Runनिष्पादन शुरू करने के लिए बटन पर क्लिक करें।
ध्यान दें कि यह साइट संभवतः क्रोम के अलावा ब्राउज़र के अन्य में काम नहीं करेगी।
बेफुंगियस -
मोलो लिज़वे!
इनपुट फ़ील्ड में कोड पेस्ट करें, जिससे मौजूदा कोड को अधिलेखित करना सुनिश्चित हो सके। फिर Runनिष्पादित करने के लिए बटन पर क्लिक करें।
डेविड क्लिक की बेफिक्रे 93 दुभाषिया -
सन्नू दुनीया !
प्लेफील्ड इनपुट फ़ील्ड में कोड पेस्ट करें , और फिर Runनिष्पादन शुरू करने के लिए बटन पर क्लिक करें।
इयान ऑसगूड की बेफुज -93 दुभाषिया -
सालुत लूम !
Showबटन के नीचे इनपुट फ़ील्ड में कोड पेस्ट करें, यह सुनिश्चित करना @
कि पहले से ही वहाँ है। क्लिक करें Show, कोड आयात करने के लिए उसके बाद बटन Runबटन का निष्पादन शुरू कर।
jsFunge IDE -
हेज वर्डन!
सबसे पहले हेल्प डायलॉग को बंद करें, फिर ओपन / इंपोर्ट टूलबार बटन (बाएं से दूसरा) पर क्लिक करें, कोड में पेस्ट करें, और क्लिक करें OK। निष्पादित करने के लिए, रन मोड बटन पर क्लिक करें (बाएं से चौथे), और फिर प्रारंभ करें (बाएं से पांचवें)।
यह भी ध्यान दें कि कुछ कंसोल-आधारित व्याख्याकार वास्तव में टीआईओ पर उपलब्ध हैं, इसलिए जब तक वे तकनीकी रूप से ऑनलाइन दुभाषियों नहीं होते हैं, उन्हें ऑनलाइन परीक्षण किया जा सकता है। उन लोगों के लिए जो समर्थित हैं (वर्तमान में BEF, FBBI, MTFI और PyFunge), मैंने इसे ऑनलाइन आज़माया है ! उनकी प्रविष्टि के बगल में लिंक।
जावा आईडीई
आपको इनके लिए जावा रन-टाइम इंस्टॉल करना होगा, लेकिन इन्हें सैद्धांतिक रूप से किसी भी प्लेटफॉर्म पर काम करना चाहिए। केवल विंडोज पर परीक्षण किया गया है।
एशले मिल्स विजुअल बेगुंज एप्लेट -
मोयन वेल्ट!
यह शुरू में एक ऑनलाइन एपलेट था जो दुर्भाग्य से अब उपलब्ध नहीं है, लेकिन आप अभी भी जार डाउनलोड कर सकते हैं और इसे स्थानीय रूप से डेस्कटॉप एप्लिकेशन के रूप में चला सकते हैं। आपको प्रोग्राम एडिटर विंडो में कोड पेस्ट करना होगा , फिर Convertबटन पर क्लिक करें, उसके बाद बटन पर क्लिक Runकरें।
WASABI: वसाबी का एक शानदार असिनइन बेन्ज इंटरप्रेटर -
हेलो वेल्ट!
कोड में चिपकाने के लिए, सही संपादक विंडो के ऊपरी बाएं कोने में क्लिक करें (यह चाहिए बहुत शीर्ष बाएँ हो) स्पर्श करें और चिपकाएं मेनू आइटम। फिर पूर्ण गति चेक बॉक्स सक्षम करें (अन्यथा यह हमेशा के लिए ले जाएगा), और Run!निष्पादन शुरू करने के लिए बटन पर क्लिक करें।
YABI93: अभी तक एक और Befunge93 दुभाषिया -
हेलो दूनिया!
संपादक विंडो में कोड पेस्ट करने के लिए Ctrl+ A, Ctrl+ दबाएं , Vडिफ़ॉल्ट स्रोत को ओवरराइट करना सुनिश्चित करें। फिर Startनिष्पादन शुरू करने के लिए बटन पर क्लिक करें।
विंडोज आईडीई
आपको आमतौर पर इन के लिए विंडोज की आवश्यकता होगी, हालांकि कुछ मामलों में अन्य ऑपरेटिंग सिस्टम के लिए बायनेरिज़ उपलब्ध हो सकते हैं। मैं वादा नहीं कर सकता हालांकि कोड अन्य प्लेटफार्मों पर काम करेगा।
BefunExec -
हैलो वर्ल्ड!
आप संपादक में कोड पेस्ट नहीं कर सकते हैं, इसलिए आपको पहले इसे डिस्क पर सहेजने की आवश्यकता होगी। फिर आईडीई से, डिस्क से कोड लोड करने के लिए फ़ाइल> ओपन मेनू का उपयोग करें, और इसे चलाने के लिए सिमुलेशन> रन / पॉज़ मेनू का चयन करें ।
BeQunge -
लबास पसौली!
कोड में पेस्ट करने के लिए Ctrl+ दबाएँ Vऔर फिर निष्पादित करना शुरू करने के लिए डीबग टूलबार बटन (ब्लू कॉग) पर क्लिक करें । एक बार जब डीबगर पैनल दिखाई देता है, तो आप सेट करना चाहेंगे स्पीड स्लाइडर के दाएँ करने के लिए बटन - - अधिकतम करने के लिए अन्यथा यह खत्म करने के लिए हमेशा के लिए ले लेंगे।
कवक -
तेरे माँल!
प्रेस Ctrl+ Vकोड में पेस्ट करने के लिए, और उसके बाद F5इसे चलाने के लिए।
Visbef: विंडोज के लिए विजुअल बेगुंज '93 -
हेलो वेर्ल्ड !
आप संपादक में कोड पेस्ट नहीं कर सकते हैं, इसलिए आपको पहले इसे डिस्क पर सहेजने की आवश्यकता होगी। फिर आईडीई से, फ़ाइल ब्राउज़र खोलने के लिए Ctrl+ Oडिस्क से कोड लोड करने के लिए + दबाएं और F5इसे चलाने के लिए दबाएं ।
विंडोज कंसोल एप्स
फिर से इन्हें आमतौर पर विंडोज की आवश्यकता होती है, हालांकि अन्य प्लेटफॉर्म उपलब्ध हो सकते हैं, लेकिन काम करने की गारंटी नहीं है।
सभी मामलों में कोड को डिस्क पर एक फ़ाइल में सहेजने की आवश्यकता होगी और फ़ाइल नाम एक कमांड लाइन पैरामीटर ( source.bf नीचे दी गई उदाहरण कमांड लाइनों में) के रूप में दुभाषिया को दिया जाएगा। यह भी ध्यान दें कि इनमें से कुछ तकनीकी रूप से Befunge-98 दुभाषिए हैं, और Befunge-93 संगतता मोड को मजबूर करने के लिए एक विशेष कमांड-लाइन विकल्प के साथ चलाया जाना चाहिए। यदि आप ऐसा नहीं करते हैं, तो आपको सही परिणाम नहीं मिलेंगे।
BEFI: रग्गुलो के बीफुंज -93 इंटरप्रेटर -
हेई वर्डन!
कमांड लाइन: bef93w32 -q source.bf
CCBI: समवर्ती बीफुंज -98 इंटरप्रेटर के अनुरूप -
स्विका पसौले!
कॉमन लाइन: ccbi --befunge93 source.bf
MTFI: मैगस टेक्नीका फन्ज इंटरप्रेटर -
हाय दुनीया !
कमांड लाइन: mtfi -3 source.bf
( इसे ऑनलाइन आज़माएं! )
पायथन और PHP कंसोल एप्स
इन्हें उपयुक्त स्क्रिप्टिंग भाषा की आवश्यकता होती है - या तो पायथन या पीएचपी।
Befungee -
हेलो बायड !
कमांड लाइन: befungee.py source.bf
PyFunge -
हेलो डुनिया !
कमांड लाइन: pyfunge -v 93 source.bf
( इसे ऑनलाइन आज़माएं! )
Bephunge -
बोनजोर मोंडे!
कमांड लाइन: php bephunge.phps source.bf
स्रोत-केवल कंसोल ऐप्स
इन्हें स्रोत से निर्मित करने की आवश्यकता होगी, और यह आमतौर पर * निक्स-जैसा वातावरण के साथ सबसे आसान है। विंडोज पर मैं लिनक्स के लिए विंडोज सबसिस्टम का उपयोग करता हूं ।
BEF: Befunge-93 संदर्भ वितरण -
Ciao mondo!
कमांड लाइन: bef -q source.bf
( इसे ऑनलाइन आज़माएं! )
cfunge -
सवोना म्हलाबा!
कमांड लाइन: cfunge -s 93 source.bf
FBBI: ज्वलंत गोजातीय Befunge-98 Intepreter -
हे Maailma!
कमांड लाइन: fbbi -93 source.bf
( इसे ऑनलाइन आज़माएं! )
फंगी -
काइक्सो मुंडुआ!
कमांड लाइन: fungi source.bf
आरसी / फंज -98 -
सैलूम डन्यो!
कमांड लाइन: rcfunge -93 source.bf
यह काम किस प्रकार करता है
इसके साथ चुनौती सबसे कम संख्या में परीक्षणों को मिल रही थी जो दुभाषियों के बीच सबसे अधिक भेदभाव प्रदान करते हैं। अंत में यह चार मुख्य परीक्षण अनुक्रमों के लिए नीचे आया:
पहला ऑफसेट -1,1 से पढ़ी गई एक आउट-ऑफ-बाउंड मेमोरी है। सिद्धांत रूप में इसे हमेशा 32 (ASCII स्थान) वापस करना चाहिए, लेकिन वास्तव में अभ्यास में 10 भिन्नताएं थीं। यह परीक्षण इस तथ्य से जटिल है कि दुभाषियों में से दो एक आउट-ऑफ-बाउंड्स पर दुर्घटनाग्रस्त हो जाते हैं, इसलिए विशेष-केस परीक्षणों (विभाजन राउंडिंग और स्पेस ब्रिजिंग) के एक जोड़े को उन दोनों को सीमा में वापस करने के लिए आवश्यक था।
दूसरा अनुक्रम Befunge-98 कार्यक्षमता का एक परीक्षण है - विशेष रूप से निर्देश ;
और '
। लगभग सभी व्याख्याकार Befunge-93 हैं, या Befunge-93 संगतता मोड में चलाए जाते हैं, इसलिए उन्हें केवल उन निर्देशों को अनदेखा करना चाहिए। व्यवहार में इस अनुक्रम की व्याख्या करने के 6 अलग-अलग तरीके थे।
तीसरा परीक्षण मेमोरी कोशिकाओं की सीमा की जांच करता है। संदर्भ दुभाषिया में, मेमोरी कोशिकाओं को 8-बिट पर हस्ताक्षरित किया जाता है, लेकिन अन्य कार्यान्वयन 8-बिट से अनबाउंड, कुछ हस्ताक्षरित और कुछ अहस्ताक्षरित की सीमा में भिन्न होते हैं। हालांकि, इस परीक्षण के प्रयोजनों के लिए, हमें केवल उन वेरिएंट में से 5 में अंतर करना था।
चौथा और अंतिम अनुक्रम अंडरफ्लो और नकारात्मक विभाजन परीक्षणों का एक संयोजन है। कई तरीके हैं जिनमें दुभाषियों को गलत तरीके से अंडरफ़्लो किया जाता है, और कम से कम 3 अलग-अलग तरीके हैं जिसमें विभाजन और मोडुलो निर्देश लागू किए जाते हैं, लेकिन केवल 3 संयोजन थे जिनकी हमने यहां देखभाल की थी।
इन अनुक्रमों में से प्रत्येक ने एक एकल संख्या लौटा दी, और उन चार संख्याओं को संयुक्त (कुछ मूल अंकगणित और अनुवाद तालिकाओं के माध्यम से) 0 से 22 की सीमा में एक अंतिम मूल्य का उत्पादन करने के लिए किया गया था। उस मूल्य को वास्तविक संदेश देखने के लिए एक सूचकांक के रूप में इस्तेमाल किया जा सकता है प्रदर्शित करने के लिए।