ব্যাচের সংকলক কী?


28

আমার সংকলকের কোর্স থেকে আমার নিম্নোক্ত উদ্ধৃতি রয়েছে (গ্রাফ বর্ণের প্রসঙ্গে):

কারণ এটি ধীর, গ্রাফ কালারিং ব্যাচ সংকলকগুলিতে ব্যবহৃত হতে থাকে, লিনিয়ার স্ক্যানটি জেআইটি সংকলকগুলিতে ব্যবহৃত হতে থাকে।

আমি অনলাইনে একটি পরিষ্কার সংজ্ঞা পাইনি। সুতরাং, কোন সংকলকটি ব্যাচের সংকলক হতে পারে?


উত্তর:


42

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

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

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

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


1
এবং পুরানো দিনগুলির প্রশংসকেরা ফিরে এসেছেন যেখানে আপনার প্রোগ্রামটি সংকলন করার জন্য আপনাকে কোনও ব্যাচের কাতারে একটি কাজ জমা দিতে হবে এমন বিন্দুমাত্র ইন্টারেক্টিভভাবে চলবে না
নিউরোমেন্সার

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

1
@dmckee সর্বাধিক যদি সমস্ত ভাষা বাস্তবায়ন না হয় তবে প্রকৃতপক্ষে
ব্যবহারকারী 253751

আরেকটি অস্পষ্টতা: এমএসডিওএস অপারেটিং সিস্টেমগুলির জন্য ব্যাচ সংকলক বলে সরঞ্জামগুলি বিদ্যমান, এই সংকলিত ব্যাচ ফাইলগুলি এক্সিকিউটেবল ফাইলগুলিতে রূপান্তরিত হয় ....
রেক্যান্ডবোনম্যান

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

11

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

ব্যাচ সংকলক এমনটি যা সংকলনের ফলাফলটি যখন কোনও ব্যবহারকারী সংকলনের ফলাফলের জন্য অপেক্ষা না করে থাকে does এটি এমন একটি যা আমরা বলব, পটভূমিতে আরও আধুনিক পরিভাষা ব্যবহার করে।

এটি একটি জেআইটির (জাস্ট-ইন-টাইম) কথোপকথন যা আরও সঠিকভাবে প্রসেসিংয়ের জন্য অতিরিক্ত সময় ব্যয় করার বিলাসিতা ছাড়াই প্রয়োজনীয় সময়ে "লাইভ" করা হয়।

ব্যাচ সংকলনের ধীর গতি এটি দ্বারা চিত্রিত করা যেতে পারে:

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

সূত্র: https://xkcd.com/303/

বা এমনকি এটি:

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

সূত্র: http://dilbert.com/strip/2013-06-22

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