একটি সংকলন লক্ষ্য কি?


17

আমি এই শব্দটি শুনছি এবং সমস্ত গুগল অনুসন্ধান আমাকে সংকলকগুলির নিবন্ধগুলিতে নিয়ে যায়। আমি এই শব্দটির সংকলন লক্ষ্যটির অর্থ কী তা বুঝতে চাই: |

আপডেট: কিছু প্রসঙ্গে: আমি শুনেছি যে ওয়েব এসেম্বলি হ'ল সি, সি ++, মরিচ ইত্যাদির মতো অন্যান্য ভাষার জন্য একটি সংকলন লক্ষ্য heard


আমি আপনাকে কম্পাইলারগুলিতে নিবন্ধগুলি পড়তে পরামর্শ দেব।

4
সংকলকগুলির নিবন্ধগুলি ধরে নেওয়া হয়েছে যে আপনি এটি ইতিমধ্যে জানেন। এটি একটি যুক্তিসঙ্গত প্রশ্ন।
কার্ল বিলেফেল্ট

আমি উইকিপিডিয়া-স্টাইলের নিবন্ধগুলি সম্পর্কে আরও ভাবছিলাম। এবং আমি প্রশ্নের যুক্তিসঙ্গত সম্মত। এটি কেবল একটি পরামর্শ ছিল, সমালোচনা নয়।

4
প্রশ্নটি যুক্তিসঙ্গত, তবে খারাপভাবে লেখা হয়েছে। "টার্গেট" শব্দের বিভিন্ন অর্থ হতে পারে, সুতরাং আমি যেখানে আপনি এটি শুনেছেন বা এটি সম্পর্কে পড়েন সেখানে একটি রেফারেন্স বা আরও প্রসঙ্গে দেওয়ার পরামর্শ দেব।
ডক ব্রাউন

@ ডকব্রাউন আমি এটি অনেক প্রসঙ্গে শুনেছি, তবে অতি সম্প্রতি ওয়েব অ্যাসেমব্লিকে অন্যান্য ভাষার জন্য একটি সংকলন লক্ষ্য হিসাবে প্রসঙ্গে।
ScionOfBytes

উত্তর:


17

সংকলকরা হ'ল সংক্ষেপে অনুবাদকরা এক ভাষাতে ইনপুট নেন এবং অন্যটিতে আউটপুট উত্পাদন করেন। উদাহরণস্বরূপ, আইফেল সফ্টওয়্যার সংকলক আইফেল-ভাষা ইনপুট নেয় এবং সি জিসিসি ইনটেলের সি-ল্যাঙ্গুয়েজ ইনপুট পড়ায় এবং x86 অ্যাসেমবিলি তৈরি করে। ইন্টেলের জন্য জিএএস এসেম্বলার x86 সমাবেশ নেয় এবং x86 অবজেক্ট কোড তৈরি করে। এই তিনটি জিনিসই প্রযুক্তিগতভাবে সংকলক।

বিন্যাস নির্বিশেষে, একটি সংকলক দ্বারা পঠিত ইনপুটটিকে উত্স বলা হয় এবং আউটপুটকে লক্ষ্য বলে । পরবর্তী শব্দটি এর একটি সংজ্ঞা থেকে নেওয়া হয়েছে, "উদ্দেশ্যে ফলাফল"।

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

একটি সংকলকটির লক্ষ্যটি যেখানে এটি সঞ্চালিত আর্কিটেকচারের মতো হওয়ার দরকার নেই, এবং যেখানে ঘটেছে সেগুলির ক্ষেত্রে প্রোগ্রামটিকে ক্রস-সংকলক বলা হয় । (উদাহরণস্বরূপ, এআরএম অ্যাসেমব্লিতে সি সংকলন করতে x86 সিস্টেমে চালনার জন্য জিসিসি তৈরি করা যেতে পারে))

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


2
পার্শ্ব নোট হিসাবে, উল্লেখ করা উচিত যে এই শব্দটি বিল্ড সিস্টেমের প্রেক্ষাপটে আরও সাধারণ আকারে ব্যবহৃত হয় - একটি লক্ষ্য কোনও বিল্ড স্টেপ থেকে আউটপুট, যা সংকলন ক্রিয়া হতে হবে না (উদাহরণস্বরূপ) ইনস্টলার তৈরি করা)।
বার্তোসকেপিপি

2
সংকলকগুলি ফিল্টার নয় অনুবাদক।

1
@Birfl। স্পষ্টত। "টিআর" অর্থ অনুবাদ করা, ফিল্টার নয়। ফিল্টারগুলি অনুবাদক নয়, এটি কেবল স্পষ্ট।

2
@ বার্ফল: আমি উইকিপিডিয়া দিয়ে যাই না। শুধু অন্য এসএসআই থেকে একটি স্ট্রিম উত্পাদন কিছুই। ফিল্টার এবং অনুবাদকদের মধ্যে পার্থক্য খুব সুবিদিত। একটি ছদ্মবেশী উপর নির্ভর করে একটি ফিল্টার অন্তর্ভুক্ত / বাদ দেয়। এটি রূপান্তর করে না। সমান দ্বারা পূর্ণসংখ্যার একটি তালিকা ফিল্টার? এবং আপনি অপরিবর্তিত এমনকি পূর্ণসংখ্যার পেতে। ইনক ব্যবহার করে একই তালিকার অনুবাদ করুন এবং আপনি মূল তালিকার একটি রূপান্তরিত সংস্করণ পাবেন।

1
"ফিল্টার" শব্দটি ব্যতীত আপনার সংকলনের অ্যাকাউন্টটি ঠিক আছে।

4

অনুবাদে, ভাষাটি ইংরেজির মতো প্রাকৃতিক ভাষা, বা সি-এর মতো কোনও কৃত্রিম ভাষা হোক না কেন, আমরা একটি অনুবাদ সিস্টেমের ইনপুট এবং আউটপুট সম্পর্কে কথা বলার জন্য পরিভাষা উত্স এবং লক্ষ্য ব্যবহার করি । প্রাকৃতিক ভাষার অনুবাদে, সিস্টেমটি হ'ল সক্ষম মস্তিষ্ক যা দুটি ভাষার মধ্যে অনুবাদ করতে সক্ষম। প্রোগ্রামিং ভাষায়, এটি একটি সংকলক।

সুতরাং, একটি সংকলকটির উত্স হ'ল প্রোগ্রামিং ল্যাঙ্গুয়েজ (সি), লক্ষ্যটি বাইটকোড (মেশিন-স্তর নির্দেশাবলী)। আমরা প্রায়শই সংকলনটিতে লক্ষ্য ব্যবহার করি কারণ বিভিন্ন সিস্টেমে (সিপিইউ আর্কিটেকচার) বিভিন্ন নির্দেশনা সেট থাকে, যেমন এআরএম, এমআইপিএস ইত্যাদি The


0

ওয়েবএজেম্বি সর্বশেষ এবং দুর্দান্ত কিছু, যা বাইনারি ফর্ম্যাটে সি / সি ++ কোডকে রূপান্তর করে।

  • ওয়েবঅ্যাসাব্ল্যাশনের লক্ষ্য সাধারণ হার্ডওয়ারের সুযোগ নিয়ে দেশীয় গতিতে কার্যকর করা। এটি ওয়েব প্ল্যাটফর্মের সাথে সংহত করার জন্য নকশাকৃত।

এখানে লিঙ্কটি দেওয়া আছে যেখানে আপনি যে কোনও একটি অ্যাপ্লিকেশন দেখতে পারবেন, এটি মেশিন কোডে সাধারণ ফ্যাক্টরিয়াল প্রোগ্রামটিকে কত দ্রুত রূপান্তরিত করে।

এই জানোয়ারটি দেখুন, https://godbolt.org/

অ্যাসেম্বলি দেখার জন্য আপনি এই নমুনা প্রোগ্রামটি সেই সাইটে চালাতে ব্যবহার করতে পারেন।

# include<stdio.h>

int square(int num) {
    return num * num;
}

int main() {
    int res = square(4);
    printf("%d\n",res);
  return 0;
}
  • একটি সংকলন লক্ষ্য হিসাবে পরিবেশন করার জন্য একটি পোর্টেবল, আকার এবং লোড-টাইম-দক্ষ বাইনারি ফর্ম্যাটটি সংজ্ঞায়িত করুন যা মোবাইল এবং আইওটি সহ প্ল্যাটফর্মের বিস্তৃত পরিসরে উপলব্ধ সাধারণ হার্ডওয়্যার সক্ষমতার সুযোগ নিয়ে দেশীয় গতিতে সম্পাদন করতে সংকলিত হতে পারে।

হোস্ট এবং লক্ষ্য সম্পর্কে কিছু প্রাথমিক তথ্য, কীভাবে প্রোগ্রামিং ভাষাটি 10101010 তে অনুবাদ করা হয়।

host=>pc :(windows, iOS, Linux, zOS, Solaris..etc)
target=>CPUhardware: (Intel x86, ARM, PowerPC, etc)
  1. জিসিসি সি / সি ++ কোডটিকে অ্যাসেম্বলি কোডে রূপান্তর করে। "এসেম্বলার" নামক একটি সরঞ্জাম এসেম্বলি কোডটিকে মেশিন কোডে রূপান্তরিত করে এবং "লিঙ্কার" নামক একটি সরঞ্জাম একাধিক মেশিন-কোড ফাইলগুলিকে একটি একক এক্সিকিউটেবল (উইন্ডোজ এর অধীনে .EXE) ফাইলে সংযুক্ত করে। এই সংকলকগুলির বেশিরভাগই আপনাকে ফলস্বরূপ এসেম্ব্লার কোডটি একটি ফাইলে লেখার অনুমতি দেয় যাতে আপনি এসেম্বলারের কোডটি দেখতে বা এটি সংশোধন করতে পারেন।

  2. এসেম্বলার এবং লিঙ্কারটি সরঞ্জাম চেইনের একটি অংশ যার অর্থ তারা সাধারণত সংকলকটির সাথে একত্রে সরবরাহ করা হয়।

  3. কিছু সংকলক (মাইক্রোসফ্টের মতো) তবে সরাসরি সি / সি ++ কোডটিকে মেশিন ল্যাঙ্গুয়েজে রূপান্তর করে যাতে আর কোনও এসেম্বলারের প্রয়োজন হয় না। এই সংকলকগুলির মধ্যে অনেকগুলি এসেম্বলার কোড তৈরি করতে সক্ষম হয় না তাই আপনি কোনও ফাইলে এসেম্বলার কোডটি লিখতে পারবেন না।

যাইহোক, এমন কি সংকলক রয়েছে (সি / সি ++ এর জন্য নয়, তবে অন্যান্য প্রোগ্রামিং ভাষার জন্য) সরাসরি একটি .EXE ফাইল তৈরি করে তাই কোনও লিঙ্কারের প্রয়োজন নেই।

ওয়েবঅ্যাসাব্ল্যাস: https://github.com/WebAsorses/design

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