ความแตกต่างนั้นมีความหมายลึกซึ้งเพราะภาษาที่แปลแล้ว จำกัด ความหมายในวิธีที่ภาษาที่ตีความไม่จำเป็น เทคนิคการสื่อความหมายบางอย่างนั้นยากมาก
รหัสที่ตีความได้สามารถทำสิ่งต่าง ๆ เช่นสร้างรหัสในขณะใช้งานและให้การมองเห็นโค้ดนั้นเป็นการผูกคำศัพท์ของขอบเขตที่มีอยู่ นั่นเป็นตัวอย่างหนึ่ง อีกประการหนึ่งคือล่ามสามารถขยายได้ด้วยรหัสแปลซึ่งสามารถควบคุมวิธีการประเมินรหัส นี่เป็นพื้นฐานสำหรับ "fexprs" Lisp โบราณ: ฟังก์ชั่นที่เรียกว่ามีข้อโต้แย้งที่ไม่ได้ประเมินค่าและตัดสินใจว่าจะทำอย่างไรกับพวกเขา (มีการเข้าถึงแบบเต็มไปยังสภาพแวดล้อมที่จำเป็นเพื่อเดินโค้ด ในภาษาที่รวบรวมคุณไม่สามารถใช้เทคนิคนั้นได้ คุณใช้มาโครแทน: ฟังก์ชั่นที่ถูกเรียก ณ เวลารวบรวมด้วยข้อโต้แย้งที่ไม่ได้ประเมินค่าและแปลรหัสแทนการตีความ
การใช้งานภาษาบางอย่างสร้างขึ้นโดยใช้เทคนิคเหล่านี้ ผู้เขียนปฏิเสธการรวบรวมว่าเป็นเป้าหมายสำคัญและยอมรับความยืดหยุ่นเช่นนี้
การตีความหมายจะเป็นประโยชน์ในฐานะเทคนิคในการบูตคอมไพเลอร์ สำหรับตัวอย่างที่เป็นรูปธรรมดูที่ CLISP (การใช้งาน Common LISP ที่เป็นที่นิยม) CLISP มีคอมไพเลอร์ที่เขียนขึ้นเอง เมื่อคุณสร้าง CLISP คอมไพเลอร์นั้นจะถูกตีความในระหว่างขั้นตอนการสร้างต้น มันถูกใช้ในการรวบรวมตัวเองและเมื่อมีการรวบรวมแล้วการรวบรวมจะทำโดยใช้คอมไพเลอร์รวบรวม
หากไม่มีล่ามเคอร์เนลคุณจะต้องบูตด้วย Lisp ที่มีอยู่เช่น SBCL
ด้วยการตีความคุณสามารถพัฒนาภาษาตั้งแต่เริ่มต้นอย่างแน่นอนเริ่มต้นด้วยภาษาแอสเซมบลี พัฒนา I / O พื้นฐานและรูทีนหลักจากนั้นเขียนภาษาเครื่องที่ยังคงอยู่ เมื่อคุณมีการประเมินผลให้เขียนเป็นภาษาระดับสูง เคอร์เนลรหัสเครื่องทำการประเมินผล ใช้สิ่งอำนวยความสะดวกนี้เพื่อขยายไลบรารีด้วยรูทีนอื่น ๆ อีกมากมายและเขียนคอมไพเลอร์ด้วย ใช้คอมไพเลอร์เพื่อคอมไพล์รูทีนเหล่านั้นและคอมไพเลอร์เอง
การแปลความหมาย: หินก้าวสำคัญในเส้นทางที่นำไปสู่การรวบรวม!