Pemodelan objek (OOP) dalam teori tipe dependen

13

Saya tertarik pada pemodelan objek, dari pemrograman berorientasi objek, dalam teori tipe dependen. Sebagai aplikasi yang memungkinkan, saya ingin memiliki model di mana saya dapat menggambarkan berbagai fitur bahasa pemrograman yang penting.

Saya hanya bisa menemukan satu makalah tentang objek pemodelan dalam teori tipe dependen, yaitu:
Pemrograman berorientasi objek dalam teori tipe dependen oleh A. Setzer (2006)

Apakah ada referensi lebih lanjut tentang topik yang saya lewatkan dan mungkin ada yang lebih baru?

Apakah mungkin ada implementasi (yaitu bukti) yang tersedia untuk pepatah teorema, seperti Coq atau Agda?

mrsteve
sumber

Jawaban:

6

Beberapa pekerjaan awal (?) Yang dilakukan di area ini adalah oleh Bart Jacobs (Nijmegen) dan Marieke Huisman. Pekerjaan mereka didasarkan pada alat PVS dan bergantung pada pengkodean kelas batubara (jika saya ingat dengan benar). Lihatlah halaman publikasi Marieke untuk makalah pada tahun 2000 dan tesis PhD-nya pada tahun 2001. Juga lihat makalah yang ditulis oleh Bart Jacobs yang dikutip dalam makalah A Setzer yang Anda sebutkan.

Kembali pada masa itu, mereka memiliki sesuatu yang disebut alat LOOP, tetapi tampaknya telah lenyap dari internet.

Ada serangkaian lokakarya yang dikenal sebagai FTfJP (Teknik Resmi untuk Program sejenis Java) yang membahas verifikasi formal program OO. Tidak diragukan lagi beberapa karya menggunakan teori tipe dependen / logika tingkat tinggi. Seri lokakarya telah berjalan selama 14 tahun.

Dave Clarke
sumber
3

Ada makalah yang diperluas secara substansial Andreas Abel, Stephan Adelsberger, Anton Setzer: Pemrograman Interaktif di Agda - Objek dan Antarmuka Pengguna Grafis . Ini berisi perpustakaan Agda untuk menulis program berbasis objek, termasuk GUI. Ada beberapa makalah tindak lanjut dengan Stephan Adelsberger tentang penulisan GUI yang diverifikasi dalam domain medis di Agda berdasarkan pemrograman berorientasi objek.

Anton Setzer
sumber
2

Mengapa Anda melihat teori tipe dependen untuk mewakili OOP? Tidak bisakah kita memodelkan OOP dengan cara yang memuaskan dengan kalkulus yang tidak tergantung? Saya memiliki model informal seperti apa OOP, katakanlah, ketika diterjemahkan ke Sistem F (atau Fω jika Anda ingin mendukung obat generik), dan saya tidak melihat di mana ketergantungan tipe-nilai akan berperan.

Tipe dependen dapat digunakan, misalnya, untuk memberikan makna level yang lebih rendah pada tipe data aljabar. Anda mungkin dapat melakukan pengkodean fitur OO tingkat rendah seperti itu, tetapi saya tidak yakin itu lebih baik daripada menambahkan tipe data aljabar ke bahasa pemodelan Anda.

Mungkin Anda ingin memberikan semantik statis yang lebih baik untuk konstruksi OOP yang saat ini belum diketik, seperti instance_ofdiikuti oleh a cast. Saya dapat melihat peretasan tipe dependen berguna untuk alasan statis tentang program tersebut; tapi saya tidak yakin itu akan "memodelkan" operasi-operasi yang berkonsentrasi pada sudut dinamis, itu sesuatu yang lebih.

gasche
sumber
Ini bukan jawaban untuk pertanyaan itu. Ini bukan forum diskusi.
Dave Clarke