นี่เป็นคำถามที่น่าสนใจ! เป็นคำตอบของแอนโทนี่แสดงให้เห็นหนึ่งสามารถใช้วิธีการปกติในการรวบรวมภาษาทำงานที่ไม่ได้ขึ้นอยู่กับคุณให้มีล่ามในการประเมินเงื่อนไขสำหรับประเภทการตรวจสอบ
นี่คือวิธีการที่ดำเนินการโดย Edwin Brady ทีนี้นี่เป็นแนวคิดที่ง่ายขึ้น แต่มันจะเสียข้อได้เปรียบด้านความเร็วของการรวบรวมเมื่อทำการตรวจสอบประเภท สิ่งนี้ได้รับการกล่าวถึงในหลาย ๆ มารยาท
ก่อนอื่นเราสามารถนำเครื่องเสมือนจริงมาใช้ซึ่งจะรวบรวมเงื่อนไขต่าง ๆ เป็นรหัสไบต์ทันทีเพื่อทำการตรวจสอบการแปลง นี้เป็นผู้อยู่เบื้องหลังความคิดที่vm_compute
นำมาใช้ใน Coq โดยเบนจามิน Gregoire เห็นได้ชัดว่ามีวิทยานิพนธ์นี้โดย Dirk Kleeblatt ในเรื่องที่แน่นอนนี้ แต่ลงรหัสเครื่องจริงมากกว่าเครื่องเสมือน
สองหนึ่งอาจสร้างรหัสในภาษาธรรมดามากขึ้นซึ่งเมื่อดำเนินการตรวจสอบการแปลงทั้งหมดที่จำเป็นในการพิมพ์ - ตรวจสอบโปรแกรมพิมพ์ขึ้นอยู่กับ ซึ่งหมายความว่าเราสามารถใช้ Haskell พูดเพื่อตรวจสอบโมดูล Agda รหัสสามารถรวบรวมและเรียกใช้และถ้ายอมรับรหัสในภาษาประเภทพึ่งพาสามารถสันนิษฐานว่าเป็นประเภทที่ดี (ยกเว้นการใช้งานและข้อผิดพลาดคอมไพเลอร์) ผมเคยได้ยินวิธีนี้แนะนำโดยครั้งแรกMathieu Boesflug
* * * *
ocamlopt
หรือ GHC :-) (นี่คือวิธี Coq และ Agda โดยวิธี.)