एसोटेरिक प्रोग्रामिंग लैंग्वेज: Difference between revisions
No edit summary |
m (Deepak moved page गूढ़ प्रोग्रामिंग भाषा to एसोटेरिक प्रोग्रामिंग लैंग्वेज without leaving a redirect) |
||
(18 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Software language not aimed for serious use}} | {{Short description|Software language not aimed for serious use}} | ||
'''गूढ़ [[प्रोग्रामिंग भाषा]]''' (कभी-कभी एसोलंग के लिए संक्षिप्त) वह प्रोग्रामिंग भाषा है, जिसे कंप्यूटर प्रोग्रामिंग भाषा डिज़ाइन की सीमाओं का परीक्षण करने के लिए बनाया गया है, अवधारणा के प्रमाण के रूप में, सॉफ़्टवेयर कला के रूप में, किसी अन्य भाषा (विशेष रूप से [[कार्यात्मक प्रोग्रामिंग]] या [[प्रक्रियात्मक प्रोग्रामिंग]] भाषाओं) के लिए हैकिंग इंटरफ़ेस के रूप में , या परिहास के रूप में किया जाता है। ''एसोटेरिक'' शब्द का उपयोग उन भाषाओं से अलग करता है जो काम करने वाले डेवलपर्स सॉफ़्टवेयर के लिए उपयोग करते हैं। अधिकांश एसोलैंग्स के निर्माता उन्हें मुख्यधारा की प्रोग्रामिंग के लिए उपयोग करने का प्रयोजन नहीं रखते हैं, चूँकि कुछ गूढ़ विशेषताएं, जैसे कि [[नेत्रहीन|विसुओस्पेशियल सिंटैक्स,]] [[सिंटैक्स (प्रोग्रामिंग भाषाएं)|(प्रोग्रामिंग भाषाएं)]],<ref>McLean, A., Griffiths, D., Collins, N., and Wiggins, G. (2010). "Visualisation of Live Code". In ''Electronic Visualisation and the Arts'', London: 2010.</ref> ने कला में व्यावहारिक अनुप्रयोगों को प्रेरित किया है। ऐसी भाषाएँ अधिकांशतः [[हैकर (शौकीन)|हैकर]] और होबबईस्ट के बीच लोकप्रिय होती हैं।{{Citation needed|date=July 2021}} | |||
गूढ़ प्रोग्रामिंग भाषाओं के डिजाइनरों के लिए उपयोगिता | गूढ़ प्रोग्रामिंग भाषाओं के डिजाइनरों के लिए उपयोगिता संभवतः ही एक लक्ष्य है; जो अधिकांशतः उनके डिजाइन के अधिक विपरीत होता है। उनका सामान्य उद्देश्य [[ट्यूरिंग-पूर्ण]], या यहां तक कि एक जिसके लिए संगणनात्मक वर्ग अज्ञात है, को बनाए रखते हुए पारंपरिक भाषा की सुविधाओं को हटाना या बदलना है। | ||
== इतिहास == | == इतिहास == | ||
एक गूढ़ प्रोग्रामिंग भाषा का | एक गूढ़ प्रोग्रामिंग भाषा का सबसे पहला, और विहित उदाहरण, [[INTERCAL|इंटरकैल]] है,<ref>Matthew Fuller, [https://mitpress.mit.edu/books/software-studies Software Studies], MIT Press, 2008</ref> जिसे 1972 में [[डॉन वुड्स (प्रोग्रामर)]] और '''जेम्स एम. ल्योन''' द्वारा डिज़ाइन किया गया,जिन्होंने कहा था, कि उनका प्रयोजन एक ऐसी प्रोग्रामिंग भाषा बनाना था जिससे वे परिचित थे <ref name="Raymond1996">{{cite book|author=Eric S. Raymond|title=The New Hacker's Dictionary|url=https://books.google.com/books?id=g80P_4v4QbIC&pg=PA258|year=1996|publisher=MIT Press|isbn=978-0-262-68092-9|page=258}}</ref><ref name="woods-lyon-intercal">{{citation|url=http://www.muppetlabs.com/~breadbox/intercal/intercal.txt |last1=Woods |first1=Donald R. |last2=Lyon |first2=James M. |year=1973 |title=The INTERCAL Programming Language Reference Manual |access-date=2009-04-24 |publisher=Muppetlabs.com |archive-url=https://web.archive.org/web/20090220145921/http://www.muppetlabs.com/~breadbox/intercal/intercal.txt |archive-date=2009-02-20 |url-status=dead }}</ref> यह उस समय की स्थापित प्रोग्रामिंग भाषाओं जैसे कि [[फोरट्रान]], [[COBOL|कोबोल]] और [[सभा की भाषा|असेंबली भाषा]] के तत्वों की पैरोडी करता है। | ||
कई वर्षों के लिए, | कई वर्षों के लिए, इंटरकैल को केवल इंटरकैल मैनुअल की कागजी प्रतियों द्वारा दर्शाया गया था। [[यूनिक्स]] के अनुसार [[सी (प्रोग्रामिंग भाषा)]] में एक कार्यान्वयन के रूप में 1990 में इसके पुनरुद्धार ने गूढ़ कंप्यूटर भाषाओं के जानबूझकर डिजाइन में रुचि की लहर को प्रेरित किया। | ||
1993 में, वाउटर वैन ऊर्टमर्सन ने फालसे बनाया, एक छोटी [[स्टैक-उन्मुख प्रोग्रामिंग भाषा]] जिसमें सिंटैक्स को कोड को स्वाभाविक रूप से अस्पष्ट, भ्रामक और अपठनीय बनाने के लिए डिज़ाइन किया गया था। इसका संकलक आकार में केवल 1024 बाइट का है।<ref name="Wouter">{{cite journal | title = Interview with Wouter van Oortmerssen | journal = Esoteric.codes | url = https://esoteric.codes/blog/interview-with-wouter-van-oortmerssen | |||
1993 में, | | date = 1 July 2015 | access-date = 1 December 2015 | archive-date = 8 December 2015 | archive-url = https://web.archive.org/web/20151208094626/http://esoteric.codes/post/122942498363/interview-with-wouter-van-oortmerssen | url-status = live }}</ref> इसने अर्बन मुलर को और भी छोटी भाषा बनाने के लिए प्रेरित किया, जो अब कुख्यात [[ब्रेनफक]] है, जिसमें केवल आठ मान्यता प्राप्त वर्ण हैं। क्रिस प्रेसी की [[Befung|बेफुंज]] (जैसे फालसे, लेकिन एक द्वि-आयामी निर्देश सूचक के साथ) के साथ, ब्रेनफक अब [[ट्यूरिंग टैरपिट|ट्यूरिंग टैरपिट्स]] के कैनोनिकल उदाहरणों और अनावश्यक रूप से अस्पष्ट भाषा सुविधाओं के साथ सबसे अच्छी समर्थित गूढ़ प्रोग्रामिंग भाषाओं में से एक है। ब्रेनफक [[ट्यूरिंग मशीन|ट्यूरिंग मशीनों]] के पी' परिवार से संबंधित है। | ||
| date = 1 July 2015 | access-date = 1 December 2015 | archive-date = 8 December 2015 | archive-url = https://web.archive.org/web/20151208094626/http://esoteric.codes/post/122942498363/interview-with-wouter-van-oortmerssen | url-status = live }}</ref> इसने अर्बन मुलर को और भी छोटी भाषा बनाने के लिए प्रेरित किया, जो अब कुख्यात [[ब्रेनफक]] है, जिसमें केवल आठ मान्यता प्राप्त वर्ण हैं। क्रिस प्रेसी की [[Befung]] (जैसे | |||
== सामान्य विशेषताएं == | == सामान्य विशेषताएं == | ||
जबकि गूढ़ प्रोग्रामिंग | जबकि गूढ़ प्रोग्रामिंग भाषाएं कई विधियों से भिन्न होती हैं, कुछ सामान्य लक्षण होते हैं जो कई भाषाओं की विशेषता बताते हैं, जैसे पैरोडी, अतिसूक्ष्मवाद, और प्रोग्रामिंग को कठिन बनाने का लक्ष्य बनाते है। <ref>{{Cite book |first=Matthew |last=Fuller |title=Software studies: a lexicon |date=2008 |publisher=MIT Press |isbn=978-0-262-06274-9 |oclc=1156851190}}</ref> | ||
=== अद्वितीय डेटा प्रतिनिधित्व === | === अद्वितीय डेटा प्रतिनिधित्व === | ||
पारंपरिक [[अनिवार्य प्रोग्रामिंग]] | पारंपरिक [[अनिवार्य प्रोग्रामिंग]] सामान्यतः डेटा को चर में संग्रहीत करने की अनुमति देती हैं, लेकिन गूढ़ भाषाएं डेटा को संग्रहीत करने और एक्सेस करने के विभिन्न विधियों का उपयोग कर सकती हैं। '''ब्रेनफक और मालबोल्गे''' जैसी भाषाएं केवल एक सूचक के माध्यम से डेटा को पढ़ने की अनुमति देती हैं, जिसे डेटा पढ़ने से पहले रुचि के स्थान पर ले जाना चाहिए। अन्य, जैसे बेफंज और [[शेक्सपियर प्रोग्रामिंग भाषा]] जैसे डेटा को डेटा को होल्ड करने के लिए एक या एक से अधिक स्टैक का उपयोग करते हैं, जिससे [[रिवर्स पोलिश नोटेशन]] के समान निष्पादन का विधि सामने आता है। अंत में, ऐसी भाषाएं हैं जो संख्या प्रतिनिधित्व के वैकल्पिक रूपों का पता लगाती हैं: ब्रेनफक संस्करण बूलफक केवल एकल बिट्स पर संचालन की अनुमति देता है, जबकि [[मालबोल्गे]] और और इंटरकैल वेरिएंट ट्राईइंटरकल बिट्स को एक आधार 3 टर्नरी प्रणाली के साथ पूरी तरह से बदल देता है। <ref name=":1">Morr, Sebastian. "Esoteric Programming Languages." (2015).</ref> | ||
=== अद्वितीय निर्देश प्रतिनिधित्व === | |||
गूढ़ भाषाएँ प्रोग्राम के निर्देशों का प्रतिनिधित्व करने के अनूठे विधि भी प्रदर्शित करती हैं। कुछ भाषाएँ, जैसे कि बेफुंज और पीट, दो या दो से अधिक आयामों में प्रोग्रामों का प्रतिनिधित्व करती हैं, प्रोग्राम नियंत्रण प्रोग्राम के माध्यम से कई संभावित दिशाओं में घूमता है।{{sfn|Cox|2013}}{{page needed|date=June 2022}} यह पारंपरिक भाषाओं से भिन्न है जिसमें एक प्रोग्राम निर्देशों का एक सेट होता है जो सामान्यतः अनुक्रम में मिलते हैं। अन्य भाषाएं असामान्य रूप में प्रकट होने के लिए निर्देशों को संशोधित करती हैं, अधिकांशतः एक जिसे मानव द्वारा अंतर्निहित निर्देशों के वैकल्पिक अर्थ के साथ पढ़ा जा सकता है। शेक्सपियर प्रोग्रामिंग भाषा सभी प्रोग्रामों को शेक्सपियरियन नाटकों के समान बनाकर इसे प्राप्त करती है। [[शेफ प्रोग्रामिंग भाषा]] सभी प्रोग्रामों को रेसिपीज बना कर शेफ समान प्राप्त करता है।<ref name=":1" /> शेफ विशेष रूप से उल्लेखनीय है कि कुछ ऐसे प्रोग्राम बनाए हैं, जो इस दोहरे अर्थ को उत्पन्न करने के लिए भाषा की क्षमता का प्रदर्शन करते हुए प्रोग्राम और नुस्खा दोनों के रूप में सफलतापूर्वक कार्य करते हैं।<ref>{{Cite web |last=Mike |date=2013-03-31 |title=Baking a Hello World Cake |url=http://www.mike-worth.com/2013/03/31/baking-a-hello-world-cake/ |access-date=2022-06-01 |website=Products of Mike's Mind |language=en-US}}</ref> | |||
=== पढ़ने और लिखने में कठिनाई === | |||
कई गूढ़ प्रोग्रामिंग भाषाओं को कोड तैयार करने के लिए डिज़ाइन किया गया है जो गहराई से अस्पष्ट है, जिससे इसे पढ़ना और लिखना जटिल हो जाता है।<ref name=":2">Mateas, M. and Montfort, N. A Box, Darkly: Obfuscation, Weird Languages, and Code Aesthetics. In ''Digital Arts and Culture: Digital Experience: Design, Aesthetics, Practice'' ''(DAC 2005)'', Copenhagen, Denmark, 2005.</ref> इसका उद्देश्य प्रोग्राम लेखकों के लिए एक दिलचस्प पहेली या चुनौती प्रदान करना हो सकता है: उदाहरण के लिए मालबोलगे को स्पष्ट रूप से चुनौतीपूर्ण होने के लिए डिज़ाइन किया गया था, और इसलिए इसमें [[स्व-संशोधित कोड]] और अत्यधिक प्रतिसंवेदी संचालन जैसी विशेषताएं हैं।<ref name=":2" /> दूसरी ओर, कुछ गूढ़ भाषाओं को उनके अन्य डिज़ाइन विकल्पों के कारण लिखना कठिन हो जाता है। ब्रेनफक एक न्यूनतम निर्देश सेट के विचार के लिए प्रतिबद्ध है, इसलिए यदिइसके निर्देश सिद्धांत रूप में सीधे हों, जो कोड उत्पन्न होता है वह मनुष्य के लिए पढ़ना जटिल होता है। इंटरकैल की कठिनाई किसी अन्य प्रोग्रामिंग भाषा में उपयोग किए जाने वाले संचालन से बचने के विकल्प के परिणामस्वरूप उत्पन्न होती है, जो अन्य भाषाओं की पैरोडी के रूप में इसकी उत्पत्ति से उत्पन्न होती है।<ref name=":2" /> | |||
=== पैरोडी और स्पूफ === | |||
गूढ़ प्रोग्रामिंग भाषाओं का एक उद्देश्य प्रोग्रामिंग के क्षेत्र में उपस्थिता भाषाओं और प्रवृत्तियों की पैरोडी या स्पूफ करना है। <ref name=":2" /> उदाहरण के लिए, पहली गूढ़ भाषा इंटरकैल 1960 के दशक में APL (प्रोग्रामिंग लैंग्वेज), फोरट्रान और COBOL जैसी भाषाओं की नकल के रूप में प्रारंभ हुई। इंटरकैल के नियम इन अन्य भाषाओं के नियमों के विपरीत प्रतीत होते हैं।<ref>{{cite book |last=Gaboury |first=Jacob |chapter=Critical Unmaking: Toward a Queer Computation |date=2018 |doi=10.4324/9781315730479-50 |editor=Jentery Sayers |title=The Routledge Companion to Media Studies and Digital Humanities |pages=483–491 |location=New York |publisher=Routledge |isbn=978-1-315-73047-9}}</ref> चूँकि, पैरोडी का विषय हमेशा एक अन्य स्थापित प्रोग्रामिंग भाषा नहीं है। उदाहरण के लिए, शेक्सपियर को शेक्सपियर के नाटकों की संरचना को खराब करने के रूप में देखा जा सकता है। भाषा ठीक है! ब्रेनफक की पैरोडी है, जहां ब्रेनफक के 8 कमांड को ओक जैसी विभिन्न ऑरंगुटैंग ध्वनियों द्वारा प्रतिस्थापित किया जाता है। "ओक। ओक?"<ref name=":1" /> | |||
== उदाहरण == | |||
{{See also|प्रोग्रामिंग भाषाओं की सूची टाइप गूढ़ भाषाओं के अनुसार}} | |||
=== बिफंगे === | |||
Befunge निर्देश सूचक को कोड के माध्यम से कई आयामों में घूमने की अनुमति देता है। उदाहरण के लिए, निम्नलिखित प्रोग्राम स्टैक पर वर्णों को उल्टे क्रम में धकेल कर "हैलो वर्ल्ड" प्रदर्शित करता है, फिर वर्णों को एक लूप में प्रिंट करता है जो निर्देशों के माध्यम से घड़ी की दिशा में प्रसारित होता है <code>></code>, <code>:</code>, <code>v</code>, <code>_</code>, <code>,</code>, और <code>^</code>. | |||
<syntaxhighlight प्रकाश लैंग = बिफंगे> | |||
dlroW OlleH >:v | |||
^,_@ | |||
</syntaxhighlight> | |||
Befunge के कई संस्करण हैं, सबसे आम Befunge-93 है।{{citation needed|date=April 2022}} | |||
=== बाइनरी लैम्ब्डा कैलकुस === | === बाइनरी लैम्ब्डा कैलकुस === | ||
[[बाइनरी लैम्ब्डा कैलकुलस]] को [[एल्गोरिथम सूचना सिद्धांत]] के दृष्टिकोण से डिज़ाइन किया गया है | [[बाइनरी लैम्ब्डा कैलकुलस]] को [[एल्गोरिथम सूचना सिद्धांत]] के दृष्टिकोण से डिज़ाइन किया गया है जिससे कि न्यूनतम साधनों के साथ सघनतम संभव कोड की अनुमति दी जा सके, जिसमें 29-बाइट सेल्फ इंटरप्रेटर, 21-बाइट प्राइम नंबर चलनी और 112-बाइट ब्रेनफक इंटरप्रेटर सम्मलित है।<ref>{{cite web | ||
| url=https://www.ioccc.org/2012/tromp/hint.html | | url=https://www.ioccc.org/2012/tromp/hint.html | ||
| title=Most functional | | title=Most functional | ||
Line 66: | Line 52: | ||
| archive-date=2013-01-19 | | archive-date=2013-01-19 | ||
}}</ref> | }}</ref> | ||
=== ब्रेनफक === | === ब्रेनफक === | ||
ब्रेनफक अत्यधिक अतिसूक्ष्मवाद के लिए डिज़ाइन किया गया है और केवल आठ अलग-अलग वर्णों वाले प्रोग्रामों के साथ अस्पष्ट कोड की ओर जाता है। निम्न प्रोग्राम "हैलो वर्ल्ड!" को आउटपुट करता है:[:<ref>{{Cite web |title=El Brainfuck|url=https://copy.sh/brainfuck/?c=KysrKysrKysrK1s-KysrKysrKz4rKysrKysrKysrPisrKzw8PC1dPisrLj4rLisrKysrKysKIC4uKysrLj4rKy48PCsrKysrKysrKysrKysrKy4-LisrKy4tLS0tLS0uLS0tLS0tLS0uPisu |access-date=2022-11-30 |website=copy.sh}}</ref> | |||
<syntaxhighlight प्रकाश लैंग = बीएफ> | <syntaxhighlight प्रकाश लैंग = बीएफ> | ||
++++++++++[>++++++++>++++++++++>++++<<<-]>++.>+.++++ +++ | ++++++++++[>++++++++>++++++++++>++++<<<-]>++.>+.++++ +++ | ||
Line 75: | Line 59: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{code|lang=bf|+-<>,.[]}}के अतिरिक्त सभी वर्णों पर ध्यान नहीं दिया जाता है। | |||
=== चिकन === | === चिकन === | ||
चिकन | चिकन में सिर्फ तीन टोकन होते हैं, चिकन शब्द, , और \n। कंपाइलर एक लाइन पर "मुर्गियों" की मात्रा को एक ओपकोड निर्देश के रूप में व्याख्या करता है जिसका उपयोग स्टैक पर डेटा में हेरफेर करने के लिए किया जाता है। एक साधारण चिकन प्रोग्राम में अंकित पंक्तियाँ हो सकती हैं, लेकिन चिकन शब्द को अनगिनत बार दोहराया जाता है।<ref>{{Cite web|title="Hello world" in Esoteric Programming Languages? (Esolangs)|url=https://dev.to/jbc7ag/hello-world-in-esoteric-programming-languages-esolangs-5122|access-date=2022-12-04|website=DEV Community 👩💻👨💻|language=en}}</ref> चिकन का आविष्कार टोरबजोर्न सॉडरस्टेड द्वारा किया गया था जिन्होंने एक वैज्ञानिक निबंध की पैरोडी से भाषा के लिए अपनी प्रेरणा ली थी।<ref>{{Cite web|date=2018-08-08|title=Weirdest Programming Languages {{!}} Programming|url=https://www.omnesgroup.com/weirdest-programming/|access-date=2022-12-04|website=www.omnesgroup.com|language=en-US}}</ref><ref>{{Cite web|date=27 April 2022|title=8 Goofy Programming Languages|url=https://www.thecodingspace.com/blog/2022-04-27-8-goofy-programming-languages/}}</ref><ref>{{Cite web |last=Hongkiat.com |date=2021-09-08 |title=10 Most Bizarre Programming Languages, Vol. 2 |url=https://www.hongkiat.com/blog/bizarre-insane-programming-languages/ |access-date=2022-12-04 |website=Hongkiat |language=en-US}}</ref> | ||
=== शेफ === | |||
शेफ एक स्टैक-ओरिएंटेड प्रोग्रामिंग भाषा है जिसे [[डेविड मॉर्गन-मार्च]] द्वारा बनाया गया है, जिसे प्रोग्राम को [[व्यंजन विधि|रेसिपीज विधि]] की तरह दिखने के लिए डिज़ाइन किया गया है।<ref>{{cite book|last=Cozens|first=Simon|title=Advanced Perl programming|year=2005|publisher=O'Reilly Media|isbn=978-0-596-00456-9|page=269|quote=A final Acme curiosity, and one of my favourites, is Acme::Chef, an implementation of David Morgan-Mar's Chef programming language. In Chef, programs are expressed in the form of recipes: ...}}</ref> प्रोग्राम में एक शीर्षक, वेरिएबल्स की एक सूची और उनके डेटा मान और स्टैक हेरफेर निर्देशों की एक सूची सम्मलित होती है।<ref name="chef">{{cite web|url=http://www.dangermouse.net/esoteric/chef.html|title=बावर्ची|work=DM's Esoteric Programming Languages|first=David|last=Morgan-Mar|publisher=Self-published|date=2011-03-24|access-date=2014-06-28}}</ref> एक मज़ाकिया डिज़ाइन सिद्धांत बताता है कि प्रोग्राम रेसिपीजों को न केवल वैध आउटपुट उत्पन्न करना चाहिए, जबकि तैयार करना आसान और स्वादिष्ट होना चाहिए, मॉर्गन-मार नोट करता है कि "101 अंडे" और "111 कप तेल" के साथ एक उदाहरण [[हैलो वर्ल्ड प्रोग्राम]] एक व्यक्ति के लिए बहुत सारे भोजन का उत्पादन करेगा।<ref name="chef"/><ref>{{cite web|url=http://www.dangermouse.net/esoteric/chef_hello.html|title=Chef Sample Program: Hello World Souffle|work=DM's Esoteric Programming Languages|first=David|last=Morgan-Mar|publisher=Self-published|date=2014-06-28|access-date=2014-06-28}}</ref> | |||
=== [[फ्रैक्ट्रान]] === | |||
एक [[फ्रैक्ट्रान]] प्रोग्राम एक प्रारंभिक सकारात्मक पूर्णांक इनपुट के साथ सकारात्मक अंशों की एक क्रमबद्ध सूची है <math>n</math>. प्रोग्राम पूर्णांक को गुणा करके चलाया जाता है <math>n</math> पहले अंश से <math>f</math> जिसके लिए सूची में <math>nf</math> एक पूर्णांक है। पूर्णांक n को फिर से बदल दिया जाता है <math>n</math> फिर द्वारा प्रतिस्थापित किया जाता है <math>nf</math> और नियम दोहराया जाता है। यदि सूची में कोई अंश गुणा करने पर पूर्णांक नहीं बनाता है <math>n</math>, प्रोग्राम रुक जाता है। फ्रैक्ट्रान का आविष्कार गणितज्ञ [[जॉन हॉर्टन कॉनवे]] ने किया था।<ref>{{cite book |last1=Kneusel |first1=Ronald |title=Strange Code: Esoteric Languages That Make Programming Fun Again |date=2022 |publisher=No Starch Press |isbn=978-1718502406 |page=217 |ref=kneusel-strange-code-fractran}}</ref> | |||
=== गोल्फस्क्रिप्ट === | |||
गोल्फस्क्रिप्ट में प्रोग्राम, [[कोड गोल्फ]] के लिए बनाई गई एक भाषा, जिसमें वस्तुओं की सूची सम्मलित होती है, जिनमें से प्रत्येक को स्टैक पर धक्का दिया जाता है, जैसा कि वेरिएबल्स के अपवाद के साथ होता है, जिसमें कोड ब्लॉक उनके मान के रूप में होता है, जिस स्थिति में कोड निष्पादित होता है .{{citation needed|date=April 2022}} | |||
=== इंटरकाल === | |||
[[INTERCAL|इंटरकैल]], "कंपाइलर लैंग्वेज विद नो प्रोनाउंसेबल एक्रोनिम" के लिए संक्षिप्त, 1972 में उस समय की विभिन्न प्रोग्रामिंग भाषाओं के पहलुओं पर व्यंग्य करने के लिए एक पैरोडी के रूप में बनाया गया था।<ref name="woods-lyon-intercal"/> | |||
=== जेएसएफक === | === जेएसएफक === | ||
[[JSFuck]] [[जावास्क्रिप्ट]] की एक गूढ़ प्रोग्रामिंग शैली है, जहाँ केवल छह वर्णों का उपयोग करके | [[JSFuck|जेएसएफक]] [[जावास्क्रिप्ट]] की एक गूढ़ प्रोग्रामिंग शैली है, जहाँ कोड केवल छह वर्णों का उपयोग करके लिखा जाता है: <code>[</code>, <code>]</code>, <code>(</code>, <code>)</code>, <code>!</code>, और <code>+</code>.ब्रेनफक के विपरीत, जिसके लिए अपने स्वयं के संकलक या दुभाषिया की आवश्यकता होती है, जेएसएफक वैध जावास्क्रिप्ट कोड है, जिसका अर्थ है कि जेएसएफक प्रोग्राम किसी भी [[वेब ब्राउज़र]] या इंजन में चलाया जा सकता है जो जावास्क्रिप्ट की व्याख्या करता है। | ||
ब्रेनफक के विपरीत, जिसके लिए अपने स्वयं के संकलक या दुभाषिया की आवश्यकता होती है, | |||
<ref>{{Cite web|url=https://thedailywtf.com/articles/bidding-on-security|title=Bidding on Security|last=Bailey|first=Jane|date=2016-02-29|website=The Daily WTF|language=en|access-date=2020-03-02}} | <ref>{{Cite web|url=https://thedailywtf.com/articles/bidding-on-security|title=Bidding on Security|last=Bailey|first=Jane|date=2016-02-29|website=The Daily WTF|language=en|access-date=2020-03-02}} | ||
</ref><ref>{{Cite web|url=https://alligator.io/js/exploring-jsfck/|title=Exploring JSF*ck|website=alligator.io|language=en|access-date=2020-03-02}}</ref> | </ref><ref>{{Cite web|url=https://alligator.io/js/exploring-jsfck/|title=Exploring JSF*ck|website=alligator.io|language=en|access-date=2020-03-02}}</ref> | ||
=== लोलकोड === | === लोलकोड === | ||
[[LOLCODE]] को [[lolcat]] | [[LOLCODE|लोलकोड]] को [[lolcat|लोल्कैट्स]] के भाषण के समान बनाया गया है। निम्नलिखित "हैलो वर्ल्ड" उदाहरण है: | ||
HAI | |||
CAN HAS STDIO? | |||
VISIBLE "HAI WORLD!" | |||
KTHXBYE | |||
जबकि लोलकोड का [[शब्दार्थ (कंप्यूटर विज्ञान)|शब्दार्थ]] असामान्य नहीं है, इसके वाक्य-विन्यास को एक [[भाषाई]] घटना के रूप में वर्णित किया गया है, जो प्रोग्रामिंग में [[अनौपचारिक भाषण]] और [[इंटरनेट की ख़ास बोली|इंटरनेट स्लैंग]] के एक असामान्य उदाहरण का प्रतिनिधित्व करता है। <ref>{{Cite journal |last1=Zabenkov |first1=A.A. |last2=Morel Morel |first2=D.A. |date=2014 |title=Esoteric programming languages as a state-of-the-art semiotic trend |journal=Experientia Est Optima Magistra: Collected Arts |volume=3 |publisher=Belgorod State University |url=http://dspace.bsu.edu.ru/handle/123456789/9169 |page=170}}</ref> | |||
=== मालबोल्गे === | |||
मालबोल्गे (मालबोल्गे के नाम पर रखा गया) को सबसे कठिन और गूढ़ प्रोग्रामिंग भाषा के रूप में डिजाइन किया गया था। अन्य विशेषताओं में, कोड डिज़ाइन द्वारा स्व-संशोधित है और एक निर्देश का प्रभाव मेमोरी में उसके पते पर निर्भर करता है।{{citation needed|date=April 2022}} | |||
=== पीट === | === पीट === | ||
[[File:Piet Program.gif|thumb|पीट प्रोग्राम जो 'पीट' प्रिंट करता है]] | [[File:Piet Program.gif|thumb|पीट प्रोग्राम जो 'पीट' प्रिंट करता है]] | ||
[[File:Piet Program Hello World.gif|thumb|पीट में एक हैलो वर्ल्ड | [[File:Piet Program Hello World.gif|thumb|पीट में एक हैलो वर्ल्ड प्रोग्राम]]पीट डेविड मॉर्गन-मार द्वारा डिज़ाइन की गई एक भाषा है, जिसके प्रोग्राम बिटमैप्स हैं जो [[अमूर्त कला]] की तरह दिखते हैं।<ref name=":0"> | ||
{{cite web | {{cite web | ||
| title = Piet programming language | | title = Piet programming language | ||
Line 162: | Line 134: | ||
| date = 25 January 2008 | | date = 25 January 2008 | ||
| access-date = 18 May 2013}} | | access-date = 18 May 2013}} | ||
</ref> निष्पादन एक | </ref> निष्पादन एक "पॉइंटर" द्वारा निर्देशित होता है जो छवि के चारों ओर घूमता है, एक सतत रंगीन क्षेत्र से अगले तक। जब सूचक किसी क्षेत्र से बाहर निकलता है तो प्रक्रियाएं की जाती हैं। | ||
20 रंग हैं जिनके लिए व्यवहार निर्दिष्ट किया गया है: 18 रंगीन रंग, जिन्हें 6-चरणीय रंग चक्र और 3-चरण चमक चक्र द्वारा क्रमबद्ध किया जाता है; और काले और सफेद, जो आदेशित नहीं हैं। एक रंगीन रंग से बाहर निकलने और दूसरे में प्रवेश करने पर, निष्पादित प्रक्रिया रंग और चमक में परिवर्तन के चरणों की संख्या से निर्धारित होती है। काले रंग में प्रवेश नहीं किया जा सकता; जब सूचक एक काले क्षेत्र में प्रवेश करने का प्रयास करता है, तो इसके | ऐसे 20 रंग हैं जिनके लिए व्यवहार निर्दिष्ट किया गया है: 18 "रंगीन" रंग, जिन्हें 6-चरणीय रंग चक्र और 3-चरण चमक चक्र द्वारा क्रमबद्ध किया जाता है; और काले और सफेद, जो आदेशित नहीं हैं। एक "रंगीन" रंग से बाहर निकलने और दूसरे रंग में प्रवेश करने पर, निष्पादित प्रक्रिया रंग और चमक में परिवर्तन के चरणों की संख्या से निर्धारित होती है। काले रंग में प्रवेश नहीं किया जा सकता; जब सूचक एक काले क्षेत्र में प्रवेश करने का प्रयास करता है, तो इसके अतिरिक्तअगले ब्लॉक को चुनने के नियम बदल जाते हैं। यदि सभी संभावित नियमों का प्रयास किया जाता है, तो कार्यक्रम समाप्त हो जाता है। छवि की सीमाओं के बाहर के क्षेत्रों को भी काला माना जाता है। व्हाइट ऑपरेशन नहीं करता है, लेकिन पॉइंटर को "पास" करने की अनुमति देता है। निर्दिष्ट 20 के अतिरिक्त अन्य रंगों का व्यवहार संकलक या दुभाषिया पर छोड़ दिया जाता है।<ref name=":0" />{{Primary source inline|date=April 2022}} | ||
वेवेरिएबल्स को स्मृति में एक स्टैक में हस्ताक्षरित पूर्णांक के रूप में संग्रहीत किया जाता है। अधिकांश निर्दिष्ट प्रक्रियाएं उस स्टैक पर संचालन से संबंधित हैं, जबकि अन्य इनपुट/आउटपुट और उन नियमों से निपटते हैं जिनके द्वारा संकलन सूचक चलता है।<ref>{{cite book |last1=Kneusel |first1=Ronald |title=Strange Code: Esoteric Languages That Make Programming Fun Again |date=2022 |publisher=No Starch Press |isbn=978-1718502406 |pages=246-247 |ref=kneusel-strange-code-piet}}</ref> | |||
पीट का नाम डच चित्रकार [[पीट मोंड्रियन]] के नाम पर रखा गया था।<ref name="Cox2013">{{harvnb|Cox|2013|p=6}}</ref> मूल प्रयोजन नाम, मोंड्रियन,पहले से ही [[मोंड्रियन (सॉफ्टवेयर)]] ओपन-सोर्स सांख्यिकीय डेटा-विज़ुअलाइज़ेशन प्रणाली द्वारा लिया गया था।<ref name=":0" /> | |||
=== रॉकस्टार === | === रॉकस्टार === | ||
रॉकस्टार एक कंप्यूटर प्रोग्रामिंग | रॉकस्टार एक कंप्यूटर प्रोग्रामिंग भाषा है जिसे प्रोग्राम बनाने के लिए डिज़ाइन किया गया है जो डायलन बीट्टी द्वारा बनाए गए हेयर मेटल पावर गाथागीत भी हैं।<ref>{{cite web |title=rockstar: home |url=https://codewithrockstar.com/ |website=codewithrockstar.com}}</ref><ref>{{cite web |last1=Lewrypublished |first1=Fraser |title=Meet the boffin behind a computer programming language based on power ballads |url=https://www.loudersound.com/features/meet-the-boffin-behind-a-computer-programming-language-based-on-power-ballads |website=loudersound |language=en |date=1 August 2018}}</ref><ref>{{cite news |last1=Doctorow |first1=Cory |title=Rockstar: a programming language whose code takes the form of power ballads |url=https://boingboing.net/2018/07/25/hello-cleveland-world.html |work=Boing Boing |date=25 July 2018}}</ref> | ||
=== [[शेक्सपियर]] === | |||
[[शेक्सपियर (प्रोग्रामिंग भाषा)|शेक्सपियर]] को शेक्सपियर के नाटकों की तरह कार्यक्रमों को देखने के लिए डिज़ाइन किया गया है। उदाहरण के लिए, निम्नलिखित कथन कार्यक्रम में एक बिंदु की घोषणा करता है जिस तक गोटो-प्रकार के बयान के माध्यम से पहुँचा जा सकता है:{{citation needed|date=April 2022}} | |||
हेमलेट अधिनियम I|अधिनियम I: हैमलेट का अपमान और चापलूसी। | |||
हेमलेट | |||
=== अनलंबा === | === अनलंबा === | ||
अनलैम्ब्डा एसकेआई | अनलैम्ब्डा एसकेआई कैलकुलस पर आधारित एक न्यूनतम कार्यात्मक प्रोग्रामिंग भाषा है, लेकिन प्रथम श्रेणी की निरंतरता और अनिवार्य I/O के साथ संयुक्त है (इनपुट के साथ सामान्यतः निरंतरता के उपयोग की आवश्यकता होती है)। {{citation needed|date=April 2022}} | ||
=== व्हाइटस्पेस === | === व्हाइटस्पेस === | ||
व्हॉट्सएप | व्हॉट्सएप केवल व्हॉट्सएप वर्णों (स्पेस, टैब और रिटर्न) का उपयोग करता है, अन्य सभी वर्णों को अनदेखा करता है, इसलिए इसका उपयोग टिप्पणियों के लिए किया जा सकता है। यह कई पारंपरिक भाषाओं का उल्टा है, जो अलग-अलग व्हाट्सएप वर्णों के बीच अंतर नहीं करती हैं, टैब और स्पेस को समान मानती हैं। यह व्हॉट्सएप प्रोग्राम को सी जैसी भाषाओं में प्रोग्राम के स्रोत कोड में छिपाने की भी अनुमति देता है। {{citation needed|date=April 2022}} | ||
== सांस्कृतिक संदर्भ == | == सांस्कृतिक संदर्भ == | ||
एसोलांग्स के सांस्कृतिक संदर्भ का अध्ययन ज्योफ कॉक्स द्वारा किया गया है, जो लिखते हैं कि एसोलांग्स "सांस्कृतिक अभिव्यक्ति और इनकार की ओर आदेश और नियंत्रण से ध्यान हटाते हैं",<ref>{{harvnb|Cox|2013|page=5}}</ref> एसोलांग्स को कोड कला और कोड कविता के समान देखते हैं, जैसे कि मेज़ ब्रीज़ की मेजेंजेल। डैनियल टेमकिन ब्रेनफक का वर्णन "मानव अभिव्यक्ति और असेंबली कोड के बीच की सीमा को कम करने से इनकार करने और इस तरह हमें तर्क की हास्यास्पद यात्रा पर ले जाने" के रूप में करते हैं,<ref>{{cite journal|last=Temkin|first=Daniel|title=Glitch && Human/Computer Interaction|journal=NOOART: The Journal of Objectless Art|date=15 January 2014|issue=1|url=http://nooart.org/post/73353953758/temkin-glitchhumancomputerinteraction}}</ref> मानव सोच और कंप्यूटर तर्क के बीच निहित संघर्ष को उजागर करते हैं। वह [[प्रवाह]] गति जैसे इवेंट स्कोर के प्रदर्शन के लिए एक एसोलंग के भीतर प्रोग्रामिंग को जोड़ता है, जहां कोड में तर्क के नियमों को खेलने से भाषा का दृष्टिकोण स्पष्ट हो जाता है।<ref>{{cite journal|last=Temkin|first=Daniel|title=brainfuck|url=http://median.s151960.gridserver.com/?page_id=947|journal=Media-N Journal|issue=Spring 2013|access-date=2014-05-06}}</ref> | |||
==संदर्भ== | ==संदर्भ== | ||
{{Reflist}} | {{Reflist}} | ||
Line 208: | Line 173: | ||
{{Use dmy dates|date=July 2017}} | {{Use dmy dates|date=July 2017}} | ||
{{DEFAULTSORT:Esoteric Programming Language}} | {{DEFAULTSORT:Esoteric Programming Language}} | ||
[[Category:All articles with unsourced statements|Esoteric Programming Language]] | |||
[[Category:Articles with Curlie links|Esoteric Programming Language]] | |||
[[Category: | [[Category:Articles with hatnote templates targeting a nonexistent page|Esoteric Programming Language]] | ||
[[Category:Created On 18/02/2023]] | [[Category:Articles with invalid date parameter in template|Esoteric Programming Language]] | ||
[[Category:Articles with unsourced statements from April 2022|Esoteric Programming Language]] | |||
[[Category:Articles with unsourced statements from July 2021|Esoteric Programming Language]] | |||
[[Category:CS1 English-language sources (en)]] | |||
[[Category:Collapse templates|Esoteric Programming Language]] | |||
[[Category:Commons category link is locally defined|Esoteric Programming Language]] | |||
[[Category:Created On 18/02/2023|Esoteric Programming Language]] | |||
[[Category:Lua-based templates|Esoteric Programming Language]] | |||
[[Category:Machine Translated Page|Esoteric Programming Language]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists|Esoteric Programming Language]] | |||
[[Category:Pages with script errors|Esoteric Programming Language]] | |||
[[Category:Pages with syntax highlighting errors]] | |||
[[Category:Short description with empty Wikidata description|Esoteric Programming Language]] | |||
[[Category:Sidebars with styles needing conversion|Esoteric Programming Language]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Vigyan Ready|Esoteric Programming Language]] | |||
[[Category:Templates generating microformats|Esoteric Programming Language]] | |||
[[Category:Templates that add a tracking category|Esoteric Programming Language]] | |||
[[Category:Templates that are not mobile friendly|Esoteric Programming Language]] | |||
[[Category:Templates that generate short descriptions|Esoteric Programming Language]] | |||
[[Category:Templates using TemplateData|Esoteric Programming Language]] | |||
[[Category:Use dmy dates from July 2017|Esoteric Programming Language]] | |||
[[Category:Wikipedia articles needing page number citations from June 2022|Esoteric Programming Language]] | |||
[[Category:Wikipedia metatemplates|Esoteric Programming Language]] | |||
[[Category:एसोटेरिक प्रोग्रामिंग लैंग्वेज| एसोटेरिक प्रोग्रामिंग लैंग्वेज ]] | |||
[[Category:कंप्यूटर हास्य|Esoteric Programming Language]] | |||
[[Category:प्रोग्रामिंग भाषा वर्गीकरण|Esoteric Programming Language]] |
Latest revision as of 12:18, 31 August 2023
गूढ़ प्रोग्रामिंग भाषा (कभी-कभी एसोलंग के लिए संक्षिप्त) वह प्रोग्रामिंग भाषा है, जिसे कंप्यूटर प्रोग्रामिंग भाषा डिज़ाइन की सीमाओं का परीक्षण करने के लिए बनाया गया है, अवधारणा के प्रमाण के रूप में, सॉफ़्टवेयर कला के रूप में, किसी अन्य भाषा (विशेष रूप से कार्यात्मक प्रोग्रामिंग या प्रक्रियात्मक प्रोग्रामिंग भाषाओं) के लिए हैकिंग इंटरफ़ेस के रूप में , या परिहास के रूप में किया जाता है। एसोटेरिक शब्द का उपयोग उन भाषाओं से अलग करता है जो काम करने वाले डेवलपर्स सॉफ़्टवेयर के लिए उपयोग करते हैं। अधिकांश एसोलैंग्स के निर्माता उन्हें मुख्यधारा की प्रोग्रामिंग के लिए उपयोग करने का प्रयोजन नहीं रखते हैं, चूँकि कुछ गूढ़ विशेषताएं, जैसे कि विसुओस्पेशियल सिंटैक्स, (प्रोग्रामिंग भाषाएं),[1] ने कला में व्यावहारिक अनुप्रयोगों को प्रेरित किया है। ऐसी भाषाएँ अधिकांशतः हैकर और होबबईस्ट के बीच लोकप्रिय होती हैं।[citation needed]
गूढ़ प्रोग्रामिंग भाषाओं के डिजाइनरों के लिए उपयोगिता संभवतः ही एक लक्ष्य है; जो अधिकांशतः उनके डिजाइन के अधिक विपरीत होता है। उनका सामान्य उद्देश्य ट्यूरिंग-पूर्ण, या यहां तक कि एक जिसके लिए संगणनात्मक वर्ग अज्ञात है, को बनाए रखते हुए पारंपरिक भाषा की सुविधाओं को हटाना या बदलना है।
इतिहास
एक गूढ़ प्रोग्रामिंग भाषा का सबसे पहला, और विहित उदाहरण, इंटरकैल है,[2] जिसे 1972 में डॉन वुड्स (प्रोग्रामर) और जेम्स एम. ल्योन द्वारा डिज़ाइन किया गया,जिन्होंने कहा था, कि उनका प्रयोजन एक ऐसी प्रोग्रामिंग भाषा बनाना था जिससे वे परिचित थे [3][4] यह उस समय की स्थापित प्रोग्रामिंग भाषाओं जैसे कि फोरट्रान, कोबोल और असेंबली भाषा के तत्वों की पैरोडी करता है।
कई वर्षों के लिए, इंटरकैल को केवल इंटरकैल मैनुअल की कागजी प्रतियों द्वारा दर्शाया गया था। यूनिक्स के अनुसार सी (प्रोग्रामिंग भाषा) में एक कार्यान्वयन के रूप में 1990 में इसके पुनरुद्धार ने गूढ़ कंप्यूटर भाषाओं के जानबूझकर डिजाइन में रुचि की लहर को प्रेरित किया।
1993 में, वाउटर वैन ऊर्टमर्सन ने फालसे बनाया, एक छोटी स्टैक-उन्मुख प्रोग्रामिंग भाषा जिसमें सिंटैक्स को कोड को स्वाभाविक रूप से अस्पष्ट, भ्रामक और अपठनीय बनाने के लिए डिज़ाइन किया गया था। इसका संकलक आकार में केवल 1024 बाइट का है।[5] इसने अर्बन मुलर को और भी छोटी भाषा बनाने के लिए प्रेरित किया, जो अब कुख्यात ब्रेनफक है, जिसमें केवल आठ मान्यता प्राप्त वर्ण हैं। क्रिस प्रेसी की बेफुंज (जैसे फालसे, लेकिन एक द्वि-आयामी निर्देश सूचक के साथ) के साथ, ब्रेनफक अब ट्यूरिंग टैरपिट्स के कैनोनिकल उदाहरणों और अनावश्यक रूप से अस्पष्ट भाषा सुविधाओं के साथ सबसे अच्छी समर्थित गूढ़ प्रोग्रामिंग भाषाओं में से एक है। ब्रेनफक ट्यूरिंग मशीनों के पी' परिवार से संबंधित है।
सामान्य विशेषताएं
जबकि गूढ़ प्रोग्रामिंग भाषाएं कई विधियों से भिन्न होती हैं, कुछ सामान्य लक्षण होते हैं जो कई भाषाओं की विशेषता बताते हैं, जैसे पैरोडी, अतिसूक्ष्मवाद, और प्रोग्रामिंग को कठिन बनाने का लक्ष्य बनाते है। [6]
अद्वितीय डेटा प्रतिनिधित्व
पारंपरिक अनिवार्य प्रोग्रामिंग सामान्यतः डेटा को चर में संग्रहीत करने की अनुमति देती हैं, लेकिन गूढ़ भाषाएं डेटा को संग्रहीत करने और एक्सेस करने के विभिन्न विधियों का उपयोग कर सकती हैं। ब्रेनफक और मालबोल्गे जैसी भाषाएं केवल एक सूचक के माध्यम से डेटा को पढ़ने की अनुमति देती हैं, जिसे डेटा पढ़ने से पहले रुचि के स्थान पर ले जाना चाहिए। अन्य, जैसे बेफंज और शेक्सपियर प्रोग्रामिंग भाषा जैसे डेटा को डेटा को होल्ड करने के लिए एक या एक से अधिक स्टैक का उपयोग करते हैं, जिससे रिवर्स पोलिश नोटेशन के समान निष्पादन का विधि सामने आता है। अंत में, ऐसी भाषाएं हैं जो संख्या प्रतिनिधित्व के वैकल्पिक रूपों का पता लगाती हैं: ब्रेनफक संस्करण बूलफक केवल एकल बिट्स पर संचालन की अनुमति देता है, जबकि मालबोल्गे और और इंटरकैल वेरिएंट ट्राईइंटरकल बिट्स को एक आधार 3 टर्नरी प्रणाली के साथ पूरी तरह से बदल देता है। [7]
अद्वितीय निर्देश प्रतिनिधित्व
गूढ़ भाषाएँ प्रोग्राम के निर्देशों का प्रतिनिधित्व करने के अनूठे विधि भी प्रदर्शित करती हैं। कुछ भाषाएँ, जैसे कि बेफुंज और पीट, दो या दो से अधिक आयामों में प्रोग्रामों का प्रतिनिधित्व करती हैं, प्रोग्राम नियंत्रण प्रोग्राम के माध्यम से कई संभावित दिशाओं में घूमता है।[8][page needed] यह पारंपरिक भाषाओं से भिन्न है जिसमें एक प्रोग्राम निर्देशों का एक सेट होता है जो सामान्यतः अनुक्रम में मिलते हैं। अन्य भाषाएं असामान्य रूप में प्रकट होने के लिए निर्देशों को संशोधित करती हैं, अधिकांशतः एक जिसे मानव द्वारा अंतर्निहित निर्देशों के वैकल्पिक अर्थ के साथ पढ़ा जा सकता है। शेक्सपियर प्रोग्रामिंग भाषा सभी प्रोग्रामों को शेक्सपियरियन नाटकों के समान बनाकर इसे प्राप्त करती है। शेफ प्रोग्रामिंग भाषा सभी प्रोग्रामों को रेसिपीज बना कर शेफ समान प्राप्त करता है।[7] शेफ विशेष रूप से उल्लेखनीय है कि कुछ ऐसे प्रोग्राम बनाए हैं, जो इस दोहरे अर्थ को उत्पन्न करने के लिए भाषा की क्षमता का प्रदर्शन करते हुए प्रोग्राम और नुस्खा दोनों के रूप में सफलतापूर्वक कार्य करते हैं।[9]
पढ़ने और लिखने में कठिनाई
कई गूढ़ प्रोग्रामिंग भाषाओं को कोड तैयार करने के लिए डिज़ाइन किया गया है जो गहराई से अस्पष्ट है, जिससे इसे पढ़ना और लिखना जटिल हो जाता है।[10] इसका उद्देश्य प्रोग्राम लेखकों के लिए एक दिलचस्प पहेली या चुनौती प्रदान करना हो सकता है: उदाहरण के लिए मालबोलगे को स्पष्ट रूप से चुनौतीपूर्ण होने के लिए डिज़ाइन किया गया था, और इसलिए इसमें स्व-संशोधित कोड और अत्यधिक प्रतिसंवेदी संचालन जैसी विशेषताएं हैं।[10] दूसरी ओर, कुछ गूढ़ भाषाओं को उनके अन्य डिज़ाइन विकल्पों के कारण लिखना कठिन हो जाता है। ब्रेनफक एक न्यूनतम निर्देश सेट के विचार के लिए प्रतिबद्ध है, इसलिए यदिइसके निर्देश सिद्धांत रूप में सीधे हों, जो कोड उत्पन्न होता है वह मनुष्य के लिए पढ़ना जटिल होता है। इंटरकैल की कठिनाई किसी अन्य प्रोग्रामिंग भाषा में उपयोग किए जाने वाले संचालन से बचने के विकल्प के परिणामस्वरूप उत्पन्न होती है, जो अन्य भाषाओं की पैरोडी के रूप में इसकी उत्पत्ति से उत्पन्न होती है।[10]
पैरोडी और स्पूफ
गूढ़ प्रोग्रामिंग भाषाओं का एक उद्देश्य प्रोग्रामिंग के क्षेत्र में उपस्थिता भाषाओं और प्रवृत्तियों की पैरोडी या स्पूफ करना है। [10] उदाहरण के लिए, पहली गूढ़ भाषा इंटरकैल 1960 के दशक में APL (प्रोग्रामिंग लैंग्वेज), फोरट्रान और COBOL जैसी भाषाओं की नकल के रूप में प्रारंभ हुई। इंटरकैल के नियम इन अन्य भाषाओं के नियमों के विपरीत प्रतीत होते हैं।[11] चूँकि, पैरोडी का विषय हमेशा एक अन्य स्थापित प्रोग्रामिंग भाषा नहीं है। उदाहरण के लिए, शेक्सपियर को शेक्सपियर के नाटकों की संरचना को खराब करने के रूप में देखा जा सकता है। भाषा ठीक है! ब्रेनफक की पैरोडी है, जहां ब्रेनफक के 8 कमांड को ओक जैसी विभिन्न ऑरंगुटैंग ध्वनियों द्वारा प्रतिस्थापित किया जाता है। "ओक। ओक?"[7]
उदाहरण
बिफंगे
Befunge निर्देश सूचक को कोड के माध्यम से कई आयामों में घूमने की अनुमति देता है। उदाहरण के लिए, निम्नलिखित प्रोग्राम स्टैक पर वर्णों को उल्टे क्रम में धकेल कर "हैलो वर्ल्ड" प्रदर्शित करता है, फिर वर्णों को एक लूप में प्रिंट करता है जो निर्देशों के माध्यम से घड़ी की दिशा में प्रसारित होता है >
, :
, v
, _
, ,
, और ^
.
dlroW OlleH >:v
^,_@
Befunge के कई संस्करण हैं, सबसे आम Befunge-93 है।[citation needed]
बाइनरी लैम्ब्डा कैलकुस
बाइनरी लैम्ब्डा कैलकुलस को एल्गोरिथम सूचना सिद्धांत के दृष्टिकोण से डिज़ाइन किया गया है जिससे कि न्यूनतम साधनों के साथ सघनतम संभव कोड की अनुमति दी जा सके, जिसमें 29-बाइट सेल्फ इंटरप्रेटर, 21-बाइट प्राइम नंबर चलनी और 112-बाइट ब्रेनफक इंटरप्रेटर सम्मलित है।[12]
ब्रेनफक
ब्रेनफक अत्यधिक अतिसूक्ष्मवाद के लिए डिज़ाइन किया गया है और केवल आठ अलग-अलग वर्णों वाले प्रोग्रामों के साथ अस्पष्ट कोड की ओर जाता है। निम्न प्रोग्राम "हैलो वर्ल्ड!" को आउटपुट करता है:[:[13]
++++++++++[>++++++++>++++++++++>++++<<<-]>++.>+.++++ +++
..+++.>++.<<++++++++++++++++.>.+++.------.--------. >+।
+-<>,.[]
के अतिरिक्त सभी वर्णों पर ध्यान नहीं दिया जाता है।
चिकन
चिकन में सिर्फ तीन टोकन होते हैं, चिकन शब्द, , और \n। कंपाइलर एक लाइन पर "मुर्गियों" की मात्रा को एक ओपकोड निर्देश के रूप में व्याख्या करता है जिसका उपयोग स्टैक पर डेटा में हेरफेर करने के लिए किया जाता है। एक साधारण चिकन प्रोग्राम में अंकित पंक्तियाँ हो सकती हैं, लेकिन चिकन शब्द को अनगिनत बार दोहराया जाता है।[14] चिकन का आविष्कार टोरबजोर्न सॉडरस्टेड द्वारा किया गया था जिन्होंने एक वैज्ञानिक निबंध की पैरोडी से भाषा के लिए अपनी प्रेरणा ली थी।[15][16][17]
शेफ
शेफ एक स्टैक-ओरिएंटेड प्रोग्रामिंग भाषा है जिसे डेविड मॉर्गन-मार्च द्वारा बनाया गया है, जिसे प्रोग्राम को रेसिपीज विधि की तरह दिखने के लिए डिज़ाइन किया गया है।[18] प्रोग्राम में एक शीर्षक, वेरिएबल्स की एक सूची और उनके डेटा मान और स्टैक हेरफेर निर्देशों की एक सूची सम्मलित होती है।[19] एक मज़ाकिया डिज़ाइन सिद्धांत बताता है कि प्रोग्राम रेसिपीजों को न केवल वैध आउटपुट उत्पन्न करना चाहिए, जबकि तैयार करना आसान और स्वादिष्ट होना चाहिए, मॉर्गन-मार नोट करता है कि "101 अंडे" और "111 कप तेल" के साथ एक उदाहरण हैलो वर्ल्ड प्रोग्राम एक व्यक्ति के लिए बहुत सारे भोजन का उत्पादन करेगा।[19][20]
फ्रैक्ट्रान
एक फ्रैक्ट्रान प्रोग्राम एक प्रारंभिक सकारात्मक पूर्णांक इनपुट के साथ सकारात्मक अंशों की एक क्रमबद्ध सूची है . प्रोग्राम पूर्णांक को गुणा करके चलाया जाता है पहले अंश से जिसके लिए सूची में एक पूर्णांक है। पूर्णांक n को फिर से बदल दिया जाता है फिर द्वारा प्रतिस्थापित किया जाता है और नियम दोहराया जाता है। यदि सूची में कोई अंश गुणा करने पर पूर्णांक नहीं बनाता है , प्रोग्राम रुक जाता है। फ्रैक्ट्रान का आविष्कार गणितज्ञ जॉन हॉर्टन कॉनवे ने किया था।[21]
गोल्फस्क्रिप्ट
गोल्फस्क्रिप्ट में प्रोग्राम, कोड गोल्फ के लिए बनाई गई एक भाषा, जिसमें वस्तुओं की सूची सम्मलित होती है, जिनमें से प्रत्येक को स्टैक पर धक्का दिया जाता है, जैसा कि वेरिएबल्स के अपवाद के साथ होता है, जिसमें कोड ब्लॉक उनके मान के रूप में होता है, जिस स्थिति में कोड निष्पादित होता है .[citation needed]
इंटरकाल
इंटरकैल, "कंपाइलर लैंग्वेज विद नो प्रोनाउंसेबल एक्रोनिम" के लिए संक्षिप्त, 1972 में उस समय की विभिन्न प्रोग्रामिंग भाषाओं के पहलुओं पर व्यंग्य करने के लिए एक पैरोडी के रूप में बनाया गया था।[4]
जेएसएफक
जेएसएफक जावास्क्रिप्ट की एक गूढ़ प्रोग्रामिंग शैली है, जहाँ कोड केवल छह वर्णों का उपयोग करके लिखा जाता है: [
, ]
, (
, )
, !
, और +
.ब्रेनफक के विपरीत, जिसके लिए अपने स्वयं के संकलक या दुभाषिया की आवश्यकता होती है, जेएसएफक वैध जावास्क्रिप्ट कोड है, जिसका अर्थ है कि जेएसएफक प्रोग्राम किसी भी वेब ब्राउज़र या इंजन में चलाया जा सकता है जो जावास्क्रिप्ट की व्याख्या करता है।
[22][23]
लोलकोड
लोलकोड को लोल्कैट्स के भाषण के समान बनाया गया है। निम्नलिखित "हैलो वर्ल्ड" उदाहरण है:
HAI
CAN HAS STDIO?
VISIBLE "HAI WORLD!"
KTHXBYE
जबकि लोलकोड का शब्दार्थ असामान्य नहीं है, इसके वाक्य-विन्यास को एक भाषाई घटना के रूप में वर्णित किया गया है, जो प्रोग्रामिंग में अनौपचारिक भाषण और इंटरनेट स्लैंग के एक असामान्य उदाहरण का प्रतिनिधित्व करता है। [24]
मालबोल्गे
मालबोल्गे (मालबोल्गे के नाम पर रखा गया) को सबसे कठिन और गूढ़ प्रोग्रामिंग भाषा के रूप में डिजाइन किया गया था। अन्य विशेषताओं में, कोड डिज़ाइन द्वारा स्व-संशोधित है और एक निर्देश का प्रभाव मेमोरी में उसके पते पर निर्भर करता है।[citation needed]
पीट
पीट डेविड मॉर्गन-मार द्वारा डिज़ाइन की गई एक भाषा है, जिसके प्रोग्राम बिटमैप्स हैं जो अमूर्त कला की तरह दिखते हैं।[25] निष्पादन एक "पॉइंटर" द्वारा निर्देशित होता है जो छवि के चारों ओर घूमता है, एक सतत रंगीन क्षेत्र से अगले तक। जब सूचक किसी क्षेत्र से बाहर निकलता है तो प्रक्रियाएं की जाती हैं।
ऐसे 20 रंग हैं जिनके लिए व्यवहार निर्दिष्ट किया गया है: 18 "रंगीन" रंग, जिन्हें 6-चरणीय रंग चक्र और 3-चरण चमक चक्र द्वारा क्रमबद्ध किया जाता है; और काले और सफेद, जो आदेशित नहीं हैं। एक "रंगीन" रंग से बाहर निकलने और दूसरे रंग में प्रवेश करने पर, निष्पादित प्रक्रिया रंग और चमक में परिवर्तन के चरणों की संख्या से निर्धारित होती है। काले रंग में प्रवेश नहीं किया जा सकता; जब सूचक एक काले क्षेत्र में प्रवेश करने का प्रयास करता है, तो इसके अतिरिक्तअगले ब्लॉक को चुनने के नियम बदल जाते हैं। यदि सभी संभावित नियमों का प्रयास किया जाता है, तो कार्यक्रम समाप्त हो जाता है। छवि की सीमाओं के बाहर के क्षेत्रों को भी काला माना जाता है। व्हाइट ऑपरेशन नहीं करता है, लेकिन पॉइंटर को "पास" करने की अनुमति देता है। निर्दिष्ट 20 के अतिरिक्त अन्य रंगों का व्यवहार संकलक या दुभाषिया पर छोड़ दिया जाता है।[25][non-primary source needed]
वेवेरिएबल्स को स्मृति में एक स्टैक में हस्ताक्षरित पूर्णांक के रूप में संग्रहीत किया जाता है। अधिकांश निर्दिष्ट प्रक्रियाएं उस स्टैक पर संचालन से संबंधित हैं, जबकि अन्य इनपुट/आउटपुट और उन नियमों से निपटते हैं जिनके द्वारा संकलन सूचक चलता है।[26]
पीट का नाम डच चित्रकार पीट मोंड्रियन के नाम पर रखा गया था।[27] मूल प्रयोजन नाम, मोंड्रियन,पहले से ही मोंड्रियन (सॉफ्टवेयर) ओपन-सोर्स सांख्यिकीय डेटा-विज़ुअलाइज़ेशन प्रणाली द्वारा लिया गया था।[25]
रॉकस्टार
रॉकस्टार एक कंप्यूटर प्रोग्रामिंग भाषा है जिसे प्रोग्राम बनाने के लिए डिज़ाइन किया गया है जो डायलन बीट्टी द्वारा बनाए गए हेयर मेटल पावर गाथागीत भी हैं।[28][29][30]
शेक्सपियर
शेक्सपियर को शेक्सपियर के नाटकों की तरह कार्यक्रमों को देखने के लिए डिज़ाइन किया गया है। उदाहरण के लिए, निम्नलिखित कथन कार्यक्रम में एक बिंदु की घोषणा करता है जिस तक गोटो-प्रकार के बयान के माध्यम से पहुँचा जा सकता है:[citation needed]
हेमलेट अधिनियम I|अधिनियम I: हैमलेट का अपमान और चापलूसी।
अनलंबा
अनलैम्ब्डा एसकेआई कैलकुलस पर आधारित एक न्यूनतम कार्यात्मक प्रोग्रामिंग भाषा है, लेकिन प्रथम श्रेणी की निरंतरता और अनिवार्य I/O के साथ संयुक्त है (इनपुट के साथ सामान्यतः निरंतरता के उपयोग की आवश्यकता होती है)।[citation needed]
व्हाइटस्पेस
व्हॉट्सएप केवल व्हॉट्सएप वर्णों (स्पेस, टैब और रिटर्न) का उपयोग करता है, अन्य सभी वर्णों को अनदेखा करता है, इसलिए इसका उपयोग टिप्पणियों के लिए किया जा सकता है। यह कई पारंपरिक भाषाओं का उल्टा है, जो अलग-अलग व्हाट्सएप वर्णों के बीच अंतर नहीं करती हैं, टैब और स्पेस को समान मानती हैं। यह व्हॉट्सएप प्रोग्राम को सी जैसी भाषाओं में प्रोग्राम के स्रोत कोड में छिपाने की भी अनुमति देता है।[citation needed]
सांस्कृतिक संदर्भ
एसोलांग्स के सांस्कृतिक संदर्भ का अध्ययन ज्योफ कॉक्स द्वारा किया गया है, जो लिखते हैं कि एसोलांग्स "सांस्कृतिक अभिव्यक्ति और इनकार की ओर आदेश और नियंत्रण से ध्यान हटाते हैं",[31] एसोलांग्स को कोड कला और कोड कविता के समान देखते हैं, जैसे कि मेज़ ब्रीज़ की मेजेंजेल। डैनियल टेमकिन ब्रेनफक का वर्णन "मानव अभिव्यक्ति और असेंबली कोड के बीच की सीमा को कम करने से इनकार करने और इस तरह हमें तर्क की हास्यास्पद यात्रा पर ले जाने" के रूप में करते हैं,[32] मानव सोच और कंप्यूटर तर्क के बीच निहित संघर्ष को उजागर करते हैं। वह प्रवाह गति जैसे इवेंट स्कोर के प्रदर्शन के लिए एक एसोलंग के भीतर प्रोग्रामिंग को जोड़ता है, जहां कोड में तर्क के नियमों को खेलने से भाषा का दृष्टिकोण स्पष्ट हो जाता है।[33]
संदर्भ
- ↑ McLean, A., Griffiths, D., Collins, N., and Wiggins, G. (2010). "Visualisation of Live Code". In Electronic Visualisation and the Arts, London: 2010.
- ↑ Matthew Fuller, Software Studies, MIT Press, 2008
- ↑ Eric S. Raymond (1996). The New Hacker's Dictionary. MIT Press. p. 258. ISBN 978-0-262-68092-9.
- ↑ 4.0 4.1 Woods, Donald R.; Lyon, James M. (1973), The INTERCAL Programming Language Reference Manual, Muppetlabs.com, archived from the original on 20 February 2009, retrieved 24 April 2009
- ↑ "Interview with Wouter van Oortmerssen". Esoteric.codes. 1 July 2015. Archived from the original on 8 December 2015. Retrieved 1 December 2015.
- ↑ Fuller, Matthew (2008). Software studies: a lexicon. MIT Press. ISBN 978-0-262-06274-9. OCLC 1156851190.
- ↑ 7.0 7.1 7.2 Morr, Sebastian. "Esoteric Programming Languages." (2015).
- ↑ Cox 2013.
- ↑ Mike (31 March 2013). "Baking a Hello World Cake". Products of Mike's Mind (in English). Retrieved 1 June 2022.
- ↑ 10.0 10.1 10.2 10.3 Mateas, M. and Montfort, N. A Box, Darkly: Obfuscation, Weird Languages, and Code Aesthetics. In Digital Arts and Culture: Digital Experience: Design, Aesthetics, Practice (DAC 2005), Copenhagen, Denmark, 2005.
- ↑ Gaboury, Jacob (2018). "Critical Unmaking: Toward a Queer Computation". In Jentery Sayers (ed.). The Routledge Companion to Media Studies and Digital Humanities. New York: Routledge. pp. 483–491. doi:10.4324/9781315730479-50. ISBN 978-1-315-73047-9.
- ↑ John Tromp. "Most functional". The International Obfuscated C Code Contest. Archived from the original on 19 January 2013.
- ↑ "El Brainfuck". copy.sh. Retrieved 30 November 2022.
- ↑ ""Hello world" in Esoteric Programming Languages? (Esolangs)". DEV Community 👩💻👨💻 (in English). Retrieved 4 December 2022.
- ↑ "Weirdest Programming Languages | Programming". www.omnesgroup.com (in English). 8 August 2018. Retrieved 4 December 2022.
- ↑ "8 Goofy Programming Languages". 27 April 2022.
- ↑ Hongkiat.com (8 September 2021). "10 Most Bizarre Programming Languages, Vol. 2". Hongkiat (in English). Retrieved 4 December 2022.
- ↑ Cozens, Simon (2005). Advanced Perl programming. O'Reilly Media. p. 269. ISBN 978-0-596-00456-9.
A final Acme curiosity, and one of my favourites, is Acme::Chef, an implementation of David Morgan-Mar's Chef programming language. In Chef, programs are expressed in the form of recipes: ...
- ↑ 19.0 19.1 Morgan-Mar, David (24 March 2011). "बावर्ची". DM's Esoteric Programming Languages. Self-published. Retrieved 28 June 2014.
- ↑ Morgan-Mar, David (28 June 2014). "Chef Sample Program: Hello World Souffle". DM's Esoteric Programming Languages. Self-published. Retrieved 28 June 2014.
- ↑ Kneusel, Ronald (2022). Strange Code: Esoteric Languages That Make Programming Fun Again. No Starch Press. p. 217. ISBN 978-1718502406.
- ↑ Bailey, Jane (29 February 2016). "Bidding on Security". The Daily WTF (in English). Retrieved 2 March 2020.
- ↑ "Exploring JSF*ck". alligator.io (in English). Retrieved 2 March 2020.
- ↑ Zabenkov, A.A.; Morel Morel, D.A. (2014). "Esoteric programming languages as a state-of-the-art semiotic trend". Experientia Est Optima Magistra: Collected Arts. Belgorod State University. 3: 170.
- ↑ 25.0 25.1 25.2 Morgan-Mar, David (25 January 2008). "Piet programming language". Retrieved 18 May 2013.
- ↑ Kneusel, Ronald (2022). Strange Code: Esoteric Languages That Make Programming Fun Again. No Starch Press. pp. 246–247. ISBN 978-1718502406.
- ↑ Cox 2013, p. 6
- ↑ "rockstar: home". codewithrockstar.com.
- ↑ Lewrypublished, Fraser (1 August 2018). "Meet the boffin behind a computer programming language based on power ballads". loudersound (in English).
- ↑ Doctorow, Cory (25 July 2018). "Rockstar: a programming language whose code takes the form of power ballads". Boing Boing.
- ↑ Cox 2013, p. 5
- ↑ Temkin, Daniel (15 January 2014). "Glitch && Human/Computer Interaction". NOOART: The Journal of Objectless Art (1).
- ↑ Temkin, Daniel. "brainfuck". Media-N Journal (Spring 2013). Retrieved 6 May 2014.
ग्रन्थसूची
- Paloque-Bergès, Camille (2009). "Langages ésotériques". Poétique des codes sur le réseau informatique. Archives contemporaines. ISBN 978-2-914610-70-4.
- Cox, Geoff (2013). Speaking Code: Coding as Aesthetic and Political Expression. MIT Press. ISBN 978-0-262-01836-4.
- Kneusel, Ronald (2022). Strange Code: Esoteric Languages That Make Programming Fun Again. No Starch Press. ISBN 978-1718502406.
बाहरी संबंध