Introduction d'un nouveau type abstrait interface (INTERFACE)

Registered by Luc Bruninx

Ce nouveau type permet de déclarer un modèle abstrait de l'interface d'un objet.

Il s'agit d'interfaces de contraintes génériques. Le rôle de ces interfaces consiste à valider l'interface publique des objets par consistance de contraintes (l'objet doit présenter une interface compatible ou consistante avec l'interface abtraite générique proposée comme une contrainte).

De cette manière, il est possible d'améliorer la généricité du langage sans trop réduire la sécurité des programmes (par rapport à la programmation avec types statiques).

Bien entendu, le langage dispose de tous les prédicats nécessaires pour réaliser l'introspection de l'objet et contrôler ainsi la consistance de son interface par rapport à divers contraintes. Ce genre de tests peut toutefois s'avérer assez lourds et longs. Le contrôle réalisé à l'aide des interfaces génériques abstraites est un meilleur compromis en terme de performances.

On constate également qu'il est possible de réaliser des programmes qui sont nettement moins dépendants des types. Ceci amémliore la générisité.

            DONE : (interface {...})
            DONE : (interface? ix)
            DONE : (implementation? objet of interface)

            DONE : (pattern 'Symbole type-primaire interface {...}) -> pattern avec contrainte.

Blueprint information

Status:
Complete
Approver:
Luc Bruninx
Priority:
Essential
Drafter:
Luc Bruninx
Direction:
Approved
Assignee:
Luc Bruninx
Definition:
Approved
Series goal:
Accepted for 1.0
Implementation:
Implemented
Milestone target:
None
Started by
Luc Bruninx
Completed by
Luc Bruninx

Related branches

Sprints

Whiteboard

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.