Saya tertarik pada kompiler terverifikasi yang diformalkan dalam teori tipe Martin-Löf, yaitu Coq / Agda. Saat ini saya sudah menulis contoh mainan kecil. Dengan demikian saya dapat membuktikan bahwa optimasi saya benar. Misalnya penambahan dengan nol dapat dihilangkan, yaitu ekspresi seperti "x + 0".
Adakah optimasi yang sulit dilakukan dengan kompiler biasa, yang akan berfungsi sebagai contoh yang baik? Apakah mungkin untuk membuktikan sifat-sifat tertentu dari suatu program yang memungkinkan optimasi yang tidak mungkin dilakukan dengan kompiler biasa? (Yaitu tanpa inferensi yang dimungkinkan dengan teorema teorema)
Saya akan tertarik dengan ide atau contoh dan juga referensi tentang topik tersebut.
Pertanyaan terkait: Bukti kebenaran kompiler
sunting: Seperti yang dikatakan Tsuyoshi dengan baik di komentar: Saya mencari teknik optimasi yang sulit untuk diterapkan jika kompiler ditulis dalam (katakanlah) C tetapi lebih mudah untuk diterapkan jika kompiler ditulis dalam (katakanlah) Coq. Ketika Agda mengkompilasi ke C (melalui haskell) dimungkinkan untuk melakukan segala sesuatu yang mungkin dalam Agda juga dalam C. Mungkin satu-satunya manfaat pembalik teorema seperti Coq / Agda adalah bahwa kompiler dan optimisasi dapat diverifikasi.
sunting2: Seperti yang disarankan oleh Vijay DI tulis apa yang sudah saya baca sejauh ini. Saya terutama berfokus pada Xavier Leroy dan proyek CompCert di INRIA (ada kertas 80 halaman yang merupakan bacaan yang baik, saya pikir). Minat kedua adalah karya Anton Setzer pada program interaktif. Saya pikir itu mungkin karyanya dapat digunakan untuk membuktikan properti tentang program IO dan bisimulasi program IO. Terima kasih telah menyebut Sewell. Saya pernah mendengar ceramahnya "Kisah-kisah dari hutan" di ICFP dan mungkin membaca 2-3 makalahnya. Tetapi saya belum secara khusus melihat pekerjaannya dan rekan penulisnya.
Saya belum menemukan di mana harus memulai atau mencari makalah tentang mengoptimalkan kompiler; misal, optimasi mana yang menarik untuk dilihat dalam pengaturan kompiler terverifikasi.