मशीन कोड में लिखे गए पहले कोडांतरक थे?


41

मैं किताब पढ़ रहा हूं द कम्प्युटिंग ऑफ कम्प्युटिंग सिस्टम्स: बिल्डिंग ए मॉडर्न कम्प्यूटर फ्रॉम फर्स्ट प्रिंसीपल्स , जिसमें बूलियन गेट्स से लेकर हाई लेवल एप्लीकेशंस (उस क्रम में) तक सभी तरह के कंप्यूटर का निर्माण शामिल है। वर्तमान परियोजना जिस पर मैं काम कर रहा हूं, वह असेंबली को मेरी पसंद की उच्च स्तरीय भाषा का उपयोग करके हैक असेंबली कोड से हैक मशीन कोड (हैक पिछले अध्याय में निर्मित हार्डवेयर प्लेटफॉर्म का नाम है) का अनुवाद करने के लिए लिख रहा है। यद्यपि हार्डवेयर सभी को एक सिम्युलेटर में बनाया गया है, मैंने यह ढोंग करने की कोशिश की है कि मैं वास्तविक स्तर पर उस बिंदु पर केवल मेरे लिए उपलब्ध उपकरणों का उपयोग करके प्रत्येक स्तर का निर्माण कर रहा हूं।

उस ने कहा, यह मुझे सोच में पड़ गया। मेरे असेम्बलर को लिखने के लिए एक उच्च स्तरीय भाषा का उपयोग करना निश्चित रूप से सुविधाजनक है, लेकिन पहले लिखे गए असेंबलर के लिए (यानी इतिहास में), क्या इसे मशीन कोड में लिखने की आवश्यकता नहीं होगी, क्योंकि यह सब उस समय अस्तित्व में है?

और एक सहसंबद्ध प्रश्न ... आज के बारे में कैसे? यदि एक ब्रांड का नया सीपीयू आर्किटेक्चर, एक नया निर्देश सेट, और एक नया असेंबली सिंटैक्स के साथ आता है, तो कोडांतरक का निर्माण कैसे किया जाएगा? मैं मान रहा हूं कि आप अभी भी असेंबली प्रोग्राम के लिए बायनेरिज़ बनाने के लिए एक मौजूदा उच्च स्तरीय भाषा का उपयोग कर सकते हैं, क्योंकि यदि आप अपने नए प्लेटफॉर्म के लिए असेंबली और मशीन दोनों भाषाओं के सिंटैक्स को जानते हैं, तो असेंबलर लिखने का कार्य वास्तव में सिर्फ एक है पाठ विश्लेषण कार्य और स्वाभाविक रूप से उस प्लेटफ़ॉर्म से संबंधित नहीं है (अर्थात उस प्लेटफ़ॉर्म की मशीन की भाषा में लिखे जाने की आवश्यकता है) ... जो कि बहुत ही कारण है कि मैं 2012 में अपने हैक असेंबलर को लिखते समय "धोखा" देने में सक्षम हूं, और कुछ preexisting का उपयोग करता हूं मुझे मदद करने के लिए उच्च स्तरीय भाषा।


17
आप हमेशा एक क्रॉस-कंपाइलर लिख सकते हैं और उपयोग कर सकते हैं कि आजकल नए हार्डवेयर के लिए एक कोड का निर्माण करें।
केरेके एसबी

@PersonalNexus इसके लिए धन्यवाद, मेरे हिस्से पर snafu का संपादन।
यानिस y

1
@YannisRizos कोई समस्या नहीं, हम में से सबसे अच्छा होता है :)
PersonalNexus

8
यह संभव है कि पहले असेंबलर को कागज के एक टुकड़े पर विधानसभा में लिखा गया हो। मशीन कोड में रूपांतरण तब भी कागज पर किया जा सकता है और एक समय में एक शब्द के साथ स्विच के साथ कुछ प्रकार के रॉम को जला दिया जाता है।
मौवीसील

मेरा पहला कंप्यूटर एक ZX81 था, जिसमें 1KB रैम था, इसलिए मेरे (सराहनीय रूप से) मशीन कोड प्रोग्राम वास्तव में हाथ से अनुवादित थे।
14:28 पर user281377

जवाबों:


36

कभी लिखे गए पहले इतिहासकार के लिए (यानी इतिहास में), क्या इसे मशीन कोड में लिखने की जरूरत नहीं होगी

जरुरी नहीं। निश्चित रूप से कोडांतरक के पहले संस्करण v0.00 को मशीन कोड में लिखा जाना चाहिए था, लेकिन यह कोडांतरक कहलाने के लिए पर्याप्त रूप से शक्तिशाली नहीं होगा। यह एक "वास्तविक" कोडांतरक की आधी विशेषताओं का भी समर्थन नहीं करेगा, लेकिन यह स्वयं के अगले संस्करण को लिखने के लिए पर्याप्त होगा। फिर आप असेंबली लैंग्वेज के सबसेट में v0.00 लिख सकते हैं, इसे v0.01 कह सकते हैं, इसे अपने असेंबलर v0.02 के अगले फीचर सेट को बनाने के लिए उपयोग कर सकते हैं, फिर v0.03 का निर्माण करने के लिए v0.02 का उपयोग करें, और इतने पर, जब तक आप v1.00 तक नहीं पहुंच जाते। परिणामस्वरूप, केवल पहला संस्करण मशीन कोड में होगा; पहला रिलीज़ किया गया संस्करण असेंबली भाषा में होगा।

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


4
क्या आपको अभी भी सभी चरण मिले हैं? मैं उन्हें देखना पसंद करूँगा, और उनकी तुलना प्रत्येक अभिभावक से करूँगा। बस आप जिस प्रक्रिया से गुज़रे हैं, उसके बारे में महसूस करने के लिए।
मार्जन वेनेमा

3
@MarjanVenema नहीं, मेरे पास अब उनके पास नहीं है - मैंने इसे 1998 में बनाया था, और 2005 तक इसका उपयोग करता रहा, जब मैंने StringTemplate की खोज की । मैं अगले चरण के साथ अगले ओवरराइट कर रहा था क्योंकि मैं प्रारंभिक प्रयोग करने योग्य संस्करण की ओर काम कर रहा था। मेरे विकास चक्र में नए सामान को कोडित करना शामिल था, एक अलग निर्देशिका में खुद को बनाने के लिए कोड जनरेटर चलाना diff, वर्तमान कोड जनरेटर के खिलाफ चल रहा था यह देखने के लिए कि कोड का उत्पन्न भाग अप्रत्याशित तरीके से नहीं बदला, कोड को जगह में बदल दिया, और चक्र खत्म करने के लिए इसे एक बार फिर से चलाएं।
डैस्ब्लिंकनेलाइट

अफ़सोस लेकिन समझने योग्य :) आपने जो किया (और लिंक के लिए) वर्णन करने के लिए धन्यवाद।
मार्जन वेनेमा

3
मुझे लगता है कि आपको कुछ प्रकार की बूटस्ट्रैपिंग श्रृंखला रखने की आवश्यकता होगी। मशीन कोड => सीमित ASM => पूर्ण ASM => कुछ भाषा। अन्यथा, यदि आप अपने बाइनरी को किसी भी चरण में ढीले कर देते हैं तो जिस तरह से आप खराब हो जाएंगे। (वैकल्पिक रूप से आपके पास सी क्रॉस-संकलित संस्करण हो सकता है, क्योंकि वास्तविक रूप से सभी सी संकलक बायनेरिज़ एक ही बार में गायब नहीं होंगे।)
edA-qa mort-ora-y

3
केवल "सुविधाएँ" जिसे एक कोडांतरक को "वास्तविक" कोडांतरक होना आवश्यक है, इकट्ठा करना है।
माइल राउत

23

विकिपीडिया के अनुसार, पहली बार असेंबलर / असेंबली भाषा को आईबीएन 701 के लिए नथानिएल रोचेस्टर द्वारा लागू किया गया था । (तारीखें विकिपीडिया लेख से थोड़ी अनिश्चित हैं। इसमें कहा गया है कि रोचेस्टर 1948 में आईबीएम में शामिल हो गया था, लेकिन एक अन्य विकिपीडिया पृष्ठ में कहा गया है कि 701 को 1952 में सार्वजनिक रूप से घोषित किया गया था। और यह आईबीएम पृष्ठ बताता है कि "[a] ctual डिजाइन फरवरी से शुरू हुआ था। 1, 1951 और एक साल बाद पूरा हुआ"

हालांकि डेविड सॉलोमन राज्यों के "असेंबलर्स एंड लोडर्स" (पेज 7 पर) कहते हैं कि EDSAC में एक असेंबलर भी था:

"पहले संग्रहीत प्रोग्राम कंप्यूटरों में से एक 1949 में कैम्ब्रिज यूनिवर्सिटी में मौरिस विल्क्स और डब्ल्यू। रेनविक द्वारा विकसित किया गया ईडीएसएसी (इलेक्ट्रॉनिक डिले स्टोरेज ऑटोमैटिक कैलकुलेटर) था। इसके पहले दिनों से ही ईडीएसएसी में एक असेंबलर था, जिसे शुरुआती ऑर्डर कहा जाता था। इसे लागू किया गया था। रोटरी टेलीफोन चयनकर्ताओं के एक सेट से पढ़ी जाने वाली केवल मेमोरी में, और यह प्रतीकात्मक निर्देशों को स्वीकार करता है। प्रत्येक निर्देश में एक अक्षर mnemonic, एक दशमलव पता और एक अक्षर वाला तीसरा फ़ील्ड शामिल होता है। तीसरा फ़ील्ड 12 में से एक का कारण बनता है। विधानसभा समय में पते पर प्रोग्रामर द्वारा निर्धारित किए गए स्थिरांक। " (संदर्भ छोड़ा गया ... मूल देखें)

यह मानते हुए कि हम "प्रारंभिक आदेश" पूर्वता लेते हैं, हमारे पास स्पष्ट सबूत हैं कि मशीन कोड में पहला कोडांतरक लागू किया गया था

यह पैटर्न (मशीन कोड में प्रारंभिक असेंबलर्स लिखना) 1950 के दशक में आदर्श रूप में अच्छा रहा होगा। हालाँकि, विकिपीडिया के अनुसार , "[a] ssemblers पहले बूटस्ट्रैप के लिए भाषा के उपकरण थे"। इस खंड को भी देखें जो बताता है कि कैसे एक प्राइमर्डियल असेंबलर लिखित मशीन कोड का उपयोग एक अधिक उन्नत कोडांतरक को बूटस्ट्रैप करने के लिए किया गया था जिसे असेंबली भाषा में कोड किया गया था।

इन दिनों कोडांतरक और संकलक उच्च स्तरीय भाषाओं में लिखे गए हैं, और एक नई मशीन वास्तुकला के लिए एक कोडांतरक या संकलक आमतौर पर एक अलग वास्तुकला और क्रॉस-संकलित पर विकसित किया जाता है।

(एफडब्ल्यूआईडब्ल्यू - मशीन कोड में गैर-तुच्छ कार्यक्रमों को लिखना और डिबग करना एक अत्यधिक श्रमसाध्य प्रक्रिया है। मशीन कोड में एक कोडांतरक को विकसित करने वाला कोई व्यक्ति जितनी जल्दी हो सके कोडांतरक में लिखे गए कोडांतरक को बूटस्ट्रैप देगा।)

बूटस्ट्रैपिंग कंपाइलर और असेंबलर पर यह विकिपीडिया पृष्ठ एक पढ़ने लायक है ... यदि यह सब आपको चकित कर रहा है।


वास्तव में केवल अनुमान लगाने के बजाय जवाब देने के लिए अपवित्र। यह वास्तव में अच्छा पठन है!
जैक्सबी

14

मुझे लगता है कि पहले कोडर मशीन कोड में लिखे गए थे, क्योंकि जैसा कि आप कहते हैं, तब और कुछ भी वापस उपलब्ध नहीं था।

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

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

इसलिए, आज यह भी संभव है (कम से कम सिद्धांत में) एक बिल्कुल नया आर्किटेक्चर बनाने के लिए और इसमें उच्च स्तर की भाषा के कंपाइलर हैं जो मूल रूप से उस पर चल रहे हैं (क्रॉस-कंपाइलर का उपयोग करके अन्य आर्किटेक्चर पर संकलित) इससे पहले कि आपके पास उस आर्किटेक्चर के लिए एक असेंबलर भी हो।


12

पहले "असेंबली" को कागज पर लिखा जाता था और फिर पंच कार्ड पर मैन्युअल रूप से "संकलित" किया जाता था।

मेरे भव्य पिता ZRA1 के साथ काम कर रहे थे (क्षमा करें, पृष्ठ केवल जर्मन में मौजूद है, लेकिन Google अनुवाद उस बिंदु पर ठीक है जहां आप वास्तव में सबसे महत्वपूर्ण तथ्य उठा सकते हैं: D)।
मोडस ऑपरेंडी को एक तरह की असेंबली लैंग्वेज में आपके कोड को कागज पर लिखना होता था और सचिव वास्तव में पंच कार्डों को ट्रांसक्रिप्शन करते थे, फिर उन्हें ऑपरेटर को पास कर देते थे और परिणाम सुबह के बाद वापस सौंप दिया जाता था।

यह सब अनिवार्य रूप से प्रोग्रामर के पास एक कीबोर्ड के माध्यम से डेटा इनपुट करने की लक्जरी थी और इसे स्क्रीन पर देखें।


3
जब मैं विश्वविद्यालय में पढ़ रहा था, तब भी उनके पास मशीन कोड लिखने के लिए इस्तेमाल होने वाले पेपर ब्लॉक थे। आप दाईं ओर प्रोग्राम लिखते हैं, हेक्साडेसिमल के निर्देशों का अनुवाद करने के लिए बाईं ओर कॉलम हैं। और वर्तमान पते के लिए एक कॉलम। पहले असेंबलर वास्तव में मानव थे।
फ्लोरियन एफ

9

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

मुझे यह जोड़ना चाहिए कि कुछ मामलों में, मैं एक कदम आगे चला गया: मैंने एक असेंबली भाषा में अधिकांश कोड लिखा था जो मुझे उपयोग करने में सरल लगा, फिर एक छोटा कर्नेल लिखा (कम या ज्यादा जिसे हम अब एक वर्चुअल मशीन कहते हैं) लक्ष्य प्रोसेसर पर व्याख्या करने के लिए। यह घातक रूप से धीमा था (विशेष रूप से 1 मेगाहर्ट्ज, 8-बिट प्रोसेसर पर), लेकिन यह ज्यादा मायने नहीं रखता था, क्योंकि यह सामान्य रूप से केवल एक बार (या अधिकतम, कुछ समय) चलता था।


8

आपको असेंबली कोड को मशीन कोड में इकट्ठा करने के लिए एक कोडांतरक की आवश्यकता नहीं है। जिस तरह आपको असेंबली लैंग्वेज कोड लिखने के लिए किसी एडिटर की जरूरत नहीं होती है।

एक ऐतिहासिक परिप्रेक्ष्य

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

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

निजी अनुभव

मेरे पास पहला कंप्यूटर एक Sinclair ZX81 (US में Timex 1000) था। मैनुअल के पीछे Z80 असेंबली लैंग्वेज को मशीन कोड में ट्रांसलेट करने के लिए आवश्यक सभी जानकारी थी (यहां तक कि Z80 के पास सभी अजीब इंडेक्स मोड opcodes को शामिल करते हुए)।

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

यदि यह काम नहीं करता है, तो मैं अपने हाथ की विधानसभा की दोहरी जांच करूंगा और यदि कोई अनुवाद गलत था तो मैं टेप से लोड बाइट्स को फिर से सहेजने से पहले पैच कर दूंगा और फिर से कार्यक्रम को चलाने की कोशिश करूंगा।

अनुभव से, मैं आपको बता सकता हूं कि यदि मशीन कोड की तुलना में विधानसभा भाषा में लिखा गया है, तो आपके कोड को डिबग करना बहुत आसान है - इसलिए असंतुष्टों की लोकप्रियता। यहां तक ​​कि अगर आपके पास एक कोडांतरक नहीं है, तो हाथ कोडिंग मशीन कोड को सीधे लिखने की कोशिश करने की तुलना में कम त्रुटि है, हालांकि मुझे लगता है कि मेल जैसा एक वास्तविक प्रोग्रामर असहमत हो सकता है। * 8 ')


5

तब या अब कोई अंतर नहीं है। आप एक नई प्रोग्रामिंग भाषा का आविष्कार करना चाहते हैं, आप पहले संकलक बनाने के लिए आज उपलब्ध भाषाओं में से एक का चयन करते हैं। समय की कुछ अवधि में, यदि यह परियोजना का लक्ष्य है, तो आप उस भाषा में एक संकलक बनाते हैं और फिर यह स्वयं की मेजबानी कर सकता है।

यदि आपके पास पहले या अगले नए निर्देश सेट में आपके उपयोगकर्ता इंटरफ़ेस के रूप में पेंसिल और कागज और कुछ स्विच या पंच कार्ड थे, तो आप एक या सभी उपलब्ध वस्तुओं का उपयोग करते थे। आप बहुत अच्छी तरह से एक असेंबली भाषा लिख ​​सकते थे, कागज पर, और फिर एक कोडांतरक का उपयोग किया, आप, इसे मशीन कोड में परिवर्तित करने के लिए, शायद अष्टक में, फिर कुछ बिंदु पर जो मशीन में इंटरफ़ेस में चला गया।

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

पहली कंप्यूटिंग मशीनें सामान्य प्रयोजन वाली मशीनें नहीं थीं जिनका उपयोग आप कोडांतरक और संकलक बनाने में कर सकते थे। आपने उन्हें अगले एलु के इनपुट के आउटपुट के बीच कुछ तारों को स्थानांतरित करके प्रोग्राम किया। आखिरकार आपके पास एक सामान्य उद्देश्य प्रोसेसर था जैसे कि आप असेंबली में एक असेंबलर लिख सकते हैं, इसे हाथ से इकट्ठा कर सकते हैं, इसे मशीन कोड के रूप में फीड कर सकते हैं, फिर इसका उपयोग इबेडिक, एससीआई, इत्यादि को पार्स करने के लिए कर सकते हैं और फिर स्वयं-होस्ट कर सकते हैं। बाइनरी को कुछ मीडिया में स्टोर करें जिसे आप बाद में पढ़ सकते हैं / लोड करने के लिए हैंड फीड मशीन कोड पर फ़्लिपिंग स्विच नहीं रख सकते हैं।

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


1
"असेंबलर, आप" टिप्पणी के लिए +1। किसी शब्द की एक परिभाषा से जुड़ना आसान है (यानी असेंबलर = सॉफ्टवेयर) लेकिन आपकी टिप्पणी वास्तव में स्पष्ट परिप्रेक्ष्य में डालती है ... कि "असेंबली प्रक्रिया" सिर्फ एक प्रणाली / दिनचर्या है, जिसे आसानी से पूरा किया जा सकता है। एक मानव कोडक।
११

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

4

ब्रूक के कंप्यूटर चिड़ियाघर में एक या दो उदाहरण हैं जहां उन्होंने कहा कि "निमोनिक्स हमारे आविष्कार हैं, डिजाइनर ने केवल संख्यात्मक ओपकोड या चरित्र जिसका कोड ओपकोड था" का उपयोग किया, इसलिए वहां ऐसी मशीनें जहां के लिए एक भी नहीं था सभा की भाषा।

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

सीधे मशीन कोड लिखने और मेमोरी डंप से प्रोग्राम पढ़ने की कठिनाई मशीन भाषा पर काफी निर्भर है, उनमें से कुछ अपेक्षाकृत आसान हैं (सबसे कठिन हिस्सा पतों को ट्रैक कर रहा है), x86 बदतर में से एक है।


Pdp-11 में knobs की विलासिता भी नहीं थी। आप 8 टॉगल स्विच पर बाइनरी पते दर्ज करके भंडारण को बदल सकते हैं, और 16 टॉगल स्विच पर मूल्य तब बटन दबाएं। मैं वास्तव में किसी को इस तरह एक पाशन कार्यक्रम तय देखा!
जेम्स एंडरसन

2

मैंने 1975 में एक कंप्यूटर बनाया था। यह अपने समकालीन अल्टेयर पर बहुत उन्नत था, क्योंकि इसमें 'मॉनीटर रोम' था, जो मुझे हेक्स में मशीन कोड लिखकर और वीडियो मॉनीटर पर इस कोड को देखने के द्वारा प्रोग्राम में प्रवेश करने देता था, जहां प्रत्येक मशीन निर्देश को अलग-अलग करने के लिए स्विच की एक पंक्ति का उपयोग करके समय पर थोड़ा सा दर्ज किया जाना था।

तो हाँ, कंप्यूटर के शुरुआती दिनों में और फिर व्यक्तिगत कंप्यूटरों के शुरुआती दिनों में लोगों ने मशीन कोड में एप्लिकेशन लिखे।


2

एक किस्सा:

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

कोई शक नहीं, असली असेंबलरों को पहले माइक्रो-एसेम्बलर का उपयोग करके लिखा गया था, या कुछ अन्य बिल्कुल पूर्ण वातावरण नहीं थे।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.