জিসিসি সি সংকলক নিজেই সি লিখেছেন?


87

জিসিসি সি সংকলক নিজেই সি লিখেছেন? নাকি এটি বিধানসভায় লেখা আছে? যদি সংকলক সি তে লেখা হয়, তবে সংকলক কোডটি সংকলন করতে ব্যবহৃত সংকলকটি কী?


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

4
১৯৮০ এবং 90 এর দশকের গোড়ার দিকে বিভিন্ন ব্র্যান্ড ওয়ার্কস্টেশনে সি সংকলক, সরঞ্জাম ইত্যাদির সাথে নিজস্ব ইউনিক্সের মতো পরিবেশ ছিল ... যা একে অপরের থেকে কিছুটা আলাদা ছিল। জিসিসি উত্সের সাহায্যে আপনি এই প্ল্যাটফর্মগুলির মধ্যে একটিতে সিসির প্রাথমিক সংকলন করতে পারেন এবং তারপরে একটি নির্দিষ্ট পয়েন্টের জন্য আরও কম-বেশি চেক করতে নিজে কয়েকবার জিসিসি সংকলন করতে পারেন।
পল

উত্তর:


100

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

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

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


ওহ, আপনি যে দ্বিতীয় নিবন্ধটি লিঙ্ক করেছেন তা অত্যন্ত চালাক is
পোনকডুডল

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

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

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

51

মূলত এটি কিছু সংসদীয় ভাষায় লেখা হয়েছিল তখন এটি নিজেই কুকুর খেতে শুরু করে।


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

19
আমি যদিও শব্দটি বুটস্ট্র্যাপ ছিল।
মার্টিন ইয়র্ক

7
হাহাহা আমি কয়েক সপ্তাহ আগে এটি পড়েছিলাম এবং ভেবেছিলাম যে আপনি এই অভিব্যক্তিটি নিয়ে মনে মনে ভাবছেন, এটি স্ট্যান্ডার্ড ছিল না was গুড শো স্যার! en.wikipedia.org/wiki/Eating_your_own_dog_food

3

এই স্পষ্টত শুধু একটি খুব রুক্ষ সূচক, আমি এই দ্রুত পাওয়া তালিকা উপরgcc-5.1.0-src/gcc/ ডিরেক্টরির আকর্ষণীয়। এই ডিরেক্টরিতে নিজেই জিসিসির মূল উত্স রয়েছে (রানটাইম লাইব্রেরি ব্যতীত)।

এখানে শীর্ষস্থানীয় ফাইল-গণনা রয়েছে (100 এরও বেশি) সি এবং সি ++ ফাইলগুলির দ্বারা প্রাধান্য প্রাপ্ত এক্সটেনশন দ্বারা গোষ্ঠীভুক্ত ।

দয়া করে মনে রাখবেন যে আজকাল GCCজিএনইউ সংকলক সংগ্রহকে বোঝায় কেবল জিএনইউ সি সংকলক নয়।

.3.৩ জিসিসি সাব-ডিরেক্টরি

জিসিসি ডিরেক্টরিতে অনেকগুলি ফাইল রয়েছে যা জিসিসির সিস উত্সগুলির অংশ, কনফিগারেশন এবং বিল্ড প্রক্রিয়ার অংশ হিসাবে ব্যবহৃত অন্যান্য ফাইল এবং ডকুমেন্টেশন এবং একটি টেস্টুয়েট সহ সাব-ডাইরেক্টরিগুলি।

তথ্যসূত্র: https://gcc.gnu.org/onlinesocs/gccint/gcc-Directory.html

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