पैच मंगलवार से आगे बढ़ें - यह एडा लवलेस दिवस है! प्लेटोब्लॉकचेन डेटा इंटेलिजेंस। लंबवत खोज. ऐ.

पैच मंगलवार को आगे बढ़ें - यह एडा लवलेस डे है!

हर महीने का दूसरा मंगलवार सुरक्षा अद्यतन के लिए Microsoft का नियमित दिन है, जिसे अभी भी लगभग सभी लोग "पैच मंगलवार" के अनौपचारिक उपनाम से जानते हैं।

लेकिन अक्टूबर में दूसरा मंगलवार भी है एडा लवलेस दिवस, मनाना एडा, काउंटेस ऑफ़ लवलेस.

अदा न केवल कंप्यूटिंग की, बल्कि कंप्यूटर विज्ञान की भी एक सच्ची अग्रणी थी, और उसने अपना नाम प्रोग्रामिंग भाषा अदा को दिया।

एडा भाषा, दिलचस्प रूप से, एक अमेरिकी रक्षा विभाग की परियोजना से उभरी है जिसका उद्देश्य सरकारी कोडिंग की दुनिया को "डिबेलाइज़िंग" करना है, जहाँ हर विभाग एक अलग भाषा, या एक अलग भाषा बोली का पक्ष लेता है, जिससे यह अधिक कठिन, अधिक महंगा हो जाता है, और उन्हें एक साथ काम करने के लिए कम विश्वसनीय।

एडा में पठनीयता में सुधार लाने और सामान्य गलतियों से बचने के उद्देश्य से कई वाक्यात्मक विशेषताएं थीं। सी में टिप्पणियों के विपरीत, जो शुरू होता है /* और अगले तक दौड़ें */, शायद कई पंक्तियों के बाद, अदा बस बाद में किसी भी चीज़ को नज़रअंदाज़ कर देती है -- किसी एक पंक्ति पर, इसलिए टिप्पणियां गलती से आपकी अपेक्षा से आगे नहीं चल सकतीं। स्क्विगली कोष्ठक के भीतर सभी मल्टीलाइन कोड ब्लॉकों को संलग्न करने के बजाय ({...} , जिसे ब्रेसिज़), एडा के पास प्रत्येक प्रकार के बहु-पंक्ति ब्लॉक के लिए एक अद्वितीय टर्मिनेटर है, उदाहरण के लिए end record, end loop और end if. एडा लवलेस, हमें संदेह है, उसने अपनी नाम की भाषा की स्पष्टता की सराहना की होगी, लेकिन एडा-द-भाषा वास्तव में कभी पकड़ी नहीं गई, और सी के स्क्विगली ब्रैकेट सिंटैक्स ने बड़े पैमाने पर दिन जीता है, पाइथन शायद एकमात्र गैर-स्क्विगली-ब्रैकेट भाषा है व्यापक उपयोग। स्क्विगली ब्रैकेट सी, सी ++, सी #, गो, जावा, जावास्क्रिप्ट, पर्ल, रस्ट और कई अन्य लोकप्रिय भाषाओं का एक महत्वपूर्ण पहलू हैं।

एडा लवलेस का युग

आपको यह जानकर आश्चर्य हो सकता है कि, यह देखते हुए कि अदा का नाम कंप्यूटर विज्ञान की शुरुआत के साथ कितनी मजबूती से जुड़ा हुआ है, वह उन्नीसवीं शताब्दी के पूर्वार्द्ध में रहती थी, किसी भी चीज़ से बहुत पहले जिसे हम वर्तमान में कंप्यूटर या कैलकुलेटर के रूप में पहचानते हैं, अस्तित्व में है .

(एडा की 1852 में केवल 36 साल की उम्र में गर्भाशय के कैंसर से मृत्यु हो गई।)

लेकिन यद्यपि कंप्यूटर अपने आधुनिक अर्थों में 1800 के दशक में मौजूद नहीं थे, वे बड़ी घनिष्टता से किया था.

यहां बताया गया है कि यह लगभग कैसे हुआ।

1800 के दशक की शुरुआत में चार्ल्स बैबेज ने प्रसिद्ध रूप से एक यांत्रिक गणना उपकरण तैयार किया, जिसे कहा जाता है अंतर इंजन जो, सिद्धांत रूप में, कम से कम, छठी डिग्री में बहुपद समीकरणों को स्वचालित रूप से हल कर सकता है, उदाहरण के लिए एक्स के लिए मान ढूंढकर जो संतुष्ट होगा:

aX6 + बीएक्स5 +सीएक्स4 +डीएक्स3 +ईएक्स2 + एफएक्स + जी = 0

यूके सरकार की दिलचस्पी थी, क्योंकि इस तरह के एक उपकरण का उपयोग सटीक गणितीय तालिकाएँ बनाने के लिए किया जा सकता है, जैसे वर्गमूल, लघुगणक और त्रिकोणमितीय अनुपात।

और त्रिकोणमितीय गणनाओं में अच्छी कोई भी मशीन गनरी टेबल जैसी चीजों की गणना के लिए भी उपयोगी होगी जो जमीन और समुद्र में तोपखाने की सटीकता में क्रांतिकारी बदलाव ला सकती है।

लेकिन बैबेज को दो समस्याएं थीं।

सबसे पहले, वह डिफरेंस इंजन को ठीक से काम करने के लिए आवश्यक इंजीनियरिंग परिशुद्धता तक कभी नहीं पहुंच सका, क्योंकि इसमें पर्याप्त रूप से कई इंटरलॉकिंग गियर शामिल थे जो बैकलैश (तंत्र में "ढलान" की ओर ले जाने वाली छोटी लेकिन संचयी अशुद्धि) इसे लॉक कर देंगे।

दूसरे, ऐसा लगता है कि उन्होंने डिफरेंस इंजन में रुचि खो दी है जब उन्होंने महसूस किया कि यह एक मृत अंत था - आधुनिक शब्दों में, आप इसे पॉकेट कैलकुलेटर के रूप में सोच सकते हैं, लेकिन टैबलेट कंप्यूटर या लैपटॉप के रूप में नहीं।

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

शायद अनजाने में, अगर अफसोस की बात है। बैबेज की अधिक उन्नत परियोजना के वित्तपोषण में सरकार की कोई दिलचस्पी नहीं थी।

यह देखते हुए कि वह एक बहुत ही सरल समीकरण सॉल्वर के लिए आवश्यक तंत्र का निर्माण करने में कामयाब नहीं हुआ था, एक विशाल, भाप से चलने वाले, सामान्य-उद्देश्य वाले कंप्यूटर के पास कभी भी कोई उपयोगी परिणाम देने का क्या मौका था?

यूरोपीय सम्मेलन सर्किट

अंतरराष्ट्रीय, बहुभाषी सहयोग के एक जिज्ञासु मोड़ में, बैबेज ने अपने विश्लेषणात्मक इंजन को बढ़ावा देने के लिए एक व्याख्यान देने के लिए इटली की यात्रा की।

दर्शकों में कैप्टन लुइगी मेनाब्रिया नाम का एक सैन्य इंजीनियर था, जिसे इस प्रकार मशीन का वर्णन करने वाले 1842 के पेपर का निर्माण करने के लिए बैबेज के साथ सहयोग करने के लिए प्रेरित किया गया था।

हालाँकि वह इतालवी था, मेनाब्रिया ने अपना पेपर फ्रेंच में प्रकाशित किया ...

... और यह एडा लवलेस थी जिसने तब मेनाब्रिया के पेपर का अनुवाद किया था अग्रेजी में.

बैबेज के आग्रह पर, अदा ने की एक श्रृंखला भी जोड़ी अनुवादक द्वारा नोट्स, जो न केवल मेनाब्रिया की मूल रिपोर्ट से दोगुने से अधिक लंबी थी, बल्कि अधिक व्यावहारिक भी थी, जिसे अब हम एक सामान्य-उद्देश्य वाले कंप्यूटर कहते हैं, की कई महत्वपूर्ण विशेषताओं की व्याख्या करते हैं।

वाल्टर इसाकसन, अपनी उत्कृष्ट पठनीय पुस्तक में द इनोवेटर्स, 2014 में प्रकाशित, वर्णन करता है कि कैसे Ada "चार अवधारणाओं की खोज की जो एक सदी बाद में ऐतिहासिक प्रतिध्वनि होगी जब कंप्यूटर का जन्म हुआ":

  • एडा ने माना कि विश्लेषणात्मक इंजन, अंतर इंजन के विपरीत, वास्तव में एक सामान्य-उद्देश्य वाला उपकरण था, क्योंकि इसे न केवल एक काम करने के लिए प्रोग्राम किया जा सकता है, बल्कि, और तुलनात्मक रूप से आसानी से, कुछ पूरी तरह से अलग कार्य करने के लिए पुन: प्रोग्राम किया जा सकता है।

अदा के अपने शब्दों में (यह एक ऐसा युग था जिसमें वैज्ञानिक साहित्य अभी भी साहित्य के संपर्क में था, शायद आज की तुलना में):

अंतर इंजन वास्तव में (जैसा कि पहले ही आंशिक रूप से समझाया जा चुका है) कुछ भी नहीं बल्कि जोड़ सकता है; और कोई भी अन्य प्रक्रिया, सरल घटाव, गुणा और भाग को छोड़कर, इसके द्वारा केवल उस सीमा तक निष्पादित की जा सकती है, जहां तक ​​संभव हो, विवेकपूर्ण गणितीय व्यवस्था और कलाकृतियों द्वारा, उन्हें जोड़ की एक श्रृंखला में कम करने के लिए। अंतर की विधि, वास्तव में, परिवर्धन की एक विधि है; और जैसा कि इसके साधनों में किसी भी अन्य गणितीय सिद्धांत की तुलना में बड़ी संख्या में परिणाम शामिल हैं, इसे बहुत ही उचित रूप से चुना गया था, जिस पर एक जोड़ने वाली मशीन का निर्माण किया गया था, ताकि ऐसी मशीन की शक्तियों को दिया जा सके। व्यापक संभव सीमा। विश्लेषणात्मक इंजन, इसके विपरीत, समान सुविधा के साथ या तो जोड़, घटा, गुणा या भाग कर सकता है; और इन चार कार्यों में से प्रत्येक को अन्य तीन में से किसी की सहायता के बिना सीधे तरीके से निष्पादित करता है। यह एक तथ्य सब कुछ बताता है; और उदाहरण के लिए, यह इंगित करना शायद ही आवश्यक है, जबकि अंतर इंजन केवल सारणीबद्ध कर सकता है, और विकसित करने में असमर्थ है, विश्लेषणात्मक इंजन या तो सारणीबद्ध या विकसित हो सकता है।

  • एडा ने महसूस किया कि विश्लेषणात्मक इंजन संख्याओं के साथ एन्कोडिंग और कंप्यूटिंग तक ही सीमित नहीं था। हालांकि डिजिटल, और संख्यात्मक गणना करने की क्षमता के आधार पर, ये डिजिटल ऑपरेशन, उन्होंने समझाया, सैद्धांतिक रूप से तार्किक प्रस्तावों का प्रतिनिधित्व कर सकते हैं (जैसा कि हम आज में मानते हैं if ... then ... else ... end if बयान), संगीत नोट्स, और इसी तरह।

जैसा कि अदा ने कहा:

[विश्लेषणात्मक इंजन] संख्या के अलावा अन्य चीजों पर कार्य कर सकता है, ऐसी वस्तुएं पाई जाती हैं जिनके पारस्परिक मौलिक संबंध संचालन के अमूर्त विज्ञान द्वारा व्यक्त किए जा सकते हैं, और जो ऑपरेटिंग नोटेशन और तंत्र की क्रिया के अनुकूलन के लिए भी अतिसंवेदनशील होना चाहिए। इंजन। उदाहरण के लिए, मान लीजिए, कि सामंजस्य और संगीत रचना के विज्ञान में पिच की गई ध्वनियों के मूलभूत संबंध इस तरह की अभिव्यक्ति और अनुकूलन के लिए अतिसंवेदनशील थे, इंजन किसी भी जटिलता या सीमा के संगीत के विस्तृत और वैज्ञानिक टुकड़े बना सकता है। विश्लेषणात्मक इंजन संचालन के विज्ञान का एक अवतार है, जिसका निर्माण उन कार्यों के विषय के रूप में अमूर्त संख्या के अजीबोगरीब संदर्भ में किया गया है।

  • Ada जिसे अब हम प्रोग्राम कहते हैं, के कुछ हिस्सों का पुन: उपयोग करने की अवधारणा के साथ आया था। इस अर्थ में, उसके बारे में कहा जा सकता है कि उसने सबरूटीन की अवधारणा का आविष्कार किया था, जिसमें रिकर्सिव सबरूटीन्स (ऐसे कार्य जो समान उप-गणनाओं की एक श्रृंखला में गणना को तोड़कर समाधान को सरल बनाते हैं, और फिर खुद को बुलाते हैं)।
  • एडा ने सबसे पहले "क्या मशीनें सोच सकती हैं?" प्रश्न को उपयोगी रूप से संबोधित किया। यह एक ऐसा मुद्दा है जिसने हमें तब से चिंतित किया है।

फ्रेंकस्टीन कनेक्शन

अदा के पिता (हालांकि वह उनसे कभी नहीं मिलीं) कुख्यात कवि लॉर्ड बायरन थे, जिन्होंने यादगार रूप से स्विट्जरलैंड में अपनी साहित्यिक चुम्स पर्सी और मैरी शेली के साथ डरावनी कहानियाँ लिखते हुए एक बरसात की छुट्टी बिताई थी।

इस मैत्रीपूर्ण लेखन प्रतियोगिता में बायरन और पर्सी शेली के प्रयासों को आज पूरी तरह भुला दिया गया है, लेकिन मैरी शेली का मौलिक उपन्यास फ्रेंकस्टीन; या, द मॉडर्न प्रोमेथियस (1818 में प्रकाशित) आज भी लोकप्रिय और सम्मानित है।

फ्रेंकस्टीन कहानी ने प्रसिद्ध रूप से नैतिक दुविधाओं का पता लगाया, जिसे आज हम कृत्रिम बुद्धिमत्ता के रूप में संदर्भित कर सकते हैं। (फ्रेंकस्टीन, मत भूलो, वह वैज्ञानिक था जिसने प्रयोग किया था, न कि एआई जो परियोजना से निकला था।)

हालांकि, एडा अपने पिता के मित्र की एनालिटिकल इंजन के बारे में या वास्तव में सामान्य रूप से कंप्यूटर के बारे में डायस्टोपियन चिंताओं को साझा नहीं करती थी।

उसने अपने अंतिम खंड में राय की पेशकश की अनुवादक द्वारा नोट्स, उस:

विश्लेषणात्मक इंजन में कुछ भी उत्पन्न करने का कोई ढोंग नहीं है। यह वह सब कुछ कर सकता है जो हम जानते हैं कि इसे प्रदर्शन करने के लिए कैसे आदेश देना है। यह विश्लेषण का पालन कर सकता है; लेकिन इसमें किसी भी विश्लेषणात्मक संबंध या सच्चाई का अनुमान लगाने की कोई शक्ति नहीं है। इसका प्रांत हमें वह उपलब्ध कराने में सहायता करना है जिससे हम पहले से परिचित हैं। इसकी गणना मुख्य रूप से और मुख्य रूप से, इसके कार्यकारी संकायों के माध्यम से की जाती है; लेकिन इसके विज्ञान पर एक अन्य तरीके से अप्रत्यक्ष और पारस्परिक प्रभाव डालने की संभावना है। सत्य और विश्लेषण के सूत्रों के इतने वितरण और संयोजन में, कि वे इंजन के यांत्रिक संयोजनों के लिए सबसे आसानी से और तेजी से उत्तरदायी हो सकते हैं, उस विज्ञान में कई विषयों के संबंधों और प्रकृति को आवश्यक रूप से नई रोशनी में फेंक दिया जाता है, और अधिक गहराई से जांच की। यह इस तरह के एक आविष्कार का एक निश्चित रूप से अप्रत्यक्ष, और कुछ हद तक सट्टा परिणाम है।

ठीक 100 साल बाद, जब एलन ट्यूरिंग ने अपने स्वयं के पेपर में कृत्रिम बुद्धि के मुद्दे पर प्रसिद्ध रूप से दोबारा गौर किया कम्प्यूटिंग मशीनरी और इंटेलिजेंस, और अपना परिचय दिया अब प्रसिद्ध ट्यूरिंग टेस्ट, उन्होंने इसे डब किया लेडी लवलेस की आपत्ति.

क्या करना है?

अगली बार जब आप स्वयं को कोड लिख रहे हों जैसे…

   - एक फंकी चीज: एकरमैन फंक्शन। - गणना योग्य, लेकिन आदिम पुनरावर्ती नहीं! -- (आप इसे सादे पुराने for -- loops के साथ नहीं लिख सकते हैं, फिर भी आप सुनिश्चित हो सकते हैं कि यह समाप्त हो जाएगा, -- भले ही इसमें बहुत अधिक समय लगे।) local ack = function(m,n) if m == 0 फिर n+1 अंत लौटाएं यदि n == 0 तो वापसी ack(m-1,1) अंत वापसी ack(m-1,ack(m,n-1)) अंत

...याद रखें कि इस तरह के पुनरावर्ती सबरूटीन्स किसी ऐसे व्यक्ति की वैज्ञानिक कल्पना में शुरू हुए थे जो जानता था कि कंप्यूटर कैसा दिखना चाहिए, और यह शायद कैसा दिखेगा, लेकिन फिर भी इस तरह के किसी भी उपकरण से 100 साल पहले जीवित (और दुख की बात है कि बहुत कम उम्र में मर गया) असली के लिए उसे हैक करने के लिए अस्तित्व में था।

वास्तविक कंप्यूटरों पर हैकिंग एक बात है, लेकिन काल्पनिक कंप्यूटरों पर उद्देश्यपूर्ण तरीके से हैकिंग करना, आजकल हम केवल कल्पना कर सकते हैं।

हैप्पी एडा लवलेस डे!


समय टिकट:

से अधिक नग्न सुरक्षा