কম্পাইলার এবং ইন্টারপ্রেটার কি সরাসরি সোর্স কোডকে মেশিন কোডে রুপান্তরিত করে? নাকি ভেতরে বিল্টইন অ্যাসেম্বলার দেওয়া থাকে? কম্পাইলার এবং ইন্টারপ্রেটার কীভাবে কাজ করে সেটা জানতে চাই।

asked 10 Oct, 06:25

Sadman%20Shakib's gravatar image

Sadman Shakib
113315

edited 18 Oct, 14:57

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
75618


কম্পাইলার

কোনো কোনো কম্পাইলার কোনো সোর্স ফাইলকে প্রথমে অ্যাসেম্বলিতে রূপান্তর করে পরে অ্যাসেম্বলার দিয়ে মেশিন কোডে রূপান্তর করতে পারে। এটি কম্পাইলারের ওপর নির্ভর করে। জনপ্রিয় কম্পাইলার জিসিসি (GCC, GNU Compiler Collection) এই পদ্ধতিতে কাজ করে। অর্থাৎ জিসিসি কম্পাইলারে বিল্টইন অ্যাসেম্বলার রয়েছে। আবার জাভা কম্পাইলার মেশিন কোড বা অ্যাসেম্বলি কোড কোনোটাই না করে বাইটকোড তৈরি করে যা পরে জাভা ভার্চুয়াল মেশিন (জেভিএম) ইন্টারপ্রেট করে।

এখানে জিসিসি কম্পাইলারের কার্যপদ্ধতি দেখানো হলো।

ছবি: মিডিয়াম ডট কম

জিসিসি নিয়ে বিস্তারিত জানা যাবে এখান থেকে

কম্পাইলার নিজে কোনো এক্সিকিউটেবল (= যে ফাইল এক্সিকিউট করা যায়) তৈরি করতে পারে না। এটি করে লিংকার (linker)। কম্পাইলারের ভেতর লিংকার থাকে।

ইন্টারপ্রেটার

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

কম্পাইলার, ইন্টারপ্রেটার ও লিংকারের উইকিপিডিয়া আর্টিকেল থেকে অনেক কিছু জানা যাবে।
১। কম্পাইলার
২। ইন্টারপ্রেটার
৩। লিংকার

permanent link

answered 18 Oct, 15:54

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
75618

edited 18 Oct, 16:03

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×17

question asked: 10 Oct, 06:25

question was seen: 202 times

last updated: 18 Oct, 16:03