आधुनिक कंप्यूटिंग अक्सर सहज होती है। आप एक कैलकुलेटर उठाते हैं या अपने फोन पर कैलकुलेटर ऐप खोलते हैं, और आप कुछ ही सेकंड में अपने रास्ते पर होते हैं। लेकिन यहां तक पहुंचने में इंसानों को उस समय से कई सदियां लग गईं जब उन्होंने पहली बार कंप्यूटिंग को गति देने की कोशिश की थी। इस इतिहास के एक विशेष रूप से महत्वपूर्ण अंश में अंग्रेजी गणितज्ञ चार्ल्स बैबेज शामिल हैं, जिन्होंने सरल मशीनों की गति का उपयोग करके गणनाओं को गति देने का एक तरीका खोजा, जिससे आधुनिक कंप्यूटर के पहले पूर्वजों का निर्माण हुआ।
बैबेज को किस बात ने प्रेरित किया?
यदि आपको 19वीं शताब्दी की शुरुआत में कुछ गणना करनी होती थी, तो आपको इसे पूरी तरह से हाथ से करना पड़ता था। संपूर्ण सरकारें, नाविक, खगोलशास्त्री, इंजीनियर – सभी क्लर्कों की टीमों द्वारा निर्मित जटिल गणितीय तालिकाओं पर निर्भर थे, जिन्हें उस समय ‘कंप्यूटर’ के रूप में जाना जाता था, जो धीरे-धीरे काम करते थे और अक्सर गलतियाँ करते थे।
1821 में, बैबेज निराश हो गए और कथित तौर पर उन्होंने कहा कि उनकी इच्छा है कि गणना “भाप द्वारा” की जा सके। बैबेज ने अंतर इंजन विकसित किया, एक बड़ा यांत्रिक कैलकुलेटर जिसे परिमित अंतर नामक विधि का उपयोग करके गणितीय तालिकाओं की गणना करने के लिए डिज़ाइन किया गया था।
मशीन में पीतल के पहियों के स्तंभ शामिल थे, जिनमें से प्रत्येक पर 0 से 9 तक अंक अंकित थे। हैंड क्रैंक और गियर का उपयोग करके घुमाए जाने पर पहियों में भौतिक रूप से मूल्य जुड़ते थे। मशीन ने गलतियों की संख्या को काफी हद तक कम कर दिया। इस प्रकार अंतर इंजन एक विशेष कैलकुलेटर था जो समस्याओं के एक वर्ग में तेज़ और कुशल था।
गणितीय तालिकाएँ क्या थीं?
गणितीय तालिका संख्याओं की एक पूर्व-गणना की गई तालिका थी जिसे विशेषज्ञ अपने अभ्यास में बार-बार संदर्भित कर सकते थे। उदाहरण के लिए, डिजिटल कैलकुलेटर से पहले, एक इंजीनियर अक्सर लघुगणक का उपयोग करके गुणन को एक अतिरिक्त समस्या में बदल देता था। तो 247 x 83 को दोनों संख्याओं के लघुगणक को देखकर, उन्हें जोड़कर, फिर वापस व्युत्क्रम मान में परिवर्तित करके हल किया जा सकता है।
इसी तरह, तालिकाओं ने त्रिकोणमितीय कार्यों (वास्तुकला और सिविल इंजीनियरिंग में प्रयुक्त), खगोलीय तालिकाओं (आकाशीय पिंडों की स्थिति की भविष्यवाणी करने के लिए), बीमांकिक तालिकाओं (बीमा और कराधान के लिए), और बहुपद तालिकाओं (विज्ञान में प्रयुक्त जटिल कार्यों के मूल्य) के मूल्य भी प्रदान किए।
तालिकाएँ अक्सर नियमित अंतराल पर सामान्य कार्यों के मूल्यों का बार-बार मूल्यांकन करती हैं। उदाहरण के लिए, यदि f(x) = x3तो तालिकाएँ x = 1, 2, 3, 4, …, अर्थात 1, 8, 27, 64, … पर f(x) का मान प्रदान करेंगी। इसी प्रकार, एक तालिका डिग्री के प्रत्येक दसवें हिस्से के लिए त्रिकोणमितीय साइन फ़ंक्शन के मान दिखाएगी: 10°, 10.1°, 10.2°, … 0.1736, 0.1754, 0.1771, … के अनुरूप।
गणना के दौरान कंप्यूटर द्वारा ग़लतियाँ करने के अलावा, प्रतिलिपि बनाने और टाइपसेटिंग के दौरान भी अशुद्धियाँ सामने आती हैं। और एक भी गलती विनाशकारी हो सकती है.
परिमित भिन्नता की विधि क्या है?
परिमित अंतर की विधि इनमें से कई परिचालनों को सरल समस्याओं में सरल बनाती है, जिन्हें अंतर इंजन तब स्वचालित कर सकता है।
मान लें कि किसी तालिका को फ़ंक्शन f(x) = x का मूल्यांकन करने की आवश्यकता है2. तो x = 1, 2, 3, …, f(x) = 1, 4, 9, … के लिए। अब क्रमिक मानों के बीच अंतर देखें: 3 (4 – 1), 5 (9 – 4), 7 (16 – 9), 9 (25 – 16), …. फिर दूसरे अंतर को देखें, यानी अंतर के बीच का अंतर: 2 (5 – 3), 2 (7 – 5), 2 (9 – 7), ….
दूसरा अंतर एक स्थिरांक है जिसका अर्थ है कि केवल जोड़ का उपयोग करके पूरी तालिका तैयार की जा सकती है।
अंतर इंजन पहियों के अलग-अलग स्तंभों में लोड किए गए तीन नंबरों के साथ शुरू हुआ: प्रारंभिक मूल्य, 1; प्रथम प्रथम-अंतर, 3; और दूसरा अंतर, 2. जब आप पहियों को क्रैंक करते हैं, तो वे पहले अंतर में दूसरा अंतर जोड़ते हैं: 3 + 2 = 5 – और फिर वर्तमान मूल्य में अद्यतन पहला अंतर: 1 + 5 = 6।
चरण 1 के अंत में:
-
अद्यतन पहला अंतर: 5
-
अद्यतन मूल्य: 4
और चरण 2 के अंत में:
-
अद्यतन पहला अंतर: 5 + 2 = 7
-
अद्यतन मान: 4 + 5 = 9
और चरण 3 के अंत में:
-
अद्यतन पहला अंतर: 7 + 2 = 9
-
अद्यतन मान: 9 + 7 = 16
और इसी तरह। इस प्रकार अंतर इंजन का उत्पादन हुआ: 1, 4, 9, 16, 25,…।
पहिये ने यह सब कैसे किया?
दशमलव संख्या को दर्शाने वाले पहियों के एक ऊर्ध्वाधर स्तंभ की कल्पना करें: शीर्ष पहिया हजारों को प्रदर्शित करता है, दूसरा पहिया सैकड़ों को, तीसरा पहिया दहाई को और चौथा पहिया इकाई को प्रदर्शित करता है। प्रत्येक पहिये के किनारे पर 0-9 अंक अंकित हैं।
मान लीजिए कि मशीन ने संख्या 247 संग्रहीत की है। पहियों को इस प्रकार रखा जाएगा कि हजारों पहिया 0 को इंगित करें, सैकड़ों पहिया 2 को इंगित करें, दसियों पहिया 4 को इंगित करें, और एक पहिया 7 को इंगित करें।
संख्याओं को जोड़ने के लिए, मशीन भौतिक रूप से पहियों को घुमाएगी। मान लीजिए कि आप ऑपरेशन 247 + 5 करना चाहते हैं। जब गियर को क्रैंक किया जाता है, तो वे एक पहिये को पांच स्थितियों से आगे की ओर घुमाएंगे: 7, 8, 9, 0, 1, 2। चूंकि 9 से 0 तक जाने का मतलब दशमलव सीमा को पार करना है, विश्लेषणात्मक इंजन को 1 को ले जाना होता है – जो वह एक विशेष तंत्र का उपयोग करके करता है जो दसवें पहिये को एक कदम आगे बढ़ाता है: 4 से 5 तक।
तो मशीन 252 प्रदर्शित करती है।
डिफरेंस इंजन का क्या हुआ?
बैबेज ने अपने डिफरेंस इंजन नंबर 1 के पूर्ण-स्तरीय संस्करण का निर्माण कभी पूरा नहीं किया। 1991 में, लंदन में विज्ञान संग्रहालय ने 1846-1849 में बैबेज के चित्रों के आधार पर ‘डिफरेंस इंजन नंबर 2’ नामक एक मशीन बनाई। इसका वजन पांच टन था, इसमें 8,000 हिस्से थे और यह सही ढंग से काम करता था, जिससे बैबेज की अंतर्ज्ञान की पुष्टि होती थी।
जैसा कि कहा गया है, डिफरेंस इंजन नंबर 1 पर काम रुकने के कारण प्रासंगिक हैं। सबसे महत्वपूर्ण बात यह है कि क्लेमेंट के मुआवज़े को लेकर बैबेज का अपने मुख्य अभियंता जोसेफ क्लेमेंट से मतभेद हो गया और क्लेमेंट के पास उपकरण और चित्र का स्वामित्व था। सरकार ने 1842 में फंडिंग में भी कटौती कर दी, जब बैबेज ने GBP 17,000 से अधिक खर्च कर दिया था, क्योंकि उसका मानना था कि उसके खर्चों का कोई अंत नहीं था और क्योंकि, 1834 के बाद से, बैबेज विश्लेषणात्मक इंजन नामक एक नए उपकरण पर अधिक ध्यान दे रहा था।
विश्लेषणात्मक इंजन क्या है?
इसकी कल्पना एक सामान्य प्रयोजन प्रोग्राम योग्य मशीन के रूप में की गई थी – जो आधुनिक कंप्यूटर का प्रत्यक्ष पूर्वज है। इसके चार घटक थे: मिल (आधुनिक सीपीयू की तरह), जो जोड़ और घटाव जैसे बुनियादी गणितीय संचालन करता था; स्टोर (मेमोरी), पहियों पर प्रत्येक 50 अंक लंबे 1,000 नंबर रखने में सक्षम; रीडर (इनपुट), जिसमें कपड़ा उद्योग के जैक्वार्ड करघे में उपयोग किए जाने वाले छिद्रित कार्ड शामिल हैं; और प्रिंटर (आउटपुट), धातु प्लेटों पर परिणामों को स्वचालित रूप से मुद्रित करने के लिए एक तंत्र।
विश्लेषणात्मक इंजन न केवल अपने समय के लिए उन्नत था: यह व्यावहारिक रूप से क्रांतिकारी था क्योंकि यह (i) प्रोग्राम करने योग्य था – यह निर्देश प्राप्त कर सकता था और विभिन्न समस्याओं को हल कर सकता था – और (ii) इसकी सशर्त शाखा थी, जिसका अर्थ है कि यह “अगर बी करो तो ए करो” जैसे तार्किक निर्णय ले सकता था। यह विशेष चरणों को भी दोहरा सकता है।
छिद्रित कार्डों ने क्या किया?
जैक्वार्ड करघे में, उपयोगकर्ता बुनाई के पैटर्न को नियंत्रित करने के लिए कार्डों में छेद करते थे। उदाहरण के लिए, छेदों का एक विशिष्ट पैटर्न जिसे ऊपर या नीचे करने के लिए धागे बनाए जाते हैं। इसलिए यदि बैबेज (7 + 5) x 3 की गणना करना चाहता था, तो वह संख्याओं को स्टोर में लोड करता था – जैसे अंतर इंजन में – और फिर इन निर्देशों के साथ मशीन में कार्ड रखता था:
-
7 को भंडारण स्थान ए में रखें
-
5 को भंडारण स्थान बी में रखें
-
3 को भंडारण स्थान C में रखें
फिर, छिद्रित कार्डों का एक और क्रम मिल को निर्देश देगा:
-
ए और बी जोड़ें
-
परिणाम को डी में संग्रहित करें
फिर मशीन गणना करेगी:
7 + 5 = 12
अब डी = 12.
फिर भी छिद्रित कार्डों का एक और सेट कह सकता है:
-
D को C से गुणा करें
-
परिणाम को ई में संग्रहित करें
तो विश्लेषणात्मक इंजन गणना करेगा:
12 x 3 = 36
अंतिम कार्ड पर ‘प्रिंट ई’ लिखा होगा, इसलिए इंजन इस पर मोहर लगाएगा:
36
एक ही विश्लेषणात्मक इंजन एक अलग समस्या का समाधान कर सकता है; बैबेज को बस पंच कार्डों का क्रम बदलना था।
कार्डों के अधिक उन्नत अनुक्रम विश्लेषणात्मक इंजन को कुछ ऑपरेशन को कई बार दोहराने (लूपिंग) और सशर्त ब्रांचिंग निष्पादित करने का निर्देश भी दे सकते हैं। उदाहरण के लिए, बार-बार घटाव द्वारा विभाजन करने के लिए, विश्लेषणात्मक इंजन को संख्या से भाजक को घटाना होगा, और यदि परिणाम सकारात्मक है तो उस ऑपरेशन को दोहराना होगा या परिणाम नकारात्मक होने पर रुकना होगा।
(एक तरफ: जर्मन-अमेरिकी आविष्कारक हरमन होलेरिथ ने भी 1890 के दशक में अमेरिकी जनगणना को स्वचालित करने के लिए पंच कार्ड का उपयोग किया था और उस कंपनी की स्थापना की थी जो आईबीएम बन गई थी। हालांकि, इसका कोई सबूत नहीं है कि वह बैबेज की पसंद से प्रेरित थे।)
विश्लेषणात्मक इंजन का क्या हुआ?
यह सब कहा गया, बैबेज एक पूर्ण-स्तरीय विश्लेषणात्मक इंजन भी पूरा नहीं कर सका। डिफरेंस इंजन नंबर 1 के साथ उनके अनुभवों के कारण, विश्लेषणात्मक इंजन ने कभी भी किसी गंभीर फंडिंग को आकर्षित नहीं किया। वास्तव में, बैबेज ने अपना शेष जीवन अपने डिजाइनों के लिए किसी भी राज्य के समर्थन के बिना बिताया।
हालाँकि, उनके प्रयास व्यर्थ नहीं थे। उनके सहयोगी एडा लवलेस ने एक विचार को पहचाना जो उनके अधिकांश समकालीनों को याद आया: यदि कोई मशीन संख्याओं में हेरफेर कर सकती है, और यदि वे संख्याएं अक्षरों, संगीत नोट्स या छवियों जैसे अन्य डेटा-प्रकारों का प्रतिनिधित्व कर सकती हैं, तो विश्लेषणात्मक इंजन प्रभावी रूप से एक सार्वभौमिक प्रतीक प्रोसेसर हो सकता है। यह वैसा ही है जैसे आज Spotify संगीत को संख्याओं के रूप में प्रस्तुत करता है, फ़ोटोशॉप रंगों को संख्याओं के रूप में प्रस्तुत करता है, बड़े भाषा मॉडल शब्दों को संख्याओं के रूप में प्रस्तुत करते हैं, इत्यादि।
बैबेज के डिज़ाइन आधुनिक कंप्यूटर के पूर्वज थे उसी तरह जैसे पहली कोशिकाएँ आधुनिक मनुष्यों के पूर्वज हैं: वे महत्वपूर्ण आधार थे जो साबित करते थे कि कुछ संभव है लेकिन उनके बीच महत्वपूर्ण अंतर भी हैं। बैबेज ने दुनिया को यह एहसास दिलाने में मदद की कि मशीनें एक ही हार्डवेयर का उपयोग करके विभिन्न गणितीय कार्य कर सकती हैं।