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