अंतर्राष्ट्रीय अस्पष्ट सी कोड प्रतियोगिता: Difference between revisions

From Vigyanwiki
(Created page with "{{short description|Computer programming contest}} {{primary sources|date=November 2011}} {{Infobox recurring event |name = <!--Uses page name if omitted--> |nati...")
 
No edit summary
Line 1: Line 1:
{{short description|Computer programming contest}}
{{short description|Computer programming contest}}
{{primary sources|date=November 2011}}
{{Infobox recurring event
{{Infobox recurring event
|name              = <!--Uses page name if omitted-->
|name              = <!--Uses page name if omitted-->
Line 39: Line 38:
|footnotes        =  
|footnotes        =  
}}
}}
इंटरनेशनल ऑबफ्यूस्केटेड सी कोड प्रतियोगिता (संक्षिप्त IOCCC) सबसे रचनात्मक रूप से अस्पष्ट कोड C (प्रोग्रामिंग भाषा) स्रोत कोड के लिए एक [[कंप्यूटर प्रोग्रामिंग]] प्रतियोगिता है। वार्षिक रूप से आयोजित, इसे [सी] की वाक्य-विन्यास अपारदर्शिता का जश्न मनाने के रूप में वर्णित किया गया है।<ref>{{cite journal |url=http://pcworld.co.nz/pcworld/pcw.nsf/how-to/beyond-the-command-line |access-date=2013-04-07 |title=कमांड लाइन से परे|journal=PC World New Zealand|last=Palmer|first=Geoff|date=November 1, 2004 |url-status=dead |archive-url=https://web.archive.org/web/20130210081342/http://pcworld.co.nz/pcworld/pcw.nsf/how-to/beyond-the-command-line |archive-date=February 10, 2013 }}</ref> 2020 में आयोजित 27वीं प्रतियोगिता के लिए विजेता कोड जुलाई 2020 में जारी किया गया था।<ref>{{cite web |url=https://www.ioccc.org/years-spoiler.html |title=स्पॉइलर के साथ पिछले IOCCC विजेता|access-date=2023-05-01 |publisher=IOCCC}}</ref> पिछली प्रतियोगिताएं 1984-1996, 1998, 2000, 2001, 2004-2006, 2011-2015 और 2018-2020 में आयोजित की गई थीं।
इंटरनेशनल ऑबफ्यूस्केटेड सी कोड प्रतियोगिता (संक्षिप्त आईओसीसीसी) सबसे रचनात्मक रूप से अस्पष्ट कोड C (प्रोग्रामिंग भाषा) स्रोत कोड के लिए एक [[कंप्यूटर प्रोग्रामिंग]] प्रतियोगिता है। वार्षिक रूप से आयोजित, इसे सी की वाक्य-विन्यास अपारदर्शिता का जश्न मनाने के रूप में वर्णित किया गया है।<ref>{{cite journal |url=http://pcworld.co.nz/pcworld/pcw.nsf/how-to/beyond-the-command-line |access-date=2013-04-07 |title=कमांड लाइन से परे|journal=PC World New Zealand|last=Palmer|first=Geoff|date=November 1, 2004 |url-status=dead |archive-url=https://web.archive.org/web/20130210081342/http://pcworld.co.nz/pcworld/pcw.nsf/how-to/beyond-the-command-line |archive-date=February 10, 2013 }}</ref> 2020 में आयोजित 27वीं प्रतियोगिता के लिए विजेता कोड जुलाई 2020 में जारी किया गया था।<ref>{{cite web |url=https://www.ioccc.org/years-spoiler.html |title=स्पॉइलर के साथ पिछले IOCCC विजेता|access-date=2023-05-01 |publisher=IOCCC}}</ref> पिछली प्रतियोगिताएं 1984-1996, 1998, 2000, 2001, 2004-2006, 2011-2015 और 2018-2020 में आयोजित की गई थीं।


न्यायाधीशों के एक पैनल द्वारा प्रविष्टियों का मूल्यांकन गुमनाम रूप से किया जाता है। निर्णय प्रक्रिया को प्रतियोगिता दिशानिर्देशों में प्रलेखित किया गया है<ref name=guidelines>{{cite web |url=https://www.ioccc.org/2015/guidelines.txt |title=2015 Guidelines |access-date=2023-05-01 |year=2015 |format=plain text |publisher=IOCCC}}</ref> और उन्मूलन दौर के होते हैं। परंपरा के अनुसार, प्रत्येक प्रतियोगिता के लिए प्रविष्टियों की कुल संख्या के बारे में कोई सूचना नहीं दी जाती है। जीतने वाली प्रविष्टियों को [[सी प्रीप्रोसेसर]] का वर्स्ट एब्यूज या मोस्ट एरेटिक बिहेवियर जैसी श्रेणी से सम्मानित किया जाता है, और फिर आधिकारिक IOCCC वेबसाइट पर इसकी घोषणा की जाती है। प्रतियोगिता में कहा गया है कि IOCCC वेबसाइट पर घोषित किया जाना जीत का इनाम है।
न्यायाधीशों के एक पैनल द्वारा प्रविष्टियों का मूल्यांकन गुमनाम रूप से किया जाता है। निर्णय प्रक्रिया को प्रतियोगिता दिशानिर्देशों में प्रलेखित किया गया है<ref name=guidelines>{{cite web |url=https://www.ioccc.org/2015/guidelines.txt |title=2015 Guidelines |access-date=2023-05-01 |year=2015 |format=plain text |publisher=IOCCC}}</ref> और उन्मूलन आवेग होता हैं। परंपरा के अनुसार, प्रत्येक प्रतियोगिता के लिए प्रविष्टियों की कुल संख्या के बारे में कोई सूचना नहीं दी जाती है। जीतने वाली प्रविष्टियों को [[सी प्रीप्रोसेसर]] का वर्स्ट एब्यूज या मोस्ट एरेटिक बिहेवियर जैसी श्रेणी से सम्मानित किया जाता है, और फिर आधिकारिक आईओसीसीसी वेबसाइट पर इसकी घोषणा की जाती है। प्रतियोगिता में कहा गया है कि आईओसीसीसी वेबसाइट पर घोषित किया जाना जीत का इनाम है।


== इतिहास ==
== इतिहास ==


IOCCC की शुरुआत [[लैंडन कर्ट नोल]] और लैरी बासेल ने 1984 में नेशनल सेमीकंडक्टर के जेनिक्स पोर्टिंग ग्रुप में काम करते हुए की थी। प्रतियोगिता के लिए विचार तब आया जब उन्होंने कुछ खराब लिखे गए कोड के बारे में एक दूसरे के साथ नोट्स की तुलना की, जिसे उन्हें ठीक करना था, विशेष रूप से [[बॉर्न शेल]], जो [[ALGOL 68]] सिंटैक्स का अनुकरण करने के लिए मैक्रोज़ का उपयोग करता था, और बीएसडी के लिए [[उंगली (यूनिक्स)]] का एक बग्गी संस्करण।<ref>{{cite web |url=https://www.ioccc.org/faq.html |title=अक्सर पूछे जाने वाले प्रश्न|publisher=IOCCC |access-date=2023-05-01}}</ref> प्रतियोगिता ही 1993 के कंप्यूटर बाउल में प्रश्नोत्तरी प्रश्न का विषय थी।<ref>[http://nl.newsbank.com/nl-search/we/Archives?p_product=SJ&s_site=mercurynews&p_multi=SJ&p_theme=realcities&p_action=search&p_maxdocs=200&p_topdoc=1&p_text_direct-0=0EB71B1E74EA9019&p_field_direct-0=document_id&p_perpage=10&p_sort=YMD_date:D&s_trackval=GooglePM "Top Execs Fail To Compute Correctly"]. ''[[San Jose Mercury News]]'', California. May 15, 1993. p. 1A. Via [[Newsbank]]. {{subscription required}}</ref> 2006 में शुरू होने वाले पांच वर्षों के अंतराल के बाद, प्रतियोगिता 2011 में लौटी।<ref name=SJMerc11>{{cite web|url=https://www.pcworld.com/article/478306/obfuscated_code_contest_returns.html |title=अस्पष्ट कोड प्रतियोगिता वापसी|magazine=[[PC World]]|date=November 15, 2011|last=Jackson|first=Joab|access-date=2023-05-01}}</ref>
आईओसीसीसी की प्रारंभ [[लैंडन कर्ट नोल]] और लैरी बासेल ने 1984 में नेशनल अर्धचालक के जेनिक्स पोर्टिंग ग्रुप में काम करते हुए की थी। प्रतियोगिता के लिए विचार तब आया जब उन्होंने कुछ व्यर्थ लिखे गए कोड के बारे में एक दूसरे के साथ नोट्स की तुलना की थी, जिसे उन्हें ठीक करना था, विशेष रूप से [[बॉर्न शेल]], जो [[ALGOL 68|एल्गोल 68]] सिंटैक्स का अनुकरण करने के लिए मैक्रोज़ का उपयोग करता था, और बीएसडी के लिए [[उंगली (यूनिक्स)]] का एक बग्गी संस्करण <ref>{{cite web |url=https://www.ioccc.org/faq.html |title=अक्सर पूछे जाने वाले प्रश्न|publisher=IOCCC |access-date=2023-05-01}}</ref> प्रतियोगिता ही 1993 के कंप्यूटर बाउल में प्रश्नोत्तरी प्रश्न का विषय थी।<ref>[http://nl.newsbank.com/nl-search/we/Archives?p_product=SJ&s_site=mercurynews&p_multi=SJ&p_theme=realcities&p_action=search&p_maxdocs=200&p_topdoc=1&p_text_direct-0=0EB71B1E74EA9019&p_field_direct-0=document_id&p_perpage=10&p_sort=YMD_date:D&s_trackval=GooglePM "Top Execs Fail To Compute Correctly"]. ''[[San Jose Mercury News]]'', California. May 15, 1993. p. 1A. Via [[Newsbank]]. {{subscription required}}</ref> 2006 में प्रारंभ होने वाले पांच वर्षों के अंतराल के बाद, प्रतियोगिता 2011 में लौटी <ref name=SJMerc11>{{cite web|url=https://www.pcworld.com/article/478306/obfuscated_code_contest_returns.html |title=अस्पष्ट कोड प्रतियोगिता वापसी|magazine=[[PC World]]|date=November 15, 2011|last=Jackson|first=Joab|access-date=2023-05-01}}</ref> अन्य प्रोग्रामिंग प्रतियोगिताओं की तुलना में, आईओसीसीसी को डॉ. डॉब के जर्नल के संपादक [[माइकल स्वेन (तकनीकी लेखक)]] द्वारा इतना महत्वपूर्ण नहीं बताया गया है।<ref>{{cite journal |url=https://www.drdobbs.com/architecture-and-design/there-must-be-contest/207404123 |title=प्रतियोगिता होनी चाहिए|first=Michael |last=Swaine |author-link=Michael Swaine (technical author) |journal=[[Dr. Dobb's Journal]]|date=May 1, 2008 |access-date=2023-05-01}}</ref>
अन्य प्रोग्रामिंग प्रतियोगिताओं की तुलना में, IOCCC को डॉ. डॉब के जर्नल के संपादक [[माइकल स्वेन (तकनीकी लेखक)]] द्वारा इतना गंभीर नहीं बताया गया है।<ref>{{cite journal |url=https://www.drdobbs.com/architecture-and-design/there-must-be-contest/207404123 |title=प्रतियोगिता होनी चाहिए|first=Michael |last=Swaine |author-link=Michael Swaine (technical author) |journal=[[Dr. Dobb's Journal]]|date=May 1, 2008 |access-date=2023-05-01}}</ref>




== नियम ==
== नियम ==


प्रत्येक वर्ष, प्रतियोगिता के नियम IOCCC की वेबसाइट पर प्रकाशित किए जाते हैं। सभी सामग्री Creative Commons लाइसेंस [[Share-alike]]|BY-SA 3.0 Unported के तहत प्रकाशित की गई है।<ref>[https://www.ioccc.org/ IOCCC home page, footer], and in each hint.txt file</ref> नियम साल-दर-साल बदलते रहते हैं और दिशानिर्देशों के एक सेट के साथ पोस्ट किए जाते हैं जो नियमों की भावना को व्यक्त करने का प्रयास करते हैं।
प्रत्येक वर्ष, प्रतियोगिता के नियम आईओसीसीसी की वेबसाइट पर प्रकाशित किए जाते हैं। सभी पदार्थ क्रिएटिव कॉमन्स लाइसेंस [[Share-alike|साझा-समान]] या BY-SA 3.0 अनपोर्टेड के अनुसार प्रकाशित की गई है।<ref>[https://www.ioccc.org/ IOCCC home page, footer], and in each hint.txt file</ref> नियम साल-दर-साल बदलते रहते हैं और दिशानिर्देशों के एक सेट के साथ पोस्ट किए जाते हैं जो नियमों की भावना को व्यक्त करने का प्रयास करते हैं।


{{Blockquote|text=Hacking the contest rules is a tradition. — Landon Curt Noll, 2011<ref name=SJMerc11 />}}
{{Blockquote|text=प्रतियोगिता के नियमों को हैक करना एक परंपरा है। - लैंडन कर्ट नोल, 2011<ref name=SJMerc11 />}}


नियमों को अक्सर जानबूझकर खामियों के साथ लिखा जाता है कि प्रतियोगियों को खोजने और दुरुपयोग करने के लिए प्रोत्साहित किया जाता है।<ref name=guidelines />कमियों का लाभ उठाने वाली प्रविष्टियाँ अगले वर्ष की प्रतियोगिता के नियमों को समायोजित करने का कारण बन सकती हैं।<ref name=guidelines />
नियमों को अधिकांशतः जानबूझकर खामियों के साथ लिखा जाता है कि प्रतियोगियों को खोजने और दुरुपयोग करने के लिए प्रोत्साहित किया जाता है।<ref name=guidelines /> कमियों का लाभ उठाने वाली प्रविष्टियाँ अगले वर्ष की प्रतियोगिता के नियमों को समायोजित करने का कारण बन सकती हैं।<ref name=guidelines />




== रुकावटें नियोजित ==
== आक्षेप नियोजित ==


प्रविष्टियाँ अक्सर अजीब या असामान्य तरकीबों का इस्तेमाल करती हैं, जैसे कि C प्रीप्रोसेसर का उपयोग उन चीजों को करने के लिए करना जिन्हें करने के लिए इसे डिज़ाइन नहीं किया गया था (कुछ मामलों में शानदार ढंग से, डॉ. डॉब्स के अनुसार,<ref>{{cite web |url=https://www.drdobbs.com/open-source/code-finessing/193104882?pgno=2 |title=कोड चालाकी|magazine=[[Dr. Dobb's Journal]]|author=Spinellis, Diomidis |date=October 5, 2006 |access-date=2023-05-01}}</ref> सी प्रीप्रोसेसर में एक 11-बिट [[अंकगणितीय तर्क इकाई]] बनाने वाली एक प्रविष्टि के साथ<ref name="cpp_abuse">[https://www.ioccc.org/2004/vik2.hint IOCCC 2004 - CPP का सबसे अच्छा दुरुपयोग] IOCCC। 2023-05-01 को पुनः प्राप्त किया गया।</ref>), या सी प्रोग्रामिंग भाषा में सामान्य रूप से उपयोग किए जाने वाले निर्माणों से बचने के लिए एक ही चीज़ को प्राप्त करने के अधिक अस्पष्ट तरीकों के पक्ष में।
प्रविष्टियाँ अधिकांशतः विचित्र या असामान्य युक्तियाँ का उपयोग करती हैं, जैसे कि C प्रीप्रोसेसर का उपयोग उन चीजों को करने के लिए करना जिन्हें करने के लिए इसे डिज़ाइन नहीं किया गया था (कुछ स्थितियों में सही विधि से, डॉ. डॉब्स के अनुसार,<ref>{{cite web |url=https://www.drdobbs.com/open-source/code-finessing/193104882?pgno=2 |title=कोड चालाकी|magazine=[[Dr. Dobb's Journal]]|author=Spinellis, Diomidis |date=October 5, 2006 |access-date=2023-05-01}}</ref> सी प्रीप्रोसेसर में एक 11-बिट [[अंकगणितीय तर्क इकाई]] बनाने वाली एक प्रविष्टि के साथ <ref name="cpp_abuse">[https://www.ioccc.org/2004/vik2.hint IOCCC 2004 - CPP का सबसे अच्छा दुरुपयोग] IOCCC। 2023-05-01 को पुनः प्राप्त किया गया।</ref>), या सी प्रोग्रामिंग भाषा में सामान्य रूप से उपयोग किए जाने वाले निर्माणों से बचने के लिए एक ही चीज़ को प्राप्त करने के अधिक अस्पष्ट विधियों के पक्ष में उपयोग किया जाता है।


योगदान में [[एएससीआईआई कला]] के तरीके के बाद छवियों, पाठ आदि के समान स्वरूपित स्रोत कोड शामिल है, कोड को पढ़ने के लिए कठिन बनाने के लिए प्रीप्रोसेसर पुनर्वितरण, और [[स्व-संशोधित कोड]]कई वर्षों में, एक प्रविष्टि प्रस्तुत की गई थी जिसके लिए अगले वर्ष के कुछ नियमों की एक नई परिभाषा की आवश्यकता थी। यह एक उच्च सम्मान के रूप में माना जाता है। इसका एक उदाहरण दुनिया का सबसे छोटा क्विन (कंप्यूटिंग)|स्व-पुनरुत्पादन कार्यक्रम है। प्रविष्टि अपने स्वयं के स्रोत कोड को आउटपुट करने के लिए डिज़ाइन किया गया एक प्रोग्राम था, और जिसमें स्रोत कोड के शून्य बाइट थे। जब प्रोग्राम चल रहा था, तो यह अपने स्रोत कोड के बराबर शून्य बाइट्स प्रिंट करता था।<ref>{{cite web|year=1994|title=smr.संकेत|url=https://www.ioccc.org/1994/smr.संकेत|access-date=2006-09-16|publisher=IOCCC|format=plain text}}</ref>
[[एएससीआईआई कला|एएससीआईआई आर्ट]] के विधि के बाद छवियों आदि के समान स्वरूपित स्रोत कोड सम्मिलित है, कोड को पढ़ने के लिए कठिन बनाने के लिए प्रीप्रोसेसर पुनर्वितरण, और [[स्व-संशोधित कोड]] कई वर्षों में, एक प्रविष्टि प्रस्तुत की गई थी जिसके लिए अगले वर्ष के कुछ नियमों की एक नई परिभाषा की आवश्यकता थी। यह एक उच्च सम्मान के रूप में माना जाता है। इसका एक उदाहरण संसार का सबसे छोटा क्विन (कंप्यूटिंग) या स्व-पुनरुत्पादन प्रोग्राम है। प्रविष्टि अपने स्वयं के स्रोत कोड को आउटपुट करने के लिए डिज़ाइन किया गया एक प्रोग्राम था, और जिसमें स्रोत कोड के शून्य बाइट थे। जब प्रोग्राम चल रहा था, जिससे यह अपने स्रोत कोड के बराबर शून्य बाइट्स प्रिंट करता था।<ref>{{cite web|year=1994|title=smr.संकेत|url=https://www.ioccc.org/1994/smr.संकेत|access-date=2006-09-16|publisher=IOCCC|format=plain text}}</ref>
अस्पष्टता को अपने चरम सीमा तक ले जाने के प्रयास में, प्रतियोगियों ने ऐसे प्रोग्राम तैयार किए हैं जो सी मानकों के किनारों के चारों ओर स्कर्ट करते हैं, या ऐसे निर्माण होते हैं जो संकलक में शायद ही कभी उपयोग किए जाने वाले कोड पथ संयोजनों को ट्रिगर करते हैं। परिणामस्वरूप, पिछली कई प्रविष्टियाँ आधुनिक कंपाइलर में सीधे संकलित नहीं हो सकती हैं, और कुछ क्रैश का कारण बन सकती हैं।
 
अस्पष्टता को अपने चरम सीमा तक ले जाने के प्रयास में, प्रतियोगियों ने ऐसे प्रोग्राम तैयार किए हैं जो सी मानकों के किनारों के चारों ओर स्कर्ट करते हैं, या ऐसे निर्माण होते हैं जो संकलक में संभवतः ही कभी उपयोग किए जाने वाले कोड पथ संयोजनों को ट्रिगर करते हैं। परिणामस्वरूप, पिछली कई प्रविष्टियाँ आधुनिक कंपाइलर में सीधे संकलित नहीं हो सकती हैं, और कुछ क्रैश का कारण बन सकती हैं।


== उदाहरण ==
== उदाहरण ==
केवल कुछ किलोबाइट्स की कोड आकार सीमा के भीतर, प्रतियोगियों ने जटिल चीजें करने में कामयाबी हासिल की - 2004 के विजेता ने एक ऑपरेटिंग सिस्टम को बदल दिया।<ref>{{cite web| url=https://www.ioccc.org/2004/gavin.hint |title=gavin.hint3 |year=2004 |format=plain text |publisher=IOCCC |access-date=2023-05-01}}</ref>
केवल कुछ किलोबाइट्स की कोड आकार सीमा के अन्दर, प्रतियोगियों ने जटिल चीजें करने में सफलता प्राप्त की थी 2004 के विजेता ने एक ऑपरेटिंग सिस्टम को बदल दिया था।<ref>{{cite web| url=https://www.ioccc.org/2004/gavin.hint |title=gavin.hint3 |year=2004 |format=plain text |publisher=IOCCC |access-date=2023-05-01}}</ref>




=== टोलेडो नैनोचेस ===
=== टोलेडो नैनोचेस ===
Toledo Nanochess मैक्सिकन सॉफ्टवेयर डेवलपर ऑस्कर Toledo Gutiérrez, IOCCC के पांच बार विजेता द्वारा बनाया गया एक [[शतरंज इंजन]] है। IOCCC नियमों के अनुसार, यह 1255 वर्ण लंबा है। लेखक का दावा है कि यह सी भाषा में लिखा गया दुनिया का सबसे छोटा शतरंज कार्यक्रम है।
टोलेडो नैनोचेस मैक्सिकन सॉफ्टवेयर डेवलपर ऑस्कर टोलेडो गुतिरेज़, आईओसीसीसी के पांच बार विजेता द्वारा बनाया गया एक [[शतरंज इंजन|चैस इंजन]] है। आईओसीसीसी नियमों के अनुसार, यह 1255 वर्ण लंबा है। लेखक का प्रमाणित है कि यह सी भाषा में लिखा गया संसार का सबसे छोटा चैस प्रोग्राम है।
 
टोलेडो नैनोचेस और अन्य इंजनों के लिए स्रोत कोड उपलब्ध है।<ref>{{cite web |url=https://nanochess.org/chess3.html |title=Toledo Nanochess and Toledo Picochess}}</ref> क्योंकि टोलेडो नैनोचेस 18वें आईओसीसीसी (सर्वश्रेष्ठ खेल) से टोलेडो की विजयी प्रविष्टि पर आधारित है <ref>{{cite web |url=https://www.ioccc.org/winners.html#Oscar_Toledo_G. |title=Winners: The authors of winning IOCCC entries}}</ref>), यह भारी अस्पष्ट कोड है।<ref>{{cite web |url=https://github.com/bormand/nanochess |title=नैनोचेस आंशिक रूप से अस्पष्टीकृत संस्करण|website=[[GitHub]] |access-date=1 May 2023}}</ref>


Toledo Nanochess और अन्य इंजनों के लिए स्रोत कोड उपलब्ध है।<ref>{{cite web |url=https://nanochess.org/chess3.html |title=Toledo Nanochess and Toledo Picochess}}</ref>
2 फरवरी 2014 को, लेखक ने टोलेडो नैनोचेस टिप्पणी स्रोत कोड पुस्तक प्रकाशित की थी, जिसमें पूरी तरह से टिप्पणी स्रोत कोड सम्मिलित है।<ref>{{Cite book|title=Toledo Nanochess: The commented source code|isbn=978-1-304-86437-6|first=Oscar|last=Toledo Gutiérrez|year=2014|publisher=[[Lulu (company)|Lulu]]}}</ref> 7 फरवरी, 2010 तक, यह केवल दो चैस इंजनों में से एक प्रतीत होता है, जो 2 किलोबाइट्स से कम में लिखा गया है, जो डच भौतिक विज्ञानी एचजी मुलर द्वारा माइक्रो-मैक्स के साथ पूर्ण नियमबद्ध चैस चालें चलाने में सक्षम हैं। 2014 में सुपर माइक्रो चैस ने 1 किलोबाइट के बैरियर को तोड़ा था <ref>{{Cite web|url=https://smmax.sourceforge.net|title=सुपर माइक्रो शतरंज इंजन - होम पेज - अत्यधिक कॉम्पैक्ट सी स्रोत और निष्पादन योग्य कार्यक्रम का आकार|website=smmax.sourceforge.net}}</ref> माइक्रो-मैक्स का एक व्युत्पन्न कुल 760 वर्ण (रिक्त स्थान और न्यूलाइन सम्मिलित) <ref>{{cite web |url=https://sourceforge.net/projects/smmax/files/sm-fide%20760.c/download |title=Super Micro FIDE 760}}</ref> टोलेडो के इंजन का एक छोटा संस्करण भी है, टोलेडो पिकोचेस, जिसमें 944 गैर-रिक्त वर्ण सम्मिलित हैं।
क्योंकि Toledo Nanochess 18वें IOCCC (सर्वश्रेष्ठ खेल) से टोलेडो की विजयी प्रविष्टि पर आधारित है<ref>{{cite web |url=https://www.ioccc.org/winners.html#Oscar_Toledo_G. |title=Winners: The authors of winning IOCCC entries}}</ref>), यह भारी अस्पष्ट कोड है।<ref>{{cite web |url=https://github.com/bormand/nanochess |title=नैनोचेस आंशिक रूप से अस्पष्टीकृत संस्करण|website=[[GitHub]] |access-date=1 May 2023}}</ref>
2 फरवरी 2014 को, लेखक ने Toledo Nanochess: The Commented Source Code पुस्तक प्रकाशित की, जिसमें पूरी तरह से टिप्पणी स्रोत कोड शामिल है।<ref>{{Cite book|title=Toledo Nanochess: The commented source code|isbn=978-1-304-86437-6|first=Oscar|last=Toledo Gutiérrez|year=2014|publisher=[[Lulu (company)|Lulu]]}}</ref>
7 फरवरी, 2010 तक, यह केवल दो शतरंज इंजनों में से एक प्रतीत होता है, जो 2 किलोबाइट्स से कम में लिखा गया है, जो डच भौतिक विज्ञानी एचजी मुलर द्वारा माइक्रो-मैक्स के साथ पूर्ण कानूनी शतरंज चालें चलाने में सक्षम हैं। 2014 में सुपर माइक्रो शतरंज ने 1 किलोबाइट के बैरियर को तोड़ा था<ref>{{Cite web|url=https://smmax.sourceforge.net|title=सुपर माइक्रो शतरंज इंजन - होम पेज - अत्यधिक कॉम्पैक्ट सी स्रोत और निष्पादन योग्य कार्यक्रम का आकार|website=smmax.sourceforge.net}}</ref> - माइक्रो-मैक्स का एक व्युत्पन्न - कुल 760 वर्ण (रिक्त स्थान और न्यूलाइन शामिल)<ref>{{cite web |url=https://sourceforge.net/projects/smmax/files/sm-fide%20760.c/download |title=Super Micro FIDE 760}}</ref> टोलेडो के इंजन का एक छोटा संस्करण भी है, टोलेडो पिकोचेस, जिसमें 944 गैर-रिक्त वर्ण शामिल हैं।


'स्रोत कोड अंश'
=== 'स्रोत कोड अंश' ===
<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
B,i,y,u,b,I[411],*G=I,x=10,z=15,M=1e4;X(w,c,h,e,S,s){int t,o,L,E,d,O=e,N=-M*M,K
B,i,y,u,b,I[411],*G=I,x=10,z=15,M=1e4;X(w,c,h,e,S,s){int t,o,L,E,d,O=e,N=-M*M,K
Line 121: Line 119:
}
}
</syntaxhighlight>
</syntaxhighlight>
(यह प्रविष्टि K&R C में लिखी गई थी; यह कुछ बदलावों के बिना ANSI C में ठीक से काम नहीं करती है।<ref>using gcc, compile with the following command line: <code>gcc -traditional-cpp -o r r.c</code> or <code>gcc -E r.c | sed 's/- -/--/g' > r2.c ; gcc -o r2 r2.c</code> (The source file is <code>r.c</code>){{Original research inline|date=April 2017}}</ref>)
(यह प्रविष्टि के&आर सी में लिखी गई थी; यह कुछ बदलावों के बिना एएनएसआई सी में ठीक से काम नहीं करती है।<ref>using gcc, compile with the following command line: <code>gcc -traditional-cpp -o r r.c</code> or <code>gcc -E r.c | sed 's/- -/--/g' > r2.c ; gcc -o r2 r2.c</code> (The source file is <code>r.c</code>){{Original research inline|date=April 2017}}</ref>)


=== उड़ान सिम्युलेटर ===
=== फ्लाइट सिम्युलेटर ===
एक अन्य उदाहरण निम्नलिखित उड़ान सिम्युलेटर है, जो 1998 IOCCC का विजेता है,<ref name=":0">[https://blog.aerojockey.com/post/iocccsim Carl Banks' Blog: IOCCC Flight Simulator]. blog.aerojockey.com. Retrieved 2023-05-01.</ref> परिकलित दांव: कंप्यूटर, जुआ और जीतने के लिए गणितीय मॉडलिंग (2001) में सूचीबद्ध और वर्णित के रूप में<ref>{{cite book |title= Calculated Bets: Computers, Gambling, and Mathematical Modeling to Win |url= https://archive.org/details/calculatedbetsco0000skie |url-access= registration |author=Skiena, Steven |pages=[https://archive.org/details/calculatedbetsco0000skie/page/152 152], 153 |publisher=The Mathematical Association of America|year=2001|isbn=978-0521009621}}</ref> और नीचे दिखाया गया है:
एक अन्य उदाहरण निम्नलिखित फ्लाइट सिम्युलेटर है, जो 1998 आईओसीसीसी का विजेता है,<ref name=":0">[https://blog.aerojockey.com/post/iocccsim Carl Banks' Blog: IOCCC Flight Simulator]. blog.aerojockey.com. Retrieved 2023-05-01.</ref> परिकलित दांव: कंप्यूटर, जुआ और जीतने के लिए गणितीय मॉडलिंग (2001) में सूचीबद्ध और वर्णित के रूप में उपयोग किया जाता है <ref>{{cite book |title= Calculated Bets: Computers, Gambling, and Mathematical Modeling to Win |url= https://archive.org/details/calculatedbetsco0000skie |url-access= registration |author=Skiena, Steven |pages=[https://archive.org/details/calculatedbetsco0000skie/page/152 152], 153 |publisher=The Mathematical Association of America|year=2001|isbn=978-0521009621}}</ref> और नीचे दिखाया गया है:


<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
Line 186: Line 184:
                               )/107e2)*_; D=cos(o); E=sin(o); } }
                               )/107e2)*_; D=cos(o); E=sin(o); } }
</syntaxhighlight>
</syntaxhighlight>
[[File:1998_IOCCC_Flight_simulator_screenshot.png|thumb|फ्लाइट सिम्युलेटर के पिट्सबर्ग दृश्य]]इस प्रोग्राम को संकलित करने के लिए लिनक्स सिस्टम पर निम्न कमांड लाइन की आवश्यकता है:<ref name=":0" /><पूर्व>
[[File:1998_IOCCC_Flight_simulator_screenshot.png|thumb|फ्लाइट सिम्युलेटर के पिट्सबर्ग दृश्य]]इस प्रोग्राम को संकलित करने के लिए लिनक्स सिस्टम पर निम्न कमांड लाइन की आवश्यकता है:<ref name=":0" /><syntaxhighlight lang="abl">
cc banks.c -o banks -DIT=XK_Page_Up -DDT=XK_Page_Down \
cc banks.c -o banks -DIT=XK_Page_Up -DDT=XK_Page_Down \
-DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \
-DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \
-डीसीएस=XK_रिटर्न -डीडीटी=0.02 -एलएम -एलएक्स11 -एल/यूएसआर/एक्स11आर6/लिब
-DCS=XK_Return -Ddt=0.02 -lm -lX11 -L/usr/X11R6/lib
</पूर्व>
</syntaxhighlight>
 


बाइनरी फ़ाइल चलाने के लिए ({{code|banks}}) इसे एक के साथ आपूर्ति की जानी है {{code|.sc}} दृश्य फ़ाइल मानक इनपुट के माध्यम से|{{code|stdin}} इनपुट:<ref name=":0" />
बाइनरी फ़ाइल चलाने के लिए ({{code|banks}}) इसे एक के साथ आपूर्ति की जानी है {{code|.sc}} दृश्य फ़ाइल मानक इनपुट के माध्यम से {{code|stdin}} इनपुट होता है:<ref name=":0" />
<syntaxhighlight lang=shell> cat pittsburgh.sc | ./banks </syntaxhighlight>
<syntaxhighlight lang=shell> cat pittsburgh.sc | ./banks </syntaxhighlight>


Line 244: Line 243:
                             ;          /*^w^*/        ;}
                             ;          /*^w^*/        ;}
</syntaxhighlight>
</syntaxhighlight>
यदि प्रोग्राम इनपुट के रूप में अपने स्वयं के स्रोत का उपयोग करके चलाया जाता है, तो परिणाम है:<syntaxhighlight lang="c">
यदि प्रोग्राम इनपुट के रूप में अपने स्वयं के स्रोत का उपयोग करके चलाया जाता है, जिससे परिणाम है:<syntaxhighlight lang="c">
[root@host ~]# ./akari akari.c  
[root@host ~]# ./akari akari.c  
                    
                    
Line 292: Line 291:


== यह भी देखें ==
== यह भी देखें ==
* उलझी हुई पर्ल प्रतियोगिता
* अस्पष्ट पर्ल प्रतियोगिता
* [[गुप्त सी प्रतियोगिता]]
* [[गुप्त सी प्रतियोगिता|अंडरहैंडेड सी प्रतियोगिता]]
* [[गूढ़ प्रोग्रामिंग भाषा]]
* [[गूढ़ प्रोग्रामिंग भाषा|इसोटेरिक प्रोग्रामिंग भाषा]]


== नोट्स और संदर्भ ==
== नोट्स और संदर्भ ==

Revision as of 17:33, 23 June 2023

अंतर्राष्ट्रीय अस्पष्ट सी कोड प्रतियोगिता
IOCCC.png
The logo of the IOCCC
StatusActive
GenreCoding contest
FrequencyAnnually
Years active1984–1996, 1998, 2000, 2001, 2004–2006, 2011–2015, 2018-present
Inaugurated1984 (1984)
FoundersLandon Curt Noll, Larry Bassel
Websitewww.ioccc.org

इंटरनेशनल ऑबफ्यूस्केटेड सी कोड प्रतियोगिता (संक्षिप्त आईओसीसीसी) सबसे रचनात्मक रूप से अस्पष्ट कोड C (प्रोग्रामिंग भाषा) स्रोत कोड के लिए एक कंप्यूटर प्रोग्रामिंग प्रतियोगिता है। वार्षिक रूप से आयोजित, इसे सी की वाक्य-विन्यास अपारदर्शिता का जश्न मनाने के रूप में वर्णित किया गया है।[1] 2020 में आयोजित 27वीं प्रतियोगिता के लिए विजेता कोड जुलाई 2020 में जारी किया गया था।[2] पिछली प्रतियोगिताएं 1984-1996, 1998, 2000, 2001, 2004-2006, 2011-2015 और 2018-2020 में आयोजित की गई थीं।

न्यायाधीशों के एक पैनल द्वारा प्रविष्टियों का मूल्यांकन गुमनाम रूप से किया जाता है। निर्णय प्रक्रिया को प्रतियोगिता दिशानिर्देशों में प्रलेखित किया गया है[3] और उन्मूलन आवेग होता हैं। परंपरा के अनुसार, प्रत्येक प्रतियोगिता के लिए प्रविष्टियों की कुल संख्या के बारे में कोई सूचना नहीं दी जाती है। जीतने वाली प्रविष्टियों को सी प्रीप्रोसेसर का वर्स्ट एब्यूज या मोस्ट एरेटिक बिहेवियर जैसी श्रेणी से सम्मानित किया जाता है, और फिर आधिकारिक आईओसीसीसी वेबसाइट पर इसकी घोषणा की जाती है। प्रतियोगिता में कहा गया है कि आईओसीसीसी वेबसाइट पर घोषित किया जाना जीत का इनाम है।

इतिहास

आईओसीसीसी की प्रारंभ लैंडन कर्ट नोल और लैरी बासेल ने 1984 में नेशनल अर्धचालक के जेनिक्स पोर्टिंग ग्रुप में काम करते हुए की थी। प्रतियोगिता के लिए विचार तब आया जब उन्होंने कुछ व्यर्थ लिखे गए कोड के बारे में एक दूसरे के साथ नोट्स की तुलना की थी, जिसे उन्हें ठीक करना था, विशेष रूप से बॉर्न शेल, जो एल्गोल 68 सिंटैक्स का अनुकरण करने के लिए मैक्रोज़ का उपयोग करता था, और बीएसडी के लिए उंगली (यूनिक्स) का एक बग्गी संस्करण [4] प्रतियोगिता ही 1993 के कंप्यूटर बाउल में प्रश्नोत्तरी प्रश्न का विषय थी।[5] 2006 में प्रारंभ होने वाले पांच वर्षों के अंतराल के बाद, प्रतियोगिता 2011 में लौटी [6] अन्य प्रोग्रामिंग प्रतियोगिताओं की तुलना में, आईओसीसीसी को डॉ. डॉब के जर्नल के संपादक माइकल स्वेन (तकनीकी लेखक) द्वारा इतना महत्वपूर्ण नहीं बताया गया है।[7]


नियम

प्रत्येक वर्ष, प्रतियोगिता के नियम आईओसीसीसी की वेबसाइट पर प्रकाशित किए जाते हैं। सभी पदार्थ क्रिएटिव कॉमन्स लाइसेंस साझा-समान या BY-SA 3.0 अनपोर्टेड के अनुसार प्रकाशित की गई है।[8] नियम साल-दर-साल बदलते रहते हैं और दिशानिर्देशों के एक सेट के साथ पोस्ट किए जाते हैं जो नियमों की भावना को व्यक्त करने का प्रयास करते हैं।

प्रतियोगिता के नियमों को हैक करना एक परंपरा है। - लैंडन कर्ट नोल, 2011[6]

नियमों को अधिकांशतः जानबूझकर खामियों के साथ लिखा जाता है कि प्रतियोगियों को खोजने और दुरुपयोग करने के लिए प्रोत्साहित किया जाता है।[3] कमियों का लाभ उठाने वाली प्रविष्टियाँ अगले वर्ष की प्रतियोगिता के नियमों को समायोजित करने का कारण बन सकती हैं।[3]


आक्षेप नियोजित

प्रविष्टियाँ अधिकांशतः विचित्र या असामान्य युक्तियाँ का उपयोग करती हैं, जैसे कि C प्रीप्रोसेसर का उपयोग उन चीजों को करने के लिए करना जिन्हें करने के लिए इसे डिज़ाइन नहीं किया गया था (कुछ स्थितियों में सही विधि से, डॉ. डॉब्स के अनुसार,[9] सी प्रीप्रोसेसर में एक 11-बिट अंकगणितीय तर्क इकाई बनाने वाली एक प्रविष्टि के साथ [10]), या सी प्रोग्रामिंग भाषा में सामान्य रूप से उपयोग किए जाने वाले निर्माणों से बचने के लिए एक ही चीज़ को प्राप्त करने के अधिक अस्पष्ट विधियों के पक्ष में उपयोग किया जाता है।

एएससीआईआई आर्ट के विधि के बाद छवियों आदि के समान स्वरूपित स्रोत कोड सम्मिलित है, कोड को पढ़ने के लिए कठिन बनाने के लिए प्रीप्रोसेसर पुनर्वितरण, और स्व-संशोधित कोड कई वर्षों में, एक प्रविष्टि प्रस्तुत की गई थी जिसके लिए अगले वर्ष के कुछ नियमों की एक नई परिभाषा की आवश्यकता थी। यह एक उच्च सम्मान के रूप में माना जाता है। इसका एक उदाहरण संसार का सबसे छोटा क्विन (कंप्यूटिंग) या स्व-पुनरुत्पादन प्रोग्राम है। प्रविष्टि अपने स्वयं के स्रोत कोड को आउटपुट करने के लिए डिज़ाइन किया गया एक प्रोग्राम था, और जिसमें स्रोत कोड के शून्य बाइट थे। जब प्रोग्राम चल रहा था, जिससे यह अपने स्रोत कोड के बराबर शून्य बाइट्स प्रिंट करता था।[11]

अस्पष्टता को अपने चरम सीमा तक ले जाने के प्रयास में, प्रतियोगियों ने ऐसे प्रोग्राम तैयार किए हैं जो सी मानकों के किनारों के चारों ओर स्कर्ट करते हैं, या ऐसे निर्माण होते हैं जो संकलक में संभवतः ही कभी उपयोग किए जाने वाले कोड पथ संयोजनों को ट्रिगर करते हैं। परिणामस्वरूप, पिछली कई प्रविष्टियाँ आधुनिक कंपाइलर में सीधे संकलित नहीं हो सकती हैं, और कुछ क्रैश का कारण बन सकती हैं।

उदाहरण

केवल कुछ किलोबाइट्स की कोड आकार सीमा के अन्दर, प्रतियोगियों ने जटिल चीजें करने में सफलता प्राप्त की थी 2004 के विजेता ने एक ऑपरेटिंग सिस्टम को बदल दिया था।[12]


टोलेडो नैनोचेस

टोलेडो नैनोचेस मैक्सिकन सॉफ्टवेयर डेवलपर ऑस्कर टोलेडो गुतिरेज़, आईओसीसीसी के पांच बार विजेता द्वारा बनाया गया एक चैस इंजन है। आईओसीसीसी नियमों के अनुसार, यह 1255 वर्ण लंबा है। लेखक का प्रमाणित है कि यह सी भाषा में लिखा गया संसार का सबसे छोटा चैस प्रोग्राम है।

टोलेडो नैनोचेस और अन्य इंजनों के लिए स्रोत कोड उपलब्ध है।[13] क्योंकि टोलेडो नैनोचेस 18वें आईओसीसीसी (सर्वश्रेष्ठ खेल) से टोलेडो की विजयी प्रविष्टि पर आधारित है [14]), यह भारी अस्पष्ट कोड है।[15]

2 फरवरी 2014 को, लेखक ने टोलेडो नैनोचेस टिप्पणी स्रोत कोड पुस्तक प्रकाशित की थी, जिसमें पूरी तरह से टिप्पणी स्रोत कोड सम्मिलित है।[16] 7 फरवरी, 2010 तक, यह केवल दो चैस इंजनों में से एक प्रतीत होता है, जो 2 किलोबाइट्स से कम में लिखा गया है, जो डच भौतिक विज्ञानी एचजी मुलर द्वारा माइक्रो-मैक्स के साथ पूर्ण नियमबद्ध चैस चालें चलाने में सक्षम हैं। 2014 में सुपर माइक्रो चैस ने 1 किलोबाइट के बैरियर को तोड़ा था [17] माइक्रो-मैक्स का एक व्युत्पन्न कुल 760 वर्ण (रिक्त स्थान और न्यूलाइन सम्मिलित) [18] टोलेडो के इंजन का एक छोटा संस्करण भी है, टोलेडो पिकोचेस, जिसमें 944 गैर-रिक्त वर्ण सम्मिलित हैं।

'स्रोत कोड अंश'

B,i,y,u,b,I[411],*G=I,x=10,z=15,M=1e4;X(w,c,h,e,S,s){int t,o,L,E,d,O=e,N=-M*M,K
=78-h<<x,p,*g,n,*m,A,q,r,C,J,a=y?-x:x;y^=8;G++;d=w||s&&s>=h&&v 0,0)>M;do{_ o=I[
p=O]){q=o&z^y _ q<7){A=q--&2?8:4;C=o-9&z?q["& .$  "]:42;do{r=I[p+=C[l]-64]_!w|p
==w){g=q|p+a-S?0:I+S _!r&(q|A<3||g)||(r+1&z^y)>9&&q|A>2){_ m=!(r-2&7))P G[1]=O,
K;J=n=o&z;E=I[p-a]&z;t=q|E-7?n:(n+=2,6^y);Z n<=t){L=r?l[r&7]*9-189-h-q:0 _ s)L
+=(1-q?l[p/x+5]-l[O/x+5]+l[p%x+6]*-~!q-l[O%x+6]+o/16*8:!!m*9)+(q?0:!(I[p-1]^n)+
!(I[p+1]^n)+l[n&7]*9-386+!!g*99+(A<2))+!(E^y^9)_ s>h||1<s&s==h&&L>z|d){p[I]=n,O
[I]=m?*g=*m,*m=0:g?*g=0:0;L-=X(s>h|d?0:p,L-N,h+1,G[1],J=q|A>1?0:p,s)_!(h||s-1|B
-O|i-n|p-b|L<-M))P y^=8,u=J;J=q-1|A<7||m||!s|d|r|o<z||v 0,0)>M;O[I]=o;p[I]=r;m?
*m=*g,*g=0:g?*g=9^y:0;}_ L>N){*G=O _ s>1){_ h&&c-L<0)P L _!h)i=n,B=O,b=p;}N=L;}
n+=J||(g=I+p,m=p<O?g-3:g+2,*m<z|m[O-p]||I[p+=p-O]);}}}}Z!r&q>2||(p=O,q|A>2|o>z&
!r&&++C*--A));}}}Z++O>98?O=20:e-O);P N+M*M&&N>-K+1924|d?N:0;}main(){Z++B<121)*G
++=B/x%x<2|B%x<2?7:B/x&4?0:*l++&31;Z B=19){Z B++<99)putchar(B%x?l[B[I]|16]:x)_
x-(B=F)){i=I[B+=(x-F)*x]&z;b=F;b+=(x-F)*x;Z x-(*G=F))i=*G^8^y;}else v u,5);v u,
1);}}


पाई

नीचे 1988 की एक प्रविष्टि है जो अपने क्षेत्र को देखकर पाई की गणना करती है:[19]

#define _ -F<00||--F-OO--;
int F=00,OO=00;main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
{
            _-_-_-_
       _-_-_-_-_-_-_-_-_
    _-_-_-_-_-_-_-_-_-_-_-_
  _-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  _-_-_-_-_-_-_-_-_-_-_-_-_-_
    _-_-_-_-_-_-_-_-_-_-_-_
        _-_-_-_-_-_-_-_
            _-_-_-_
}

(यह प्रविष्टि के&आर सी में लिखी गई थी; यह कुछ बदलावों के बिना एएनएसआई सी में ठीक से काम नहीं करती है।[20])

फ्लाइट सिम्युलेटर

एक अन्य उदाहरण निम्नलिखित फ्लाइट सिम्युलेटर है, जो 1998 आईओसीसीसी का विजेता है,[21] परिकलित दांव: कंप्यूटर, जुआ और जीतने के लिए गणितीय मॉडलिंग (2001) में सूचीबद्ध और वर्णित के रूप में उपयोग किया जाता है [22] और नीचे दिखाया गया है:

#include                                     <math.h>
#include                                   <sys/time.h>
#include                                   <X11/Xlib.h>
#include                                  <X11/keysym.h>
                                          double L ,o ,P
                                         ,_=dt,T,Z,D=1,d,
                                         s[999],E,h= 8,I,
                                         J,K,w[999],M,m,O
                                        ,n[999],j=33e-3,i=
                                        1E3,r,t, u,v ,W,S=
                                        74.5,l=221,X=7.26,
                                        a,B,A=32.2,c, F,H;
                                        int N,q, C, y,p,U;
                                       Window z; char f[52]
                                    ; GC k; main(){ Display*e=
 XOpenDisplay( 0); z=RootWindow(e,0); for (XSetForeground(e,k=XCreateGC (e,z,0,0),BlackPixel(e,0))
; scanf("%lf%lf%lf",y +n,w+y, y+s)+1; y ++); XSelectInput(e,z= XCreateSimpleWindow(e,z,0,0,400,400,
0,0,WhitePixel(e,0) ),KeyPressMask); for(XMapWindow(e,z); ; T=sin(O)){ struct timeval G={ 0,dt*1e6}
; K= cos(j); N=1e4; M+= H*_; Z=D*K; F+=_*P; r=E*K; W=cos( O); m=K*W; H=K*T; O+=D*_*F/ K+d/K*E*_; B=
sin(j); a=B*T*D-E*W; XClearWindow(e,z); t=T*E+ D*B*W; j+=d*_*D-_*F*E; P=W*E*B-T*D; for (o+=(I=D*W+E
*T*B,E*d/K *B+v+B/K*F*D)*_; p<y; ){ T=p[s]+i; E=c-p[w]; D=n[p]-L; K=D*m-B*T-H*E; if(p [n]+w[ p]+p[s
]== 0|K <fabs(W=T*r-I*E +D*P) |fabs(D=t *D+Z *T-a *E)> K)N=1e4; else{ q=W/K *4E2+2e2; C= 2E2+4e2/ K
 *D; N-1E4&& XDrawLine(e ,z,k,N ,U,q,C); N=q; U=C; } ++p; } L+=_* (X*t +P*M+m*l); T=X*X+ l*l+M *M;
  XDrawString(e,z,k ,20,380,f,17); D=v/l*15; i+=(B *l-M*r -X*Z)*_; for(; XPending(e); u *=CS!=N){
                                   XEvent z; XNextEvent(e ,&z);
                                       ++*((N=XLookupKeysym
                                         (&z.xkey,0))-IT?
                                         N-LT? UP-N?& E:&
                                         J:& u: &h); --*(
                                         DN -N? N-DT ?N==
                                         RT?&u: & W:&h:&J
                                          ); } m=15*F/l;
                                          c+=(I=M/ l,l*H
                                          +I*M+a*X)*_; H
                                          =A*r+v*X-F*l+(
                                          E=.1+X*4.9/l,t
                                          =T*m/32-I*T/24
                                           )/S; K=F*M+(
                                           h* 1e4/l-(T+
                                           E*5*T*E)/3e2
                                           )/S-X*d-B*A;
                                           a=2.63 /l*d;
                                           X+=( d*l-T/S
                                            *(.19*E +a
                                            *.64+J/1e3
                                            )-M* v +A*
                                            Z)*_; l +=
                                            K *_; W=d;
                                            sprintf(f,
                                            "%5d  %3d"
                                            "%7d",p =l
                                           /1.7,(C=9E3+
                              O*57.3)%0550,(int)i); d+=T*(.45-14/l*
                             X-a*130-J* .14)*_/125e2+F*_*v; P=(T*(47
                             *I-m* 52+E*94 *D-t*.38+u*.21*E) /1e2+W*
                             179*v)/2312; select(p=0,0,0,0,&G); v-=(
                              W*F-T*(.63*m-I*.086+m*E*19-D*25-.11*u
                               )/107e2)*_; D=cos(o); E=sin(o); } }
फ्लाइट सिम्युलेटर के पिट्सबर्ग दृश्य

इस प्रोग्राम को संकलित करने के लिए लिनक्स सिस्टम पर निम्न कमांड लाइन की आवश्यकता है:[21]

cc banks.c -o banks -DIT=XK_Page_Up -DDT=XK_Page_Down \
	-DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \
	-DCS=XK_Return -Ddt=0.02 -lm -lX11 -L/usr/X11R6/lib


बाइनरी फ़ाइल चलाने के लिए (banks) इसे एक के साथ आपूर्ति की जानी है .sc दृश्य फ़ाइल मानक इनपुट के माध्यम से stdin इनपुट होता है:[21]

 cat pittsburgh.sc | ./banks


अकरी

नीचे एक 2011 प्रविष्टि है जो डॉन, यांग द्वारा एक एसीआईआई छवि को कम करती है:[23]

                                       /*
                                      +
                                     +
                                    +
                                    +
                                    [         >i>n[t
                                     */   #include<stdio.h>
                        /*2w0,1m2,]_<n+a m+o>r>i>=>(['0n1'0)1;
                     */int/**/main(int/**/n,char**m){FILE*p,*q;int        A,k,a,r,i/*
                   #uinndcelfu_dset<rsitcdti_oa.nhs>i/_*/;char*d="P%"   "d\n%d\40%d"/**/
                 "\n%d\n\00wb+",b[1024],y[]="yuriyurarararayuruyuri*daijiken**akkari~n**"
          "/y*u*k/riin<ty(uyr)g,aur,arr[a1r2a82*y2*/u*r{uyu}riOcyurhiyua**rrar+*arayra*="
       "yuruyurwiyuriyurara'rariayuruyuriyuriyu>rarararayuruy9uriyu3riyurar_aBrMaPrOaWy^?"
      "*]/f]`;hvroai<dp/f*i*s/<ii(f)a{tpguat<cahfaurh(+uf)a;f}vivn+tf/g*`*w/jmaa+i`ni("/**
     */"i+k[>+b+i>++b++>l[rb";int/**/u;for(i=0;i<101;i++)y[i*2]^="~hktrvg~dmG*eoa+%squ#l2"
     ":(wn\"1l))v?wM353{/Y;lgcGp`vedllwudvOK`cct~[|ju {stkjalor(stwvne\"gt\"yogYURUYURI"[
     i]^y[i*2+1]^4;/*!*/p=(n>1&&(m[1][0]-'-'||m[1][1]  !='\0'))?fopen(m[1],y+298):stdin;
      /*y/riynrt~(^w^)],]c+h+a+r+*+*[n>)+{>f+o<r<(-m]    =<2<5<64;}-]-(m+;yry[rm*])/[*
       */q=(n<3||!(m[2][0]-'-'||m[2][1]))?stdout /*]{     }[*/:fopen(m[2],d+14);if(!p||/*
       "]<<*-]>y++>u>>+r >+u+++y>--u---r>++i+++"  <)<      ;[>-m-.>a-.-i.++n.>[(w)*/!q/**/)
    return+printf("Can "  "not\x20open\40%s\40"    ""       "for\40%sing\n",m[!p?1:2],!p?/*
  o=82]5<<+(+3+1+&.(+  m  +-+1.)<)<|<|.6>4>-+(>    m-        &-1.9-2-)-|-|.28>-w-?-m.:>([28+
 */"read":"writ");for  (   a=k=u= 0;y[u];  u=2    +u){y[k++   ]=y[u];}if((a=fread(b,1,1024/*
,mY/R*Y"R*/,p/*U*/)/*          R*/ )>/*U{  */   2&& b/*Y*/[0]/*U*/=='P' &&4==/*"y*r/y)r\}
*/sscanf(b,d,&k,& A,&           i,  &r)&&        !   (k-6&&k -5)&&r==255){u=A;if(n>3){/*
]&<1<6<?<m.-+1>3> +:+ .1>3+++     .   -m-)      -;.u+=++.1<0< <; f<o<r<(.;<([m(=)/8*/
u++;i++;}fprintf   (q,    d,k,           u      >>1,i>>1,r);u  = k-5?8:4;k=3;}else
  /*]>*/{(u)=/*{   p> >u  >t>-]s                >++(.yryr*/+(    n+14>17)?8/4:8*5/
     4;}for(r=i=0  ;  ;){u*=6;u+=                (n>3?1:0);if    (y[u]&01)fputc(/*
      <g-e<t.c>h.a r  -(-).)8+<1.                 >;+i.(<)<     <)+{+i.f>([180*/1*
      (r),q);if(y[u   ]&16)k=A;if                               (y[u]&2)k--;if(i/*
      ("^w^NAMORI; {   I*/==a/*"                               )*/){/**/i=a=(u)*11
       &255;if(1&&0>=     (a=                                 fread(b,1,1024,p))&&
        ")]i>(w)-;} {                                         /i-f-(-m--M1-0.)<{"
         [ 8]==59/* */                                       )break;i=0;}r=b[i++]
            ;u+=(/**>>                                     *..</<<<)<[[;]**/+8&*
            (y+u))?(10-              r?4:2):(y[u]         &4)?(k?2:4):2;u=y[u/*
             49;7i\(w)/;}             y}ru\=*ri[        ,mc]o;n}trientuu ren (
             */]-(int)'`';}             fclose(          p);k= +fclose( q);
              /*] <*.na/m*o{ri{                       d;^w^;}  }^_^}}
               "   */   return  k-                -1+   /*\'   '-`*/
                     (   -/*}/   */0x01        );       {;{    }}
                            ;           /*^w^*/        ;}

यदि प्रोग्राम इनपुट के रूप में अपने स्वयं के स्रोत का उपयोग करके चलाया जाता है, जिससे परिणाम है:

[root@host ~]# ./akari akari.c 
                   
                  
                       int
            *w,m,_namori=('n');
         #include<stdio.h>/*;hrd"%  dnd4%"*/
     /**/int(y),u,r[128*2/*{y}icuhya*rr*rya=
   */];void/**/i(){putchar(u);}int/**/main(/*
  "(n"l)?M5{YlcpvdluvKct[j skao(tve"t"oYRYR"
   */int(w),char**n){for(m  =256;--m;r[m]/*
   "<*]y+u>r>u+y-u-r+i+" )   ;>m.a.i+n>()/q*/
 =25<(31&( m -1))||64-(  m    &192)||2>w?m:(2+
m/*"*,/U//     R/)/U *  & /Y/0/U/=P &=/"*/)\
&16?m-13 : 13+     m)   ;u=+10 ;for(;(m=/*
 *>/()/{ p u t-s        +(yy*+  n1>7?/:*/
   getchar ())+1         ;i()   ){if(10/*
   "wNMR;{ I/=/"               )/{*/==u*1
    )i();                      if(m-10){
      u=/*>                  *./<)[;*/8*
      4;i();       }u=r[    m];}return(
       * *n/*{i            ;w; }_}
          ( -*/ *00    )    ;  }
[root@host ~]# ./akari akari.c > ./akari.small
[root@host ~]# ./akari ./akari.small 
         
      wm_aoi(n)
  /*ity,,[2*/{}char*y=
 (")M{lpduKtjsa(v""YY"
 "*yuruyuri") ;main(/*
/",U/  R)U*  Y0U= ="/\
*/){puts    (y+ 17/*
 "NR{I="       ){/=*
   =*         */);/*
   **/{      ;;}}
[root@host ~]# 
[root@host ~]# ./akari ./akari.small > ./akari.smaller
[root@host ~]# ./akari ./akari.smaller
   main
(){puts("Y"
"U RU YU "\
"RI"   )/*
 */   ;}
[root@host ~]#


यह भी देखें

नोट्स और संदर्भ

  1. Palmer, Geoff (November 1, 2004). "कमांड लाइन से परे". PC World New Zealand. Archived from the original on February 10, 2013. Retrieved 2013-04-07.
  2. "स्पॉइलर के साथ पिछले IOCCC विजेता". IOCCC. Retrieved 2023-05-01.
  3. 3.0 3.1 3.2 "2015 Guidelines" (plain text). IOCCC. 2015. Retrieved 2023-05-01.
  4. "अक्सर पूछे जाने वाले प्रश्न". IOCCC. Retrieved 2023-05-01.
  5. "Top Execs Fail To Compute Correctly". San Jose Mercury News, California. May 15, 1993. p. 1A. Via Newsbank. (subscription required)
  6. 6.0 6.1 Jackson, Joab (November 15, 2011). "अस्पष्ट कोड प्रतियोगिता वापसी". PC World. Retrieved 2023-05-01.
  7. Swaine, Michael (May 1, 2008). "प्रतियोगिता होनी चाहिए". Dr. Dobb's Journal. Retrieved 2023-05-01.
  8. IOCCC home page, footer, and in each hint.txt file
  9. Spinellis, Diomidis (October 5, 2006). "कोड चालाकी". Dr. Dobb's Journal. Retrieved 2023-05-01.
  10. IOCCC 2004 - CPP का सबसे अच्छा दुरुपयोग IOCCC। 2023-05-01 को पुनः प्राप्त किया गया।
  11. "smr.संकेत" (plain text). IOCCC. 1994. Retrieved 2006-09-16.
  12. "gavin.hint3" (plain text). IOCCC. 2004. Retrieved 2023-05-01.
  13. "Toledo Nanochess and Toledo Picochess".
  14. "Winners: The authors of winning IOCCC entries".
  15. "नैनोचेस आंशिक रूप से अस्पष्टीकृत संस्करण". GitHub. Retrieved 1 May 2023.
  16. Toledo Gutiérrez, Oscar (2014). Toledo Nanochess: The commented source code. Lulu. ISBN 978-1-304-86437-6.
  17. "सुपर माइक्रो शतरंज इंजन - होम पेज - अत्यधिक कॉम्पैक्ट सी स्रोत और निष्पादन योग्य कार्यक्रम का आकार". smmax.sourceforge.net.
  18. "Super Micro FIDE 760".
  19. "westley.c", 5th International Obfuscated C Code Contest 1988
  20. using gcc, compile with the following command line: gcc -traditional-cpp -o r r.c or gcc -E r.c | sed 's/- -/--/g' > r2.c ; gcc -o r2 r2.c (The source file is r.c)[original research?]
  21. 21.0 21.1 21.2 Carl Banks' Blog: IOCCC Flight Simulator. blog.aerojockey.com. Retrieved 2023-05-01.
  22. Skiena, Steven (2001). Calculated Bets: Computers, Gambling, and Mathematical Modeling to Win. The Mathematical Association of America. pp. 152, 153. ISBN 978-0521009621.
  23. "Winners: The authors of winning IOCCC entries". www.ioccc.org. Retrieved 2023-05-01.


बाहरी संबंध