L'équipe de développement de SmartEiffel au Loria à Nancy vient de sortir la version 2.2 du logiciel. SmartEiffel est un compilateur pour le langage Eiffel disponible sous licence GNU GPL.
Au programme des nouveautés, côté organisation du projet. On a d'abord assisté à la mise en place d'un wiki, ensuite le projet est arrivé sur InriaGforge qui est la plateforme de développement collaboratif de l'INRIA.
Côté logiciel, on découvre des nouveautés et améliorations dans le changelog. La commande eiffeldoc permet de produire de la documentation à partir des classes (comme javadoc). Le système de plugins qui permet d'intégrer des bibliothèques existantes à du code Eiffel a été amélioré. Un widget gérant OpenGL est disponible dans la bibliothèque Vision. La bibliothèque réseau est maintenant entièrement compatible avec les systèmes POSIX et propose même un serveur HTTP (béta)...
Au programme des nouveautés, côté organisation du projet. On a d'abord assisté à la mise en place d'un wiki, ensuite le projet est arrivé sur InriaGforge qui est la plateforme de développement collaboratif de l'INRIA.
Côté logiciel, on découvre des nouveautés et améliorations dans le changelog. La commande eiffeldoc permet de produire de la documentation à partir des classes (comme javadoc). Le système de plugins qui permet d'intégrer des bibliothèques existantes à du code Eiffel a été amélioré. Un widget gérant OpenGL est disponible dans la bibliothèque Vision. La bibliothèque réseau est maintenant entièrement compatible avec les systèmes POSIX et propose même un serveur HTTP (béta)...
SmartEiffel (342 hits)
Téléchargement (136 hits)
Changelog (98 hits)
Wiki (125 hits)
> Lire la dépêche (10 commentaires, moyenne: 3,4).
Vous avez demandé le commentaire #663561.




Qu'est-ce que ça veut dire ?
Le Langage Eiffel [...] dispose de nombreuses fonctionnalités comme [...] l'héritage de type ou d'implémentations
Quelqu'un aurait des infos sur la signification de "héritage d'implémentations" ? Je vois pas trop ce que ça peut être...
[^]Re: Qu'est-ce que ça veut dire ?
Fais une recherche sur héritage non-conforme. En bref, l'héritage non-conforme (ou d'implémentations) te permet d'hériter des méthodes/variables du parent mais pas de son type.
Dans le dialecte SmartEiffel (oui, il y a un fork avec Standard Eiffel), le mot-clé insert sert à ça. Si B hérite de A de façon non-conforme, alors un objet de type B pourra utiliser toutes les méthodes héritées de A mais ne pourra pas être affecté à un objet de type A. Au demeurant, toujours en SmartEiffel, il n'y a plus de classe mère de toutes les autres : ANY est "insérée" mais pas "inhéritée" par défaut.
A+
ZeGrunt
[^]Re: Qu'est-ce que ça veut dire ?
Juste pour montrer la pertinence des choix fait à l'époque dans Sather... Il y a dans Sather la notion d'héritage d'interface et d'héritage de code (qui s'écrit par un include). Les deux notions sont dissociés (orthogonalisés). Lorsque l'on regarde un arbre de classe dans Sather, on est surpris de la simplicité de l'arbre !
Un autre avantage est que l'on peux faire du "supertyping", c'est à dire introduire une nouvelle classe en plein milieu d'un arbre de classe déjà fait !
[^]Re: Qu'est-ce que ça veut dire ?
On appelle cela aussi de l'heritage privé: tu hérite des méthodes d'un père, mais on ne peut pas pour autant affecté à une variable du type du pere un fils, contrairement a l'heritage public.
[^]Re: Qu'est-ce que ça veut dire ?
Quel est l'interêt alors si tu peux pas profiter du polymorphisme ?
[^]Re: Qu'est-ce que ça veut dire ?
Eviter de recoder l'implementation deux fois, c'est pour ça qu'on appelle ça l'héritage d'implémentation..
Ca c'est un truc que je n'ai pas compris avec l'héritage d'interface en Java, chaque Classe héritant d'une interface doit recoder les fonctions, ça représente un gros boulot!
[^]Re: Qu'est-ce que ça veut dire ?
L'héritage d'interface est orthogonal à l'héritage de mise en ½uvre.
- Héritage d'interface : le type est le même mais les mises en ½uvres sont totalement indépendantes ; les classes sont conceptuellement similaires (elles rendent les mêmes services) mais, en interne, elles sont différentes (pas les mêmes attributs, pas les mêmes algorithmes...).
- Héritage de mise en ½uvre : même mise en ½uvre mais pas le même type ; les classes n'ont pas de lien conceptuel mais le code serait du copier-coller.