Introduction d'un nouveau type abstrait interface (INTERFACE)
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
Related bugs
Sprints
Whiteboard
Work Items
Dependency tree
* Blueprints in grey have been implemented.