CompCertโครงการเป็นคอมไพเลอร์ C การวิจัยที่ไม่ได้เขียนใน C หรือ C ++ แต่ใน Ocaml และ Coq
สังเกตว่า C ++ เคยถูกแปลเป็น C (ในCfront ) ตอนนี้คุณสามารถใช้GCC Front-end เพื่อGimpleจากนั้นถ่ายโอน Gimple ไปยังฐานข้อมูลบางส่วนแล้วเขียน Gimple ไปยังนักแปลแอสเซมเบลอร์ของคุณ แต่เหตุผลทางกฎหมาย ( ข้อยกเว้นไลบรารีรันไทม์ของ GCC ) จำเป็นต้องมีคอมไพเลอร์เป็นโอเพนซอร์ส สอบถามรายละเอียดกับทนายความของคุณฉันไม่ใช่ทนายความ รุ่นเก่าของ GCC ได้รับการเขียนใน C (+ ภาษาเฉพาะโดเมนหลายภาษา) พร้อมกับส่วนหน้าสำหรับ C ++ บางตัว OpenWatcomอาจเป็นคอมไพเลอร์ C ++ ที่เขียนใน C (ฉันปล่อยให้คุณตรวจสอบ)
แหล่งที่มาของ Compcert นั้นฟรีสำหรับวัตถุประสงค์ทางวิชาการและการวิจัย หากคุณต้องการใช้มันอุตสาหกรรม (และถูกกฎหมาย) คุณต้องได้รับใบอนุญาตจาก Absint
ดูเพิ่มเติมนี้และว่าคำตอบสองคำถามที่เกี่ยวข้อง
ถ้าฉันถูกมอบหมายให้ 2020 เขียนคอมไพเลอร์ C (หรือ C ++) ตั้งแต่เริ่มต้น (ทำงานบน Linux บางทีคอมไพเลอร์ข้าม ) ฉันอาจจะไม่เขียนใน C ++ ฉันจะพิจารณาการเขียนโดยใช้Ocaml , Goหรือสนิม และฉันสามารถใช้มันกับFrama-C ได้หากได้รับอนุญาต หากจำเป็นต้องใช้รหัสใน C หรือ C ++ ฉันจะรหัสห้องสมุดเก็บขยะสำหรับมันอาจจะมีชั้นคงอยู่ -มีประโยชน์มากสำหรับการเพิ่มประสิทธิภาพโปรแกรมทั้งหมด - แล้วฉันจะพิจารณาวิธีmetaprogramming (สร้างรหัส C หรือ C ++ ส่วนใหญ่ของ คอมไพเลอร์ด้วยเครื่องมือ ad-hoc ของฉันบางทีBismonหรือRefPerSys ถ้าได้รับอนุญาต)
คุณสามารถค้นหาคอมไพเลอร์ C บางตัว (มากกว่าหรือน้อยกว่าโอเพนซอร์ส) ที่เขียนใน Common LISP หรือ Python (เช่นShivyCหรือnqcc ) ดูที่ZetaCด้วย
โปรดสังเกตว่าGCCรุ่นล่าสุดนั้นไม่มีการเข้ารหัสทางเทคนิคในภาษา C ++ ล้วน แต่เป็นภาษาเฉพาะของโดเมนที่เกี่ยวข้องกับ GCC หลายสิบภาษา (หลายแห่งเป็นภาษาทัวริงสมบูรณ์ ) ดูโครงการGCC MELTเก่าของฉัน
ฉันจะไม่แปลกใจถ้าใน GCC รุ่นอนาคตตัวแปลภาษา PythonหรือGuileบางตัวจะถูกฝังอยู่ภายใน (ตัวอย่างเช่นแทนที่ของ Pass manager ของ GCC)
ดูโครงการMILEPOST GCCด้วย