বেশিরভাগ প্রোগ্রামিং ল্যাঙ্গুয়েজ দুটি বিভাগে পড়ে: ব্যাখ্যা করা এবং সংকলিত ভাষা।
একটি কম্পাইল ভাষা একটি দ্বারা অনুবাদ করা হয় কম্পাইলার মধ্যে মেশিন কোড , ভাষা CPU- র সরাসরি ধাপে ধাপে সঞ্চালন করে। অন্যদিকে, একটি দোভাষী ভাষা ভাষা কোড চালানোর জন্য একজন মধ্যস্থতাকারী, একজন অনুবাদক , ব্যবহার করে । দোভাষী নিজেই অন্য একটি প্রোগ্রাম, সাধারণত নিজেই মেশিন কোডে সংকলিত।
পিএইচপি হ'ল ব্যাখ্যাযুক্ত ভাষা। পিএইচপি কোড চালানোর জন্য আপনার একটি পৃথক প্রোগ্রাম প্রয়োজন , কম্পিউটার সরাসরি প্রোগ্রাম চালায় না। এই পৃথক প্রোগ্রাম, পিএইচপি ইন্টারপ্রেটার নিজেই সি তে লেখা হয় in
সি # একটি সংকলিত ভাষা, তবে এটি মেশিন কোডে সংকলিত হয় না। পরিবর্তে, এটি ভার্চুয়াল মেশিনে চালানোর জন্য বিশেষজ্ঞের ভাষা, বাইট কোড, সংকলিত হয়। জাভা এমন একটি সেটআপের আর একটি উদাহরণ। আপনি এটি সংকলন এবং ব্যাখ্যার মধ্যে একটি সংকর হিসাবে দেখতে পেলেন, যেখানে ভার্চুয়াল মেশিনটি দোভাষী। সি # এর জন্য ভার্চুয়াল মেশিন (সিএলআই, বা কমন ল্যাঙ্গুয়েজ অবকাঠামো ) সি ++ তে লেখা আছে।
অন্যান্য উদাহরণগুলি হ'ল:
- পাইথন: পাইথন ইন্টারপ্রেটার পাইথন কোডটি পাইথন বাইটকোডে সংকলন করে, তারপরে বাইটকোডকে ব্যাখ্যা করে। দোভাষী নিজেই সি-তে লেখা থাকে নতুন নতুন বাস্তবায়ন যুক্ত করা হয়েছে, এর মধ্যে একটি সি-র জন্য ব্যবহৃত একই সি এল এলির জন্য অজগরকে সংকলিত করে , যা আয়রন পাইথন বলে , এবং জাভা ভার্চুয়াল মেশিনে চালিত এক, জাইথন । চেনাশোনাটি সম্পূর্ণ করতে পাইথন, পাইপায় (একটি উপসেট) লিখিত একটি পাইথন সংস্করণ রয়েছে ।
- রুবি: রুবি খাঁটি ব্যাখ্যামূলক ভাষা হিসাবে শুরু হয়েছিল তবে সবচেয়ে সাম্প্রতিক সংস্করণটি বাইটকোড ব্যবহারে স্যুইচ করেছে। রুবির জন্যও, এমন একটি প্রকল্প রয়েছে যা আয়রণরবি নামে সি এল এলির সাথে সংকলন করে এবং একটি জাভা ভিএম, জেউরবি-র জন্য ।