ক্রস কম্পাইলারের টি ডায়াগ্রাম


9

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

প্রথমে কিছু স্বরলিপি। দ্বারা LSN= এখানে চিত্র বর্ণনা লিখুন আমি বলতে চাই ভাষার জন্য একটি সংকলক L ভাষায় লেখা S যে আউটপুট ভাষা / মেশিন কোড উত্পাদন করে N। এটি একটি সমাধিস্টোন বা টি-ডায়াগ্রাম

একটি সংকলক সংকলন

  1. ধরুন আমাদের কাছে মেশিন এন এর জন্য প্রয়োগকারী ভাষার এস জেনারেটিং কোডে একটি নতুন ভাষার এলের জন্য ক্রস সংকলক রয়েছে have

    LSN=
    এলএসএন এর জন্য টি-ডায়াগ্রাম

  2. মনে করুন আমাদের কাছে একটি বিদ্যমান এস সংকলক মেশিন এম এর জন্য মেশিন এম প্রয়োগকারী কোডটিতে চলছে:

    SMM=
    এসএমএম এর জন্য টি-ডায়াগ্রাম

  3. এলএমএন উত্পাদন করতে এসএমএমের মাধ্যমে এলএসএন চালান

সংকলক নির্মাণ

LMN=LSN+SMM
এলএমএন = এলএসএন + এসএমএম এর টি-ডায়াগ্রাম


আমি কিছু টি-ডায়াগ্রাম যুক্ত করেছি, যা আসলে ঘটছে তা বোঝার পক্ষে এটি আরও সহজ করা উচিত। আশা করি কেউ এগুলি উপস্থাপনের আরও ভাল উপায় জরিমানা করতে পারেন।
ডেভ ক্লার্ক

উত্তর:


11

এই ডায়াগ্রামগুলি (যা আপনি আপনার প্রশ্নের মূল সংস্করণ থেকে বাদ দিয়েছিলেন) এই ধরণের প্রশ্ন বোঝার জন্য গুরুত্বপূর্ণ। আসুন শেষ টি-চিত্রটি দেখুন।

এখানে চিত্র বর্ণনা লিখুন

প্রথম টি এস তে লেখা এল থেকে এন পর্যন্ত একটি সংকলক বর্ণনা করে

দ্বিতীয় টি এম থেকে লিখিত এস থেকে এম পর্যন্ত সংকলক বর্ণনা করে (বা এম তে চলমান)। এটি আপনার সংকলক সংকলক হবে

দ্বিতীয় টি প্রথম টিতে প্রয়োগ করা প্রথম টি সংকলন করে যাতে এটি মেশিন এম তে চলে The ফলস্বরূপ ফলস্বরূপ এল থেকে এন পর্যন্ত মেশিন এম তে চলমান একটি সংকলক is

দ্বিতীয় টি মেশিন এম-তেও চালিত হয় তা হ'ল আপনি যে মেশিনটিতে সংকলকটি চালাচ্ছেন তার উপর একটি ক্রস সংকলক ব্যবহার না করে আপনি যে সংকলকটি চালাবেন তা হ'ল (নীচের এমটি ভিন্ন হলে কেসটি হবে) )।


5

এর অর্থ হল যে আমরা এসএমএম দিয়ে এলএসএন সংকলন করি, এটি এসএমএমের মাধ্যমে এলএসএন এর সোর্স কোড চালায়।

এসএমএম যখন কোনও উত্স কোড সংকলন করে, এটি মেশিন এম এর জন্য একটি এক্সিকিউটেবল উত্পাদন করে, সুতরাং যখন আমরা এসএমএম দিয়ে এলএসএন সংকলন করি তখন আমরা এলএমএন পাই - একটি এক্সিকিউটেবল, যা মেশিন এন এর এক্সিকিউটেবল উত্পাদন করার জন্য মেশিন এমতে এল উত্স ফাইলগুলি সংকলন করে

সম্ভবত এটি একটি উপমা দিয়ে বোঝা সহজ হবে। অনুমান করুন আমাদের একটি সি সংকলক রয়েছে ccযা ফোর্টরানে লেখা আছে, যা এআরএম কোড উত্পন্ন করে। ধরুন fcআমাদের x64 কম্পিউটারে একটি ফোর্টরান সংকলকও রয়েছে। যদি আমরা ccসোর্স কোডটি সংকলন করি তবে আমরা fcএমন একটি প্রোগ্রাম পাই যা এক্স 64 এ চলে, সি প্রোগ্রামগুলি সংকলন করে, তবে এআরএমের জন্য এক্সিকিউটেবল উত্পাদন করে।


0

এটি সহজ করতে ....

দ্রষ্টব্য: মনে রাখবেন কম্পাইলার কেবল নিম্ন স্তরের ভাষায় চলতে পারে।

1 ম ডায়াগ্রামে, সংকলকটি এইচএলএল (হাই লেভেল ল্যাং) এ লেখা হয়েছে যাতে কোনও মেশিনে চালিত করতে কম্পাইলারের বাস্তবায়ন ল্যাং এলএলএল হতে হবে।

সুতরাং, ২ য় ডায়াগ্রামে, সংকলকটির বাস্তবায়ন ল্যাংটি স্ব-আবাসিক সংকলকটিতে চালিত হয় যাতে লক্ষ্য কোডটি তার নিজের মেশিনে চালানো যায়।

অবশেষে, উভয়কে একত্রিত করে সংকলক ল্যাং - এম সহ একটি মেশিনে চলে

ইনপুট ল্যাং - এল

আউটপুট ল্যাং - এন

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