प्रोग्रामिंग लैंग्वेज: द फर्स्ट जोक

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

तब से लगभग 40 साल बीत चुके हैं। INTERCAL लंबे समय से किसी भी मुख्यधारा की भाषा से कोई लेना-देना नहीं है , जैसा कि इसके डेवलपर्स चाहते थे। आपको यह स्वीकार करना होगा कि एक सामान्य अनिवार्य भाषा, जिसमें नामांकित चर, सरणियाँ, एक असाइनमेंट ऑपरेशन, 5 से अधिक ऑपरेटर हैं, और एक मानक पुस्तकालय जो लापता अंकगणितीय कार्यों को लागू करता है, में ब्रेनफॉक की सामान्य भाषाओं के साथ सामान्य रूप से बहुत अधिक है, दो आयामी, गैर-नियतात्मक भाषाओं का उल्लेख नहीं करना। भाषाएं, अपभ्रंश भाषाएं, एकल निर्देश वाली भाषाएं और हमारे vivarium के अन्य प्रदर्शन। लेकिन वह शैली के अग्रणी बने रहे, कई मायनों में अद्वितीय हैं।

सबसे पहले, एक संदर्भ गाइड। बाद में गूढ़ भाषाएं भाषा के बहुत सार में उनकी असामान्यता को केंद्रित करती हैं, उनके मैनुअल कमांड और सुविधाओं के शुष्क तथ्यात्मक विवरण तक सीमित हैं। INTERCAL प्रोग्रामिंग लैंग्वेज रेफरेंस मैनुअल एक प्रोग्रामिंग लैंग्वेज का एक अनूठा विवरण है, जिसमें "एलिस इन वंडरलैंड" के एपिग्राफ और पूरी तरह से गंभीर स्वर में व्यंग्यात्मक टिप्पणियां हैं। इसके अलावा, विशेष रूप से इस भाषा के लिए, लेखकों ने इस्तेमाल की गई सेवा प्रतीकों के लिए व्यंजना की एक प्रणाली विकसित की: '- चिंगारी,' - खरगोश के कान, - स्पॉट,: - डबल स्पॉट, - पूंछ,; - संकर (हालांकि "धब्बेदार पूंछ" अधिक तार्किक होगी) ), $ - बड़ा पैसा, ~ - ज़गोगुलिन, आदि (एक पूरी सूची मैनुअल से जुड़ी हुई है) खरगोश को प्राप्त करने के लिए एक स्पॉट के साथ खरगोश के कानों को जोड़ना निषिद्ध है!

अगला, त्रुटि संदेश। सभ्य भाषाओं में, त्रुटि संदेश सूचनात्मक होते हैं और जो कुछ भी हुआ उसके कारणों को सटीक रूप से इंगित करता है। बेईमानों में, इसके विपरीत, संदेश या तो सार्वभौमिक होते हैं या त्रुटि के गलत कारणों को फेंक देते हैं। INTERCAL त्रुटियां केवल मैनुअल के रूप में दुर्भावनापूर्ण हैं, और एक संदर्भ के बिना वे सिद्धांत रूप में डिक्रिपर्ड नहीं हैं। वास्तव में, आप अनुमान लगा सकते हैं कि E252 "मैं भूल गया था कि मैं क्या कहने जा रहा था" I / O संचालन के दौरान एक मेमोरी अतिप्रवाह त्रुटि है, और E182 "यह आपको वास्तव में इस लेबल की तरह लगता है" एक ही लेबल का उपयोग करने में कई बार त्रुटि होती है। लेकिन उनके सही दिमाग में और ठोस स्मृति इस विचार के साथ आएगी कि E405 "मानसिक स्वास्थ्य कारणों के लिए कार्यक्रम को अस्वीकार कर दिया गया था" संबंधित कंपाइलर विकल्प के बिना रोलबैक के साथ मल्टीथ्रेडिंग कमांड या गणना के उपयोग को इंगित करता है, E017 "मुझे क्या करना चाहिए?" गलत रेंज के स्थिरांक का उपयोग करना, और E127 "जादू की छड़ी के बिना" अबरकदबरा "कहना पूरी तरह से बेकार है" - मानक पुस्तकालय जुड़ा नहीं है?

कुछ त्रुटियों का अन्य भाषाओं में कोई एनालॉग नहीं है। इसलिए, E079 "प्रोग्रामर पर्याप्त विनम्र नहीं है" और E099 "प्रोग्रामर बहुत विनम्र है" कार्यक्रम में कृपया कमांड के पहचानकर्ताओं की संख्या का उल्लेख करें (वैसे, कृपया पहचानकर्ता किसी अन्य शब्दार्थ भार को वहन नहीं करता है)। त्रुटि E774 "रैंडम कंपाइलर बग" अपने नाम के साथ पूरी तरह से सुसंगत है - यह संयोग से होता है और आमतौर पर फिर से गायब हो जाता है। E995 "क्या, मुझे वास्तव में इसे लागू करना था?" तब होता है जब मैं कोड को निष्पादित करने का प्रयास करता हूं जो अभी तक नहीं लिखा गया है (बस यह नहीं पूछें कि यह कैसे किया जा सकता है!)।

अंत में, भाषा ही। आप लंबे समय तक इसके बारे में बात कर सकते हैं, लेकिन संशोधित संदर्भ मैनुअल को पढ़ना बेहतर है, जो मूल मैनुअल की शैली को संरक्षित करता है, लेकिन आधुनिक भाषा कार्यान्वयन का उपयोग करता है। यहाँ मेरे पसंदीदा स्थानों में से कुछ हैं:



और आजकल, जो लोग INTERCAL के प्रति निष्ठावान हैं और अपने टेक्नो-मासोचिस्टों के रैंक पर गर्व करते हैं - कुछ इस अद्भुत भाषा में ऑपरेटिंग सिस्टम के लिए स्रोत कोड को फेंक देते हैं, अन्य यह साबित करते हैं कि INTERCAL पर्ल से बेहतर है:

Source: https://habr.com/ru/post/In116660/


All Articles