CompCert projesi bir araştırma C ++ C veya C yazılı değil derleyici, ama daha ocaml ve Coq içindedir.
C ++ 'ın C'ye çevrildiğini gözlemleyin ( Cfront'ta ). Şimdi Gimple için GCC ön ucunu kullanabilir , sonra Gimple'ı bir veritabanına dökebilir, ardından montajcı çevirmeninize bir Gimple yazabilirsiniz. Ancak yasal nedenler ( GCC çalışma zamanı kitaplığı istisnası ) böyle bir derleyicinin açık kaynak olmasını gerektirir. Avukatınızdan bilgi isteyin, ben bir avukat değilim. GCC'nin eski varyantları, C ++ 'nın bazı varyantları için bir ön uç ile C (+ alana birkaç farklı dilde) yazılmıştır. OpenWatcom C ile yazılmış bir C ++ derleyicisi olabilir (bunu kontrol etmenizi istiyorum).
Compcert'in kaynağı akademik ve araştırma amacıyla serbestçe kullanılabilir. Endüstriyel (ve yasal olarak) kullanmak istiyorsanız, Absint'ten bir lisans almanız gerekir.
Ayrıca bakınız bu ve bu iki ilgili soruların yanıtlarını.
2020'de sıfırdan bir C (veya C ++) derleyicisi yazmakla görevlendirildiysem (Linux'ta çalışıyor, belki bazı çapraz derleyiciler ) Muhtemelen C ++ 'da yazmayacağım. Ocaml , Go veya Rust kullanarak yazmayı düşünürdüm . İzin verilirse Frama-C'ye dayandırabilirim . C veya C ++ ile kodlamak gerekirse, öncelikle bunun için bir çöp toplayıcı kütüphanesi kodlar , muhtemelen bazı kalıcılık katmanı - tüm program optimizasyonu için çok yararlı - ve sonra bir metaprogramlama yaklaşımı (C veya C ++ kodunun çoğunu üreterek) düşünürdüm derleme araçlarımla, belki Bismon veya RefPerSys izin veriliyorsa).
Common Lisp veya Python'da (örn. ShivyC veya nqcc ) kodlanmış bazı (daha fazla veya daha az açık kaynaklı) C derleyicilerini bulabilirsiniz . ZetaC'a da bakınız .
GCC'nin son sürümlerinin teknik olarak saf C ++ ile kodlanmadığına dikkat edin, GCC'ye dahil olan bir düzine alana özel dil (birçoğu Turing-complete ). Ayrıca bkz. Eski GCC KİTİM . projem.
GCC'nin gelecekteki sürümlerinde, bazı Python veya Guile yorumlayıcılarının içine gömüleceği (örneğin, GCC'nin geçiş yöneticisinin yerine geçmesi) .
İçine de bak Milepost GCC projesi.