Modélisation d'objets (POO) dans la théorie des types dépendants


13

Je m'intéresse à la modélisation d'objets, de la programmation orientée objet, à la théorie des types dépendants. Comme application possible, j'aimerais avoir un modèle où je peux décrire différentes fonctionnalités des langages de programmation impératifs.

Je n'ai pu trouver qu'un seul article sur la modélisation d'objets dans la théorie des types dépendants, qui est:
La programmation orientée objet dans la théorie des types dépendants par A. Setzer (2006)

Y a-t-il d'autres références sur le sujet que j'ai manqué et peut-être y en a-t-il des plus récentes?

Y a-t-il peut-être une implémentation (c'est-à-dire une preuve) disponible pour un prouveur de théorème, comme Coq ou Agda?

Réponses:


6

Bart Jacobs (Nimègue) et Marieke Huisman ont réalisé un travail précoce (?) Dans ce domaine. Leur travail est basé sur l'outil PVS et s'appuyait sur un codage hétérogène des classes (si je me souviens bien). Regardez la page de publication de Marieke pour les articles de l'an 2000 et sa thèse de doctorat en 2001. Regardez également les articles de Bart Jacobs cités dans l'article A Setzer que vous mentionnez.

À l'époque, ils avaient quelque chose appelé l'outil LOOP, mais il semble avoir disparu des internets.

Il existe une série d'ateliers connue sous le nom de FTfJP (Formal Techniques for Java-like Programs) qui traite de la vérification formelle des programmes OO. Sans aucun doute, certains travaux utilisent la théorie des types dépendants / la logique d'ordre supérieur. La série d'ateliers dure depuis environ 14 ans.


3

Il existe un article de fond considérablement élargi Andreas Abel, Stephan Adelsberger, Anton Setzer: Programmation interactive dans Agda - Objets et interfaces utilisateur graphiques . Il contient une bibliothèque Agda pour écrire des programmes basés sur des objets, y compris des interfaces graphiques. Il y a quelques articles de suivi avec Stephan Adelsberger sur l'écriture d'interfaces graphiques vérifiées dans le domaine médical à Agda basées sur une programmation orientée objet.



2

Pourquoi envisagez-vous la théorie des types dépendants pour représenter la POO? Ne pouvons-nous pas modéliser la POO de manière satisfaisante avec des calculs non dépendants? J'ai un modèle informel de ce à quoi ressemble la POO lorsqu'elle est traduite vers le système F (ou Fω si vous voulez prendre en charge les génériques), et je ne vois pas où la dépendance de type-valeur entrerait en jeu.

Les types dépendants peuvent être utilisés, par exemple, pour donner une signification de niveau inférieur aux types de données algébriques. Vous pourriez probablement faire un tel encodage de bas niveau des fonctionnalités OO, mais je ne suis pas sûr que ce soit mieux que d'ajouter des types de données algébriques à votre langage de modélisation.

Peut-être que vous voulez donner une sémantique statique plus fine aux constructions OOP qui sont actuellement non typées, telles que instance_ofsuivies de a cast. Je peux voir que le piratage de type dépendant est utile pour raisonner statiquement sur de tels programmes; mais je ne suis pas sûr que cela "modélise" ces opérations qui se concentrent sur l'angle dynamique, c'est quelque chose de plus.


Ce n'est pas une réponse à la question. Ce n'est pas un forum de discussion.
Dave Clarke
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.