Langages à objets |
C++ - C# - D Delphi - Eiffel - Groovy Java - Lisaac - Python - Ruby Simula - Smalltalk Visual Basic - WLangage |
Langages impératifs |
APL - ASP - Assembleur BASIC - C - Cobol - Natural Forth - Fortran - Limbo Logo - Pascal - Perl - PHP |
Langages fonctionnels |
Haskell - ML/OCaml Lisp/Common Lisp Scheme - XSLT |
Langages déclaratifs |
Clips - Prolog |
Langages concurrents |
Ada 95 - Erlang |
Voir aussi |
Conception - Codage Tests - Optimisations |
La programmation orientée prototype est une forme de programmation orientée objet sans classe, basée sur la notion de prototype. Un prototype est un objet à partir duquel on crée de nouveaux objets par clonage. En programmation orientée prototype, les membres d'un objet, attributs et méthodes, sont appelés slots ; il n'y a pas la distinction entre les slots de données et les slots de code qu'on a avec les classes. La grande différence avec la programmation objet à classes est qu'on peut remplacer le contenu des slots, en ajouter d'autres ou changer la hiérarchie d'héritage que cela soit prévu dans l'objet original ou pas.
Self fut le premier langage à prototypes. Il a été conçu dans les laboratoires de Sun dans les années 1990.
Objets à classes :
Objets à prototypes :
Un des intérêts majeurs des prototypes est l'héritage dynamique : tout objet peut changer de parent à l'exécution, n'importe quand.
On peut matérialiser les paradigmes objet à prototypes et objet à classes en constatant la différence d'utilisation de la mémoire.
Il existe à l'heure actuelle plusieurs langages à base d'objets à prototypes : Self, Lisaac, ou encore les langages implémentant la spécification Ecmascript (Javascript, ActionScript, JScript). Self, Javascript et ActionScript sont non typés et sont interprétés. Lisaac est typé et compilé.