การประเมินผลบางส่วนเป็นกรอบแนวคิดที่เกี่ยวข้องกับล่ามและผู้แปล
เราสามารถสร้างข้อความทั่วไปเกี่ยวกับประสิทธิภาพของการแปลรหัสและการแปลรหัสได้หรือไม่?
ภาษาการเขียนโปรแกรมเป็นข้อมูลจำเพาะ (เขียนในบางรายงานเช่นR5RSหรือn1570 ) พวกเขาจะไม่ได้ซอฟแวร์จึงไม่ได้ทำให้ความรู้สึกที่จะพูดถึงผลการดำเนินงาน แต่บางภาษาโปรแกรมที่อาจจะมีการใช้งานหลายคนรวมทั้งล่ามและคอมไพเลอร์
แม้ในภาษาที่รวบรวมแบบดั้งเดิม (นั่นคือภาษาที่มีการใช้งานมักจะรวบรวม) เช่น C บางส่วนก็มักจะตีความ ยกตัวอย่างเช่นสตริงควบคุมรูปแบบของprintf (ที่กำหนดไว้ในมาตรฐานซี) เป็นมักจะ "ตีความ" (โดยห้องสมุดมาตรฐาน Cซึ่งมีprintf
ฟังก์ชั่นการใช้เทคนิคการขัดแย้งตัวแปร) แต่บางคอมไพเลอร์ (รวมGCC ) จะสามารถ -in จำกัดเฉพาะ กรณี - เพื่อปรับให้เหมาะสมและ "คอมไพล์" ลงในการโทรระดับล่าง
และการใช้งานบางอย่างแม้ใน "ล่าม" กำลังใช้เทคนิคการรวบรวม JIT (ดังนั้นจึงต้องสร้างรหัสเครื่องตอนรันไทม์ ) กันตัวอย่างที่ดีคือluajit การใช้งานอื่น ๆ (เช่น Python, Ocaml, Java, Parrot, Lua) กำลังแปลซอร์สโค้ดเป็นbytecodeซึ่งจะถูกแปลความหมายนั้น
SBCLเป็นคอมไพเลอร์ "เสียงกระเพื่อม" ทั่วไปซึ่งแปลการโต้ตอบREPLทุกครั้ง(และการโทรไปยังeval
ฯลฯ ... ) เป็นรหัสเครื่อง ดังนั้นคุณรู้สึกว่ามันเป็นล่าม การใช้งาน JavaScript ส่วนใหญ่ในเบราว์เซอร์ (เช่นv8 ) ใช้เทคนิคการรวบรวม JIT
ในคำอื่น ๆ ความแตกต่างระหว่างล่ามและคอมไพเลอร์เลือนมาก (ที่จริงมีความต่อเนื่องระหว่างทั้งสอง) และจวนพูดมากที่สุดภาษาการเขียนโปรแกรมการใช้งานที่มีมักจะทั้งล่ามและคอมไพเลอร์ (อย่างน้อยรหัสไบต์) แง่มุม
การติดตั้งอาจเร็วหรือช้าอย่างอิสระจากการใช้เทคนิค "คอมไพเลอร์" หรือ "ล่าม" ส่วนใหญ่
บางลักษณะภาษาชอบแนวทางการตีความ (และสามารถรวบรวมได้อย่างมีประสิทธิภาพผ่านการวิเคราะห์โปรแกรมทั้งหมด )
สำหรับปัญหาบางประเภทการออกแบบซอฟต์แวร์ด้วยวิธีการเขียนโปรแกรมแบบเมตาเอาต์กราฟิคนั้นคุ้มค่าและให้ความเร็วที่สำคัญ คุณสามารถจินตนาการว่าได้รับการป้อนข้อมูลบางอย่างโปรแกรมของคุณสร้างรหัสพิเศษแบบไดนามิกเพื่อประมวลผล สิ่งนี้อาจเป็นไปได้ด้วย C หรือ C ++ (อาจใช้ไลบรารี JIT บางตัวหรือสร้างรหัส C บางส่วนรวบรวมเป็นปลั๊กอินที่ได้รับการโหลดแบบไดนามิก)
ดูเพิ่มเติมที่เกี่ยวข้องนี้คำถามเกี่ยวกับงูหลามและว่า