Classes et instances

Common Lisp est le premier langage orienté-objets normalisé. La partie orientée-objets de Common Lisp s'appelle CLOS (Common Lisp Object System) et se prononce C-Los (en Anglais : Si-Los).

CLOS est complètement différent des langages traditionnels orientés-objets comme Java, C++, Smalltalk, Eiffel, Simula, etc. Dans ces langages, les méthodes sont associées aux classes, alors qu'en CLOS elles sont associées à des objets appelés fonctions génériques. Ceci permet la séléction multiple (ou multi-méthodes), à savoir la sélection d'une méthode basée sur un nombre arbitraire d'arguments et non pas sur un argument privilégié comme dans les langages traditionnels.

L'utilisation de fonctions génériques permet de rajouter des méthodes sans modifier le code d'une classe ; ceci est essentiel pour permettre à un client d'une classe déjà écrite de compléter son comportement sans avoir accès au code source. Il n'est donc plus nécessaire pour le créateur d'une classe de penser à toutes utilisations futures possibles avant de livrer sa classe et la classe livrée est souvent plus légère.



Irene DURAND
2011-10-14