প্রথম সমাবেশকারীরা কি মেশিন কোডে লিখিত ছিল?


41

আমি কম্পিউটারের সিস্টেমসমূহের উপাদানগুলি: ফার্স্ট প্রিন্সিপাল থেকে বিল্ডিং এ মডার্ন কম্পিউটারের বইটি পড়ছি , এতে বুলিয়ান গেটগুলি থেকে উচ্চতর স্তরের অ্যাপ্লিকেশনগুলিতে সমস্ত পদ্ধতিতে (সেই ক্রমে) একটি কম্পিউটার তৈরির প্রকল্প রয়েছে। আমি যে বর্তমান প্রকল্পে কাজ করছি তা হ্যাক ম্যাসেজিং কোড থেকে হ্যাক মেশিন কোডে অনুবাদ করার জন্য আমার পছন্দের একটি উচ্চ স্তরের ভাষা ব্যবহার করে একটি এসেম্বলার লিখছে (হ্যাক আগের অধ্যায়গুলিতে নির্মিত হার্ডওয়্যার প্ল্যাটফর্মের নাম)। যদিও হার্ডওয়্যারটি সমস্ত একটি সিমুলেটারে তৈরি করা হয়েছে, আমি ভান করার চেষ্টা করেছি যে আমি সত্যিকারের প্রক্রিয়াটিতে সেই মুহুর্তে কেবলমাত্র আমার জন্য উপলব্ধ সরঞ্জামগুলি ব্যবহার করে প্রতিটি স্তর তৈরি করছি really

বলেছিল, এটা আমার চিন্তাভাবনা পেয়েছে। আমার এসেম্বলারের লেখার জন্য একটি উচ্চ স্তরের ভাষা ব্যবহার করা অবশ্যই সুবিধাজনক, তবে প্রথম লেখা একত্রিতকারের জন্য (যেমন ইতিহাসে), এটি কি মেশিন কোডে লেখার প্রয়োজন হবে না, যেহেতু তখনকার সমস্ত কিছুই বিদ্যমান ছিল?

এবং একটি পরস্পর সম্পর্কিত প্রশ্ন ... কিভাবে আজ? যদি কোনও নতুন সিপিইউ আর্কিটেকচার আসে, একেবারে নতুন নির্দেশ সেট এবং একটি ব্র্যান্ড নিউ এসেম্বলি সিনট্যাক্স সহ, এসেম্বলার কীভাবে নির্মিত হবে? আমি ধরে নিচ্ছি আপনি এসেম্বলারের প্রোগ্রামের জন্য বাইনারি তৈরি করতে এখনও একটি বিদ্যমান উচ্চ স্তরের ভাষা ব্যবহার করতে পারেন, যেহেতু আপনি যদি আপনার নতুন প্ল্যাটফর্মের জন্য অ্যাসেম্বলি এবং মেশিন ভাষা উভয়ের বাক্য গঠন জানেন, তবে এসেম্বলারের লেখার কাজটি কেবল একটি মাত্র পাঠ্য বিশ্লেষণের কাজটি এবং সেই প্ল্যাটফর্মের সাথে অন্তর্নিহিতভাবে সম্পর্কিত নয় (অর্থাত্ সেই প্ল্যাটফর্মটির মেশিন ল্যাঙ্গুয়েজে লেখা দরকার) ... এটি হ'ল কারণ যা আমি 2012 সালে আমার হ্যাক এসেম্বলার লেখার সময় "প্রতারণা" করতে সক্ষম হয়েছি এবং কিছু পূর্বনির্মাণ ব্যবহার করেছি আমাকে সাহায্য করার জন্য উচ্চ স্তরের ভাষা।


17
আপনি সর্বদা একটি ক্রস-সংকলক লিখতে পারেন এবং এটি আজকাল নতুন হার্ডওয়্যারের জন্য কোড তৈরি করতে ব্যবহার করতে পারেন।
কেরেক এসবি

@ পার্সোনালনেক্সাস এর জন্য ধন্যবাদ, আমার পক্ষ থেকে স্নাফু সম্পাদনা করুন।
ইয়ানিস

1
@ ইয়ানিসরিজোজ কোনও সমস্যা নেই, আমাদের সেরাটি ঘটবে :)
পার্সোনালনেক্সাস

8
এটি সম্ভবত প্রথম একত্রাকারী কোনও কাগজের টুকরোতে সমাবেশে লেখা থাকতে পারে। মেশিন কোডে রূপান্তরটি তখন কাগজে স্থির হয়ে সম্পাদিত হতে পারে এবং একসাথে এক শব্দে এক ধরণের সুইচ দিয়ে কোনও রমকে পোড়ানো হত।
mouviciel

আমার প্রথম কম্পিউটারটি ছিল একটি জেডএক্স 8১, 1KB র‌্যাম সহ, সুতরাং আমার (স্বীকারযোগ্যভাবে সংক্ষিপ্ত) মেশিন কোড প্রোগ্রামগুলি বাস্তবে হস্তান্তরিত ছিল।
ব্যবহারকারী 281377

উত্তর:


36

প্রথম লেখা একত্রিতকারের জন্য যা কখনও লেখা (যেমন ইতিহাসে), এটি মেশিন কোডে লেখার দরকার পড়েনি

অগত্যা। অবশ্যই এসেম্বলারের খুব প্রথম সংস্করণ v0.00 অবশ্যই মেশিন কোডে লেখা ছিল, তবে এটি এসেম্বলার বলা যথেষ্ট শক্তিশালী হবে না। এটি "আসল" এসেম্বলিংারের অর্ধেক বৈশিষ্ট্যগুলিকে সমর্থন করবে না, তবে এটি নিজেই পরবর্তী সংস্করণটি লেখার পক্ষে যথেষ্ট হবে। তারপরে আপনি অ্যাসেম্বলি ভাষার উপসেটটিতে v0.00 আবার লিখতে পারেন, একে v0.01 কল করতে পারেন, এটি আপনার এসেম্বলারের v0.02 এর পরবর্তী বৈশিষ্ট্য সেটটি তৈরি করতে ব্যবহার করতে পারেন, তারপরে v0.03 তৈরি করতে v0.02 ব্যবহার করুন এবং সুতরাং, আপনি v1.00 না পাওয়া পর্যন্ত। ফলস্বরূপ, কেবলমাত্র প্রথম সংস্করণটি মেশিন কোডে থাকবে; প্রথম প্রকাশিত সংস্করণটি সমাবেশ ভাষায় হবে।

আমি এই কৌশলটি ব্যবহার করে একটি টেমপ্লেট ল্যাঙ্গুয়েজ সংকলকটির বুকস্ট্রেপড বিকাশ করেছি। আমার প্রাথমিক সংস্করণটি printfবিবৃতিগুলি ব্যবহার করছিল , তবে আমি আমার সংস্থায় যে প্রথম সংস্করণটি ব্যবহার করেছি তা হ'ল এটির প্রক্রিয়াধীন খুব টেম্পলেট প্রসেসরটি ব্যবহার করা হয়েছিল। বুটস্ট্র্যাপিং পর্বটি চার ঘণ্টারও কম সময় স্থায়ী হয়েছিল: আমার প্রসেসরটি সবেমাত্র কার্যকর আউটপুট তৈরি করতে পারার সাথে সাথে আমি এটিকে নিজের ভাষায় পুনরায় লিখেছিলাম, সংকলন করেছি এবং অ-টেম্প্লেটেড সংস্করণটি ফেলে দিয়েছি।


4
আপনি কি এখনও সব পর্যায়টি পেয়েছেন? আমি সেগুলি দেখতে পছন্দ করব এবং তাদের সাথে অন্যগুলির তুলনা করব। আপনি যে প্রক্রিয়াটি পেরিয়েছিলেন তার জন্য কেবল অনুভূতি পেতে।
মারজান ভেনেমা

3
@ মারজানভেনেমা না, আমার আর এগুলি নেই - আমি এটি 1998 সালে তৈরি করেছিলাম এবং 2005 সাল অবধি স্ট্রিংটেম্পলেটটি আবিষ্কার করে এটি ব্যবহার করে চলেছি । আমি প্রাথমিক ব্যবহারযোগ্য সংস্করণটির দিকে কাজ করার সাথে সাথে আমি পূর্ববর্তী পর্বটি ওভাররাইট করছিলাম। আমার বিকাশ চক্রটিতে নতুন স্টাফের কোডিং, নিজেকে আলাদা ডিরেক্টরিতে তৈরি করার জন্য কোড জেনারেটর চালানো, কোডের diffউত্পন্ন অংশটি অপ্রত্যাশিতভাবে পরিবর্তিত হয়নি, কোডটি জায়গায় রেখে প্রতিস্থাপন করছে তা দেখতে বর্তমান কোড জেনারেটরের বিপরীতে চালানো রয়েছে এবং চক্রটি শেষ করতে আরও একবার এটি চালানো।
ডেসব্লিংকনলাইট

দুঃখিত তবে বোধগম্য :) আপনি যা করেছেন তা বর্ণনা করার জন্য ধন্যবাদ (এবং লিঙ্কটির জন্য)।
মার্জন ভেনেমা

3
আমার মনে হয় আপনার কোনও ধরণের বুটস্ট্র্যাপিং চেইন রাখা দরকার। মেশিনের কোড => লিমিটেড এএসএম => সম্পূর্ণ এএসএম => কিছু ভাষা। অন্যথায়, আপনি যদি বাইনারিটি কোনও পদক্ষেপটি looseিলে করেন তবে আপনার ক্ষতি হবে। (পর্যায়ক্রমে আপনার কাছে একটি সি ক্রস-সংকলিত সংস্করণ থাকতে পারে, কারণ বাস্তবিকভাবে সমস্ত সি সংকলক বাইনারিগুলি একবারে অদৃশ্য হয়ে যাবে না))
এডিএ-কিএ মর্ট-ওরা-ই

3
একমাত্র "বৈশিষ্ট্যগুলি" যা একটি সমাবেশকারীর "সত্য" এসেম্বলবার হওয়া দরকার তা হল এসেম্বল করা।
মাইলস রাউন্ড

23

উইকিপিডিয়া অনুসারে নাথানিয়েল রচেস্টার আইবিএম 1০১ এর জন্য প্রথমবারের মত সমাবেশকারী / সমাবেশের ভাষা প্রয়োগ করেছিলেন । (তারিখ Wikipedia নিবন্ধটি থেকে সামান্য অনিশ্চিত। এটা বলে যে, রচেস্টার 1948 সালে আইবিএম যোগদান, কিন্তু অন্য উইকিপিডিয়া পৃষ্ঠা রাজ্যের 701 প্রকাশ্যে 1952 সালে ঘোষণা করা হয় এবং এই আইবিএম পৃষ্ঠা রাজ্যের "[একটি] ctual নকশা ফেব্রুয়ারি শুরু 1, 1951 এবং এক বছর পরে সম্পূর্ণ হয়েছিল " ।)

তবে ডেভিড সালমোনের "এসেমব্লার্স অ্যান্ড লোডারস" লিখেছেন (page পৃষ্ঠায়) যে ইডিএসএসি-তে একটি এসেমব্লারও ছিল:

"প্রথম সঞ্চিত প্রোগ্রাম কম্পিউটারগুলির মধ্যে একটি ছিল ইডিএসএসি (বৈদ্যুতিন বিলম্ব স্টোরেজ অটোমেটিক ক্যালকুলেটর) ১৯৪৯ সালে মরিস উইলকস এবং ডব্লু। রেনউইক দ্বারা কেমব্রিজ বিশ্ববিদ্যালয়ে বিকশিত। ইডিএসএসি এর প্রথম দিন থেকেই ইডিএসএসি'র একটি অ্যাসেমব্লার ছিল, ইনিশিয়াল অর্ডারস নামে এটি প্রয়োগ করা হয়েছিল। রোটারি টেলিফোন নির্বাচনকারীদের একটি সেট থেকে গঠিত কেবল পঠনযোগ্য স্মৃতিতে এবং এটি প্রতীকী নির্দেশনা গ্রহণ করে Each প্রতিটি নির্দেশে একটি বর্ণের স্মৃতিচক্র, একটি দশমিক ঠিকানা এবং তৃতীয় ক্ষেত্র যা একটি চিঠি ছিল The তৃতীয় ক্ষেত্রটি 12 টির মধ্যে একটির কারণ হয়েছিল প্রোগ্রামার দ্বারা নির্ধারিত ধ্রুবকগুলি সমাবেশের সময় ঠিকানায় যুক্ত করা হয়। " (উল্লেখগুলি বাদ দেওয়া হয়েছে ... মূলটি দেখুন))

ধরে নিলাম যে আমরা "প্রাথমিক আদেশ" অগ্রাধিকার গ্রহণ করে তা গ্রহণ করি, আমাদের স্পষ্ট প্রমাণ রয়েছে যে প্রথম সমাবেশটি মেশিন কোডে প্রয়োগ করা হয়েছিল

এই প্যাটার্নটি (মেশিন কোডে প্রাথমিক সংস্থাগুলি লেখা) 1950 এর দশকের মধ্যে আদর্শ ছিল। তবে উইকিপিডিয়া অনুসারে , "[ক] ছদ্মবেশকারীরা নিজেরাই বুটস্ট্র্যাপ করার প্রথম ভাষার সরঞ্জাম ছিল"। আরও দেখুন এই বিভাগে যা ব্যাখ্যা কিভাবে আদিম প্রতীকী ভাষান্তর লিখিত মেশিন কোড একটি আরো উন্নত প্রতীকী ভাষান্তর যে সমাবেশ ভাষায় কোডেড হয়েছে বুটস্ট্র্যাপ ব্যবহার করা হয়েছে।

আজকাল এসেম্বেবলার এবং সংকলকগুলি উচ্চ স্তরের ভাষায় রচিত এবং একটি নতুন মেশিন আর্কিটেকচারের জন্য একটি এসেম্ববলার বা সংকলক সাধারণত একটি ভিন্ন আর্কিটেকচার এবং ক্রস-সংকলিত তৈরি করা হয়।

(এফডাব্লুআইডাব্লু - মেশিন কোডে অপ্রয়োজনীয় প্রোগ্রামগুলি লেখার এবং ডিবাগ করা অত্যন্ত পরিশ্রমী প্রক্রিয়া machine মেশিন কোডে এসেমব্লার বিকাশকারী কেউ সম্ভবত এসেম্বেলারে লেখা এসেমব্লারের সাথে যত তাড়াতাড়ি সম্ভব বুটস্ট্র্যাপ করে))

বুটস্ট্র্যাপিং সংকলক এবং সমাবেশকারীদের এই উইকিপিডিয়া পৃষ্ঠাটি পড়ার পক্ষে মূল্যবান ... যদি এগুলি সমস্ত আপনার কাছে অবাক হয়।


কেবল অনুমান করার চেয়ে উত্তর দেওয়ার জন্য উত্সাহিত। এই সত্যিই আকর্ষণীয় পড়া!
জ্যাকবিবি

14

আমি অনুমান করি যে প্রথম সমাবেশকারীগুলি মেশিন কোডে লেখা ছিল, কারণ আপনি যেমন বলেছিলেন, তখন আর কিছুই পাওয়া যায়নি।

আজকের দিনে, যখন একটি নতুন সিপিইউ আর্কিটেকচারটি প্রকাশিত হয়, আমরা ক্রস-কম্পাইলার হিসাবে পরিচিত যা ব্যবহার করি , এটি এমন একটি সংকলক যা মেশিন কোড তৈরি করে যা আর্কিটেকচারটি চলছে তার জন্য নয়, বরং অন্য একটি স্থাপত্যের জন্য।

(প্রকৃতপক্ষে, যেমনটি আমি নিশ্চিত যে আপনি যে বইটি পড়ছেন তা পরবর্তীকালে আপনি খুঁজে পাবেন, এমন কোনও কিছুই নেই যা কোনও সংকলক অভ্যন্তরীণভাবে কোনও স্থাপত্যের জন্য মেশিন কোড তৈরির জন্য সহজাতভাবে আরও উপযুক্ত করে তোলে যা এটি যে কোনওটির চেয়ে চলমান রয়েছে) অন্যান্য আর্কিটেকচার। সংকলকটির স্রষ্টা হিসাবে আপনি কোন আর্কিটেকচারকে লক্ষ্য করতে যাচ্ছেন এটি কেবলমাত্র বিষয়))

সুতরাং, আজ এমনকি এটি সম্ভব হয়েছে (অন্তত তাত্ত্বিকভাবে) একটি নতুন নতুন আর্কিটেকচার তৈরি করা এবং উচ্চ-স্তরের ভাষার সংকলক স্থানীয়ভাবে এটি চালাবেন (ক্রস-সংকলক ব্যবহার করে অন্যান্য আর্কিটেকচারগুলিতে সংকলিত) আপনার এমনকি সেই স্থাপত্যের জন্য এসেম্বলারের আগেও।


12

প্রথমে কাগজটিতে "অ্যাসেম্বলি" লেখা হত এবং তারপরে পাঞ্চ কার্ডগুলিতে ম্যানুয়ালি "সংকলিত" থাকে।

আমার পিতামহ একটি জেডআরএ 1 নিয়ে কাজ করছিলেন (দুঃখিত, পৃষ্ঠাটি কেবল জার্মান ভাষায় বিদ্যমান, তবে গুগল অনুবাদটি ঠিক সেই বিন্দুতে ঠিক যেখানে আপনি আসলে সবচেয়ে গুরুত্বপূর্ণ তথ্যগুলি তুলতে পারেন: ডি)।
মোডাস অপারেন্ডিটি ছিল আপনার কোডটি কাগজটিতে এক প্রকারের ভাষায় লিখতে হবে এবং সচিব আসলে পাঞ্চ কার্ডগুলিতে প্রতিলিপি করতেন, তারপরে সেগুলি অপারেটরের কাছে দিয়ে দিতেন এবং ফলাফলটি সকালে ফেরত পাঠানো হত।

প্রোগ্রামারদের একটি কীবোর্ডের মাধ্যমে ডেটা ইনপুট করার বিলাসিতা থাকা এবং এটি একটি স্ক্রিনে দেখার আগে এটি মূলত ছিল।


3
আমি যখন বিশ্ববিদ্যালয়ে অধ্যয়নরত ছিলাম তখনও তাদের কাছে মেশিন কোড লেখার জন্য ব্যবহৃত কাগজপত্রগুলি ছিল। আপনি ডানদিকে প্রোগ্রামটি লিখুন, নির্দেশগুলি হেক্সাডেসিমালে অনুবাদ করতে বামদিকে কলাম রয়েছে। এবং বর্তমান ঠিকানার জন্য একটি কলাম। প্রথম সমাবেশকারীরা আসলে মানুষ ছিল।
ফ্লোরিয়ান এফ

9

একেবারে প্রথম এসেম্বলারের সম্পর্কে নিশ্চিত হওয়া শক্ত (এটি কী ছিল তা নির্ধারণ করাও শক্ত)। বছর কয়েক আগে, যখন আমি মেশিনগুলির জন্য অ্যাসেমব্লারদের অভাবের জন্য কয়েকটি সংখ্যক সমাবেশ লিখেছিলাম, তখনও আমি কোডটি সমাবেশের ভাষায় লিখেছিলাম। তারপরে, আমার কোডের একটি বিভাগ যুক্তিসঙ্গতভাবে সম্পূর্ণ হওয়ার পরে আমি এটি মেশিন কোডে হাতে অনুবাদ করেছি translated এগুলি এখনও দুটি সম্পূর্ণ পৃথক পর্যায় ছিল যদিও - আমি কোডটি লেখার সময়, আমি কোনও মেশিন-কোড স্তরে কাজ করছি না বা ভাবছিলাম না।

আমার যুক্ত হওয়া উচিত যে কয়েকটি ক্ষেত্রে আমি আরও এক ধাপ এগিয়ে যেতে পেরেছিলাম: আমি সমাবেশের ভাষায় বেশিরভাগ কোড লিখেছিলাম যা আমি ব্যবহার করতে সহজ পেয়েছি, তারপরে একটি ছোট্ট কার্নেল লিখেছি (আমরা এখন ভার্চুয়াল মেশিনটিকে আরও কম কি বলব) লক্ষ্য প্রসেসরের উপর এটি ব্যাখ্যা করতে। এটি মারাত্মক ধীর ছিল (বিশেষত 1 মেগাহার্জ, 8-বিট প্রসেসরের উপর) তবে এটি খুব বেশি গুরুত্ব দেয় না, কারণ এটি সাধারণত একবারে চালিত হয় (বা বেশিরভাগ ক্ষেত্রে কয়েকবার)।


8

মেশিন কোডে এসেম্বল ল্যাঙ্গুয়েজ কোডটি হস্তান্তর করতে আপনার কোনও এসেম্বলারের প্রয়োজন নেই। আপনার যেমন সমাবেশের ভাষা কোড লেখার জন্য কোনও সম্পাদকের দরকার নেই।

একটি .তিহাসিক দৃষ্টিকোণ

প্রথম সমাবেশগুলি সম্ভবত সমাবেশ ভাষায় লেখা হত এবং তারপরে হাতটি মেশিন কোডে জড়িত। প্রসেসরের কোনও আনুষ্ঠানিক 'সমাবেশ ভাষা' না থাকলেও প্রোগ্রামাররা সম্ভবত সেই কোডটি মেশিনের নির্দেশে অনুবাদ করার আগে কোনও ধরণের সিউডো কোড ব্যবহার করে প্রোগ্রামিংয়ের বেশিরভাগ কাজ করেছিলেন।

এমনকি কম্পিউটিংয়ের প্রথম দিকের প্রোগ্রামগুলিতে প্রোগ্রামাররা এক প্রকার প্রতীকী স্বরলিপিতে প্রোগ্রাম লিখতেন এবং তাদের কম্পিউটারে খাওয়ানোর আগে তাদের মেশিন কোডে অনুবাদ করেছিলেন । অগাস্টা অ্যাডা কিংস ক্ষেত্রে, সে তাদের মধ্যে অনুবাদ করা প্রয়োজন হবে পাঞ্চ কার্ড জন্য Babbage এর বিশ্লেষণাত্নক ইঞ্জিন , কিন্তু হায় এটি নির্মিত ছিল না।

ব্যক্তিগত অভিজ্ঞতা

আমার মালিকানাধীন প্রথম কম্পিউটারটি ছিল সিনক্লেয়ার জেডএক্স 81 (মার্কিন যুক্তরাষ্ট্রে টাইমেক্স 1000)। ম্যানুয়ালটির পিছনে জেড 80 সভা ভাষাটি মেশিন কোডে অনুবাদ করার জন্য আপনার প্রয়োজনীয় সমস্ত তথ্য ছিল (এমনকি জেড 80 এর সমস্ত অদ্ভুত সূচক মোডকে অপকড করে)।

আমি অ্যাসেম্বলি ভাষায় একটি প্রোগ্রাম (কাগজে) লিখি এবং কোডের মাধ্যমে শুকনো রান করতাম। যখন আমি খুশি হয়েছিলাম যে আমার প্রোগ্রামটি বাগ-মুক্ত ছিল, আমি ম্যানুয়ালটির পিছনে প্রতিটি নির্দেশ সন্ধান করতাম, এটি মেশিন কোডে অনুবাদ করতাম এবং মেশিনের কোডটি কাগজেও লিখতাম। শেষ পর্যন্ত আমি মেশিন কোডের সমস্ত নির্দেশাবলী টেপে সংরক্ষণ করে চালানোর চেষ্টা করার আগে আমার জেডএক্স 8১ এ টাইপ করব।

যদি এটি কাজ না করে, আমি আমার হাতের সমাবেশটি ডাবল করে পরীক্ষা করব এবং কোনও অনুবাদ যদি ভুল হয় তবে টেপ থেকে লোড করা বাইটগুলি পুনরায় সঞ্চয় করার আগে এবং প্রোগ্রামটি চালানোর জন্য আবার চেষ্টা করব।

অভিজ্ঞতা থেকে, আমি আপনাকে বলতে পারি যে আপনার কোডটি মেশিন কোডের চেয়ে এসেম্বলির ভাষায় লেখা থাকলে এটি ডিবাগ করা অনেক সহজ - সুতরাং বিযুক্তকারীদের জনপ্রিয়তা। আপনার যদি এসেম্বলার না থাকে তবে সরাসরি মেশিন কোড লেখার চেষ্টা করার চেয়ে হাতের সমাবেশে ত্রুটি কম থাকে, যদিও আমার ধারণা মেলের মতো কোনও রিয়েল প্রোগ্রামার এতে দ্বিমত পোষণ করতে পারে। * 8 ')


5

তখন বা এখন কোনও পার্থক্য নেই। আপনি একটি নতুন প্রোগ্রামিং ভাষা উদ্ভাবন করতে চান, আপনি প্রথম সংকলক তৈরি করতে আজ আপনার কাছে উপলব্ধ যে কোনও একটি ভাষা বেছে নিন। কিছু সময়ের মধ্যে, যদি এটি প্রকল্পের লক্ষ্য হয় তবে আপনি সেই ভাষায় একটি সংকলক তৈরি করেন এবং এটি স্ব-হোস্ট করতে পারে।

প্রথম বা পরের নতুন নির্দেশের সেটটিতে আপনার ব্যবহারকারীর ইন্টারফেস হিসাবে আপনার সমস্ত কিছু যদি পেন্সিল এবং কাগজ এবং কিছু স্যুইচ বা পাঞ্চ কার্ড থাকে তবে আপনি আপনার কাছে উপলভ্য আইটেমগুলির মধ্যে একটি বা সমস্ত ব্যবহার করেছেন। আপনি কাগজের উপর একটি সমাবেশের ভাষা খুব ভালভাবে লিখতে পারতেন এবং তারপরে একটি এসেম্বলার ব্যবহার করেছিলেন, আপনি এটি মেশিন কোডে রূপান্তর করতে পারেন, সম্ভবত অক্টোটালে, তারপরে এমন কোনও সময়ে যা মেশিনের ইন্টারফেসে গিয়েছিল।

আজ যখন একটি ব্র্যান্ড নতুন নির্দেশ সেট আবিষ্কার করা হয়েছে, তখন সংস্থা / ব্যক্তি, অনুশীলন ইত্যাদির উপর নির্ভর করে কোনও আলাদা নয়, সম্ভবত হার্ডওয়্যার ইঞ্জিনিয়ার সম্ভবত ভেরিলোগ বা ভিএইচডিএলে প্রোগ্রামিং করছে, মেশিন কোডে হাতে প্রথম কয়েকটি পরীক্ষা প্রোগ্রাম লিখেছেন (সম্ভবত হেক্স বা বাইনারি মধ্যে)। সফ্টওয়্যার দলগুলির অগ্রগতির উপর নির্ভর করে তারা খুব তাড়াতাড়ি বা না খুব দীর্ঘ সময়ের জন্য অ্যাসেম্বলি ভাষা এবং তারপরে একটি সংকলক আসবে।

প্রথম কম্পিউটিং মেশিনগুলি সাধারণ উদ্দেশ্যে মেশিনগুলি ছিল না যা আপনি এ্যাসেমবেলার এবং সংকলক তৈরি করতে ব্যবহার করতে পারেন। আপনি পূর্বের আলুর আউটপুটটির মধ্যে পরবর্তীগুলির ইনপুটটিতে কিছু তারগুলি সরিয়ে তাদের প্রোগ্রাম করেছেন। অবশেষে আপনার কাছে একটি সাধারণ উদ্দেশ্য প্রসেসর ছিল যাতে আপনি সমাবেশে কোনও এসেম্বলার লিখতে পারেন, হাতটি একত্র করতে পারেন, মেশিন কোড হিসাবে এটি খাওয়াতেন, তারপরে ইবিসিডিক, এসকিআই ইত্যাদিকে পার্স করতে এবং তারপরে স্ব-হোস্ট ব্যবহার করতে পারেন। কিছু মিডিয়ায় বাইনারি সংরক্ষণ করুন যা আপনি পরে পড়তে / লোড করতে পারতেন হ্যান্ড ফিড মেশিন কোডে ফ্লিপিং স্যুইচ রাখার দরকার নেই।

পাঞ্চ কার্ড এবং কাগজ টেপ চিন্তা করুন। সুইচগুলি উল্টানোর পরিবর্তে আপনি সম্ভবত একটি সম্পূর্ণ যান্ত্রিক মেশিন তৈরি করতে পারেন, একটি শ্রম সাশ্রয়কারী ডিভাইস, যা মিডিয়া কম্পিউটারটি পড়বে তা তৈরি করে। মেশিনের কোড বিটগুলিকে একটি সলির মতো সুইচ দিয়ে প্রবেশ করার পরিবর্তে আপনি কাগজের টেপ বা পাঞ্চ কার্ডগুলি খাওয়াতে পারেন (যান্ত্রিক কিছু ব্যবহার করে, প্রসেসর চালিত নয়, যা মেমরি বা প্রসেসর খাওয়াত, বা একটি ছোট মেশিন কোড লিখিত বুট লোডার ব্যবহার করে)। এটি কোনও খারাপ ধারণা ছিল না কারণ আপনি কম্পিউটার দ্বারা চালিত এমন কিছু তৈরি করতে পারেন যা যান্ত্রিকভাবে কাগজ টেপগুলি বা পাঞ্চ কার্ড উত্পাদন করতে পারে এবং তারপরে সেগুলিকে ফিড দেয় ch পাঞ্চ কার্ডের দুটি উত্স, কম্পিউটার ভিত্তিক যান্ত্রিক শ্রম সাশ্রয়কারী ডিভাইস , এবং কম্পিউটার চালিত মেশিন। উভয়ই কম্পিউটারের জন্য "বাইনারি" উত্পাদন করে।


1
"সমাবেশকারী, আপনি" মন্তব্যটির জন্য +1। কোনও শব্দের একটি সংজ্ঞা (অর্থাত্ এসেম্বলার = সফ্টওয়্যার) এর সাথে সংযুক্ত হওয়া সহজ তবে আপনার মন্তব্য সত্যিই স্পষ্টতাকে দৃষ্টিভঙ্গিতে ফেলেছে ... যে "সমাবেশ প্রক্রিয়া" কেবল একটি সিস্টেম / রুটিন, যা সহজেই গ্রহণ করা যেতে পারে one একজন মানব সমাবেশকারী r
The111

1
লোকেরা এই ধারণাটি আটকে রাখতে থাকে যে প্রাথমিক কম্পিউটারগুলির নির্দেশাবলী সেট ছিল। প্রারম্ভিক কম্পিউটারগুলি পেনসিল এবং কাগজ সহ ভাল গণিত দক্ষতার মহিলারা ছিল এবং এটি তাদের বলা হত কম্পিউটার। তারপরে সেই মহিলারা (বা বিশেষত একটি) কোনও নির্দেশিকা সেট ব্যবহার না করে তারের সাথে সংযোগ স্থাপন করে এনিয়াককে প্রোগ্রাম করেছিলেন। কোনও নির্দেশের সেট সহ প্রোগ্রামিংয়ের রাস্তাটি বেশ ভাল ছিল। হ্যাঁ, এসেম্বলার বা কম্পিউটার বা শুরুর দিকে কোনও শব্দ বা শব্দ ব্যবহার করে খুব সহজেই ধরা পড়ে।
old_timer

4

ব্রুকের কম্পিউটার চিড়িয়াখানায় একটি বা দুটি উদাহরণ রয়েছে যেখানে তিনি বলেছিলেন "স্মৃতিবিদ্যাই আমাদের উদ্ভাবন, ডিজাইনার কেবলমাত্র সংখ্যামূলক অপকোড বা যে চরিত্রটির কোডটি অপকোড" ব্যবহার করেছিলেন, তাই যেখানে মেশিনগুলির জন্য এমনকি একটি ছিল না সেখানে এসেম্বলি.

প্রোগ্রামগুলি প্রবেশ করানো সামনের প্যানেলে ডিবাগিংয়ের সমাপ্তি (যারা এটি করেন নি তাদের পক্ষে, এটি মেমরি সেটআপ করার একটি উপায় ছিল, আপনি ঠিকানায় কিছু স্যুইচ সেট করেছিলেন, আবার কিছুতে মান বাটন বা অন্য একটি বোতাম টিপে মান পড়ুন) পরে খুব সাধারণ ছিল। কিছু পুরানো টাইমার বড়াই করে যে তারা এখনও মেশিনগুলির বৃহতভাবে ব্যবহার করতে বুট কোড প্রবেশ করতে সক্ষম হবে।

মেশিনের ডাম্প থেকে সরাসরি মেশিন কোড লেখার এবং প্রোগ্রামগুলি পড়ার অসুবিধাটি মেশিন ভাষার উপর নির্ভর করে, এর মধ্যে কয়েকটি অপেক্ষাকৃত সহজ (সবচেয়ে কঠিন অংশটি ঠিকানাগুলি সন্ধান করছে), x86 এর মধ্যে অন্যতম খারাপ।


পিডিপি -11 এমনকি গিরিযুক্ত বিলাসিতা ছিল না। আপনি 8 টগল সুইচগুলিতে বাইনারি ঠিকানা প্রবেশ করে স্টোরেজ পরিবর্তন করতে পারেন, এবং 16 টগল সুইচের মানটি পরে বোতামটি টিপুন। আমি আসলে কাউকে এইভাবে একটি লুপিং প্রোগ্রাম ঠিক করতে দেখেছি!
জেমস অ্যান্ডারসন

2

আমি 1975 সালে একটি কম্পিউটার তৈরি করেছি It এটি আলটিয়ারের সমসাময়িকের তুলনায় এটি অত্যন্ত উন্নত ছিল, কারণ এটির একটি 'মনিটর রোম' ছিল যা আমাকে হেক্সে মেশিন কোড টাইপ করে এবং একটি ভিডিও মনিটরে এই কোডটি দেখে প্রোগ্রামগুলিতে প্রবেশ করতে দেয়, যেখানে এখানে ছিল প্রতিটি মেশিনের আল্টায়ার স্যুইচগুলির সারি ব্যবহার করে কিছুটা সময় প্রবেশ করতে হয়েছিল।

সুতরাং হ্যাঁ, কম্পিউটারের প্রথম দিনগুলিতে এবং তারপরে আবারও ব্যক্তিগত কম্পিউটারগুলির প্রথম দিনগুলিতে লোকেরা মেশিন কোডে অ্যাপ্লিকেশন লিখতেন।


2

একটি উপাখ্যান:

যখন আমি অ্যাসেম্বলির ভাষা শিখলাম, অ্যাপলে] [, রমে অন্তর্ভুক্ত একটি প্রোগ্রাম ছিল যার নাম ছিল মাইক্রো এসেম্বেবলার। এটি তাত্ক্ষণিকভাবে বাইটগুলিতে সমাবেশ নির্দেশের অনুবাদ করেছিল, আপনি এগুলি প্রবেশ করার সাথে সাথে। এর অর্থ কোনও লেবেল ছিল না - আপনি যদি লাফ বা লোড করতে চান তবে আপনাকে নিজের অফসেটগুলি গণনা করতে হবে। যদিও নির্দেশের বিন্যাসগুলি সন্ধান করা এবং হেক্স মানগুলি প্রবেশ করার চেয়ে অনেক সহজ ছিল।

সন্দেহ নেই, আসল সমাবেশগুলি প্রথমে মাইক্রো এসেম্বলবার ব্যবহার করে লেখা হয়েছিল, বা অন্য কোনওটি সম্পূর্ণ সম্পূর্ণ পরিবেশ নয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.