เครื่องเสมือนเช่น JVM เป็นโปรแกรมที่รับเป็นอินพุตโดยปกติไฟล์ชุดคำสั่งง่าย ๆ (ซึ่งมักจะง่ายต่อการแปลงเป็นคำสั่ง CPU จริง) และรวบรวมและเรียกใช้เป็นคำสั่ง CPU แบบดั้งเดิม (โดยปกติจะใช้ คอมไพเลอร์ตามความต้องการเช่น HotSpot หรือ JIT)
มันเป็นชั้นของสิ่งที่เป็นนามธรรม โดยปกติแล้วการใช้งานชุดคำสั่งพอร์ตของ VM จะง่ายกว่าการใช้สถาปัตยกรรมตัวประมวลผลที่แตกต่างกันเนื่องจากมีความคล้ายคลึงกันหลายประการ นอกจากนี้ยังง่ายกว่ามากในการพอร์ตภาษาการเขียนโปรแกรมที่แตกต่างกันไปยังคำสั่ง VM เนื่องจากจะเน้นไปที่ภาษาการเขียนโปรแกรมที่ทันสมัยกว่าคำสั่ง CPU ดั้งเดิม เครื่องเสมือนจำนวนมากเช่น JVM และ CLR (.NET) มีคำแนะนำสำหรับการโทรวิธีการเสมือนและการสร้างอินสแตนซ์ของวัตถุ
ลองยกตัวอย่างภาษา เรียกมันว่า MyLanguage เนื่องจากเป็นภาษาโปรแกรมในที่สุดจึงรวบรวมชุดคำสั่งสถาปัตยกรรมซีพียูบางชุดในท้ายที่สุด นั่นหมายความว่าเนื่องจากชุดคำสั่ง Virtual Machine ที่ยืดหยุ่นและเข้ากันได้นั้นยังสามารถรวบรวม MyLanguage ลงในชุดคำสั่งของ VM นั้นได้
มีคำถามเกี่ยวกับประสิทธิภาพอยู่เสมอเนื่องจากคุณอาจต้องแฮ็กวิธีแก้ไขปัญหาบางอย่างในชุดคำสั่ง VM ที่คุณไม่ต้องทำตามปกติ แต่ก็ยังเป็นไปได้