compiler-construction - compiler - কম্পাইলার কি




কিভাবে প্রথম কম্পাইলার লিখিত ছিল? (4)

কি বাইনারি নির্দেশাবলী মধ্যে কিছু রূপান্তরিত প্রথম কম্পাইলার লিখেছেন?

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

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

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

কি বাইনারি নির্দেশাবলী মধ্যে কিছু রূপান্তরিত প্রথম কম্পাইলার লিখেছেন?

সমাবেশ কম্পাইল বা বাইনারি নির্দেশাবলী মধ্যে অনুবাদ করা হয়?

... বাইনারিতে একটি কম্পাইলার লিখেছে এটা বিশ্বাস করা কঠিন।


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

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

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

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


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

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


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

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

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





machine-instruction