প্রথম সংকলকটি কীভাবে রচিত হয়েছিল?


166

আমি মুরগী ​​এবং ডিম এবং বুটস্ট্র্যাপিং সম্পর্কে শুনেছি। আমার কিছু প্রশ্ন আছে।

প্রথম সংকলক কোনটি লিখেছিলেন যা কোনও কিছুকে বাইনারি নির্দেশিকায় রূপান্তরিত করে?

সমাবেশ কি বাইনারি নির্দেশে সংকলিত বা অনুবাদ করা হয়েছে?

... আমার বিশ্বাস করা শক্ত হয় যে তারা বাইনারিতে একটি সংকলক লিখেছিল।



@ নওফাল, এটি একটি নতুন প্রোগ্রামিং ভাষা এবং প্রথম

@ পাউলিসূদন তিরহো পার্থক্য কি? প্রশ্নের স্পিরিট একই। আপনি কোনও প্রোগ্রামিং ভাষা লিখতে পারবেন না, সেই প্রশ্নটি প্রথম সংকলক সম্পর্কে কথা বলে।
নওফাল

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

: - আমার কাছ থেকে জানুন এটি একটি প্রতিলিপি stackoverflow.com/questions/4772768/...

উত্তর:


133

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

প্রথম প্রোগ্রামগুলি ঠিক এই ফ্যাশনে হয়েছিল - হাতে লিখিত ওপকোড।

যাইহোক, বেশিরভাগ সময় এসেম্বিলারকে "সংকলন" সমাবেশের কোডটি ব্যবহার করা সহজ, যা স্বয়ংক্রিয়ভাবে এই অপকোড লুক্কুয়ালগুলি সম্পাদন করে, পাশাপাশি নামকরণ করা লাফ লেবেলগুলির জন্য ঠিকানাগুলি / অফসেটগুলিতে সহায়তা করে, ইত্যাদি ce

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


18
আমার প্রথম কম্পিউটারটি একটি জেড 80-ভিত্তিক মেশিন ছিল যার আরওএম মনিটরে আমাকে একটি অপারেটিং সিস্টেমের বুনিয়াদি (সিপি / এম) আনার জন্য একটি বুটস্ট্র্যাপ লোডার হ্যান্ড-এসেম্বল করতে হয়েছিল যাতে আমি বাকী অপারেটিং সিস্টেমটিকে একটি কার্যক্ষম সিস্টেমে একত্রিত করতে পারি I , ডিস্ক-ভিত্তিক বুটস্ট্র্যাপ লোডার দিয়ে সম্পূর্ণ করুন। মজা বার. হ্যাঁ, আপনি ঠিক জরিমানা করতে পারেন। এটি ধীর এবং বেদনাদায়ক এবং ত্রুটি-প্রবণ (এ কারণেই আমরা জিনিসগুলি স্বয়ংক্রিয়ভাবে ব্যবহার করেছি) তবে এটি সম্ভব।
আমার সঠিক মতামতটি

প্রথম লিংক নষ্ট হয়ে গেছে।
লুক 18

হাতে লেখা। কিভাবে? ওয়্যারিং বা পাঞ্চ কার্ড? আমার ধারণা তাদের কাছে হেক্সাডেসিমাল কীপ্যাড রয়েছে।

44

সংকলক বুটস্ট্র্যাপিং এবং সংকলক লেখার ইতিহাস সম্পর্কে পড়ুন

ধারণাটি হ'ল সরাসরি মেশিন কোডে একটি খুব সাধারণ সংকলক লিখুন, আরও পরিশীলিত সংকলক লিখতে এটি ব্যবহার করুন, তৃতীয়টি তৈরি করতে দ্বিতীয়টি ব্যবহার করুন এবং আপনার সম্পূর্ণ বৈশিষ্ট্যযুক্ত সংকলক না আসা পর্যন্ত এটি ব্যবহার করুন।


36

ডিম দীর্ঘ মুরগি আগে। বেশিরভাগ "মুরগী ​​এবং ডিম" সমস্যার উত্তর একই: বিবর্তন। কিছু লোকের জৈবিক বিবর্তনে বিশ্বাস করতেও সমস্যা হয়, তবে অবিশ্বাস কোনও যুক্তি নয় (গুগল যুক্তিযুক্ত বিজ্ঞাপন উপেক্ষা)।

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


24

ওয়াজ তার জনসাধারণের এক বক্তৃতায় বলেছিলেন যে তিনি যখন শুরু করেছিলেন, তখন তিনি একটি সংকলক সহ্য করতে পারেননি তাই তিনি কাগজে হাত দিয়ে বাইনারি সংকলন করেছিলেন। আপনি যদি আরও বন্য কিছু দেখতে চান তবে এর শর্তাবলী পড়ুন বিল গেটস এবং পল অ্যালেন আলটায়ার ৮০০০০-এর জন্য বেসিকটি লিখেছিলেন সেই পরিস্থিতিতে পড়ুন।

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

কম্পিউটারটি যাদুবিদ্যার মতো অনুভূতি বজায় রাখে এমন বাধাটি যদি আপনি ভাঙতে চান তবে আমি চার্লস পেটজোল্ড এবং / অথবা কম্পিউটারের সিস্টেমগুলির উপাদানগুলির দ্বারা CODE পড়ার পরামর্শ দিই । প্রোগ্রামিংয়ের কেবলমাত্র একটি প্রাথমিক জ্ঞান সহ, এই আশ্চর্যজনকভাবে অ্যাক্সেসযোগ্য বইগুলি আপনাকে উপর থেকে নীচে কম্পিউটার বোঝে। স্পষ্টতই, কেউ একটি কমপ পেতে পারে না। Sci। বা মাত্র 2 টি বইয়ের পরে EE ডিগ্রি, তবে আমি স্ব-শিক্ষিত প্রোগ্রামার হিসাবে বলতে পারি যে আনুষ্ঠানিক প্রশিক্ষণটি হাতছাড়া করে: এই বইগুলি আমার বিশ্বকে কাঁপিয়ে দিয়েছে!


2
বিক্রয় পিচ তৈরির পরে আলটায়ার বেসিক দোভাষী লিখছেন? আলবুকার্কে বিমানে যাত্রা করে বুটস্ট্র্যাপার কোডিং? এটি একরকম হাস্যকর শোনায়। এবং মজা.
এহতেশ চৌধুরী

2
@ শুরান: হা! এই বিষয়গুলি প্রাসঙ্গিক তবে আমার কাছে তারা বেসিক দোভাষীকে কীভাবে তৈরি করেছে এবং গোষ্ঠীটি এটি কীভাবে ছোট স্থানটিতে ছড়িয়ে দিয়েছে তা সৌন্দর্য এবং বিস্ময়কর প্রোগ্রামিং ক্ষমতা / হ্যাকারির একটি বিষয়।
দিনাহ

10

প্রথম সংকলক কোনটি লিখেছিলেন যা কোনও কিছুকে বাইনারি নির্দেশিকায় রূপান্তরিত করে?

একজন মানুষ করেছে। A-0 সিস্টেম সম্পর্কে পড়ুন :

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


1
লিঙ্কটি এখনই 404 বলে মনে হচ্ছে, কোনও অবস্থাতেই উপরে "গ্রেস" গ্রেস হপার।
ভোলকার স্টলজ

2
শুনেছি হপার প্রথম সংকলক লিখেছিল, তবে এর উপরে বর্ণিত বিবরণ এটি সংকলকের চেয়ে লিঙ্কারের মতো আরও শোনায়। তবুও, ভাল গল্প। ভাবতে অবাক
মার্ক ই। হাজে

1
@ মেমাহেস এ কারণেই এটিকে "সংকলক" বলা হয়। এটি রুটিনগুলির একটি সংকলন তৈরি করে, যার প্রত্যেকটি সরাসরি (সম্ভবত) মেশিনের ভাষায় লিখিত হয়।
এলাজার

@ মার্কই.হাজে লোকেরা এখানে হপারকে উল্লেখ করেছে তারা নির্দিষ্ট গণনার কাজে কম্পিউটার ব্যবহার করে অ্যাপ্লিকেশন ইঞ্জিনিয়ার এবং বিজ্ঞানী ছিলেন; তারা "কম্পিউটার বিজ্ঞানী" ছিল না। ১৯৫২ সালের দিকে সেখানে মুষ্টিমেয় সাইবারনেটিক ছিলেন, কিন্তু আমি সন্দেহ করি যে সে কারও সাথেই কথা বলেছিল।
জিম বাল্টার

9

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

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

এই প্রোগ্রামগুলি কখনও কখনও অন্যান্য প্রোগ্রাম তৈরি করতে পাঠ্য ফাইলগুলি প্রক্রিয়া করতে ব্যবহৃত হত এবং ভয়েলা প্রোগ্রামিং ভাষা তৈরি করা হত।


প্রশ্নটি প্রথম সংকলক সম্পর্কে, সাধারণভাবে প্রথম প্রোগ্রামগুলি নয়, প্রোগ্রামগুলি মাঝে মাঝে সংকলক হয়েও থাকে; দুজনের ইতিহাস এক নয়। (একটি উপমা: পৃথিবীতে প্রথম প্রাণী কখন উপস্থিত হয়েছিল এই প্রশ্নের উত্তরটি বিড়ালরা প্রাণী হওয়া সত্ত্বেও পৃথিবীতে প্রথম বিড়াল কখন হাজির হয়েছিল এই প্রশ্নের উত্তর নয়।)
জিম বাল্টার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.