Martin-Löf tipi teoride, yani Coq / Agda'da resmileştirilmiş doğrulanmış derleyicilerle ilgileniyorum. Şu anda küçük bir oyuncak örneği yazdım. Böylece optimizasyonlarımın doğru olduğunu kanıtlayabilirim. Örneğin, sıfır ile yapılan ilaveler ortadan kaldırılabilir, yani "x + 0" gibi ifadeler.
Düzenli bir derleyici ile gerçekleştirilmesi zor, iyi bir örnek olacak optimizasyonlar var mı? Bir programın düzenli bir derleyici ile gerçekleştirilmesi mümkün olmayan optimizasyonlara izin veren bazı özelliklerini kanıtlamak mümkün müdür? (yani bir teorem kanıtlayıcıyla mümkün olan çıkarım olmadan)
Fikir ve örneklerle ve ayrıca konuyla ilgili referanslarla ilgilenirim.
İlgili bir soru: Derleyici doğruluk kanıtları
edit: Tsuyoshi güzel yorumlarda koymak gibi: Ben bir derleyici (demek) C yazılırsa uygulamak zor ama bir derleyici (demek) Coq yazılmış ise uygulamak daha kolay optimizasyon teknikleri arıyorum. Agda C'yi derlediğinden (haskell aracılığıyla) Agda'da C de mümkün olan her şeyi yapmak mümkündür. Muhtemelen Coq / Agda gibi teorem kanıtlayıcıların tek faydası derleyicinin ve optimizasyonların doğrulanabilmesidir.
edit2: Vijay DI tarafından önerildiği gibi şimdiye kadar okuduğum şeyi yaz. Ben esas olarak INRIA'daki Xavier Leroy ve CompCert projesine odaklandım (bence iyi okunan 80 sayfalık bir kağıt var). İkinci bir ilgi Anton Setzer'in interaktif programlarla ilgili çalışmasıydı. Belki de çalışmaları IO programları ve IO programlarının bisimülasyonu ile ilgili özellikleri kanıtlamak için kullanılabilir. Sewell'den bahsettiğiniz için teşekkürler. ICFP'de "Ormanda masallar" konuşmasını duydum ve belki de gazetelerinden 2-3 tanesini okudum. Ama ben onun çalışmalarına ve yazarlarına özel bakmadım.
Derleyicileri optimize etmeye ilişkin makaleleri nereden başlatacağımı veya arayacağımı henüz bulamadım; örneğin, hangi optimizasyonların doğrulanmış bir derleyici ayarında bakmak ilginç olurdu.