Common Lisp (CL)

Tout commence par Lisp

CL est un dialecte issu de la famille de langages Lisp, et accessoirement le plus connu d’entre eux. Lisp a été créé en 1958 et a vu naître un très grand nombre de dialectes différents depuis sa création. Dans les années 1970, des machines furent conçues spécialement dans le but d’exécuter des programmes Lisp : les machines Lisp. Dans les années 1980–90, des efforts ont été produits pour unifier ces dialectes, et le résultat créé était Common Lisp. Sa norme ANSI fut publiée en 1994, puis ISO publie en 1997 la norme ISLISP. Aujourd’hui Lisp et ses dialectes représente environ 3% du développement d’applications dans le monde.

Puis vient Common Lisp

Common Lisp est donc une standardisation d’une multitude de dialectes issus de Lisp, à usage général, avec lequel il est possible de faire de la programmation impérative, fonctionnelle ou encore orientée objet. CL présente de nombreux avantages que nous allons voir maintenant.

Avantages de CL

CL est un langage avec une très grande flexibilité, et facilement extensible. Voici quelques fonctionnalités avec les avantages qu’elles apportent :

  • la compilation est incrémentale : seuls les modifications seront appliquées, le développement n’est donc pas ralenti par le cycle édition -compilation - exécution. La redéfinition des fonctions a un effet immédiat, et peut même avoir lieu pendant l’exécution ! C’est aussi valable pour les structures de données.
  • le mécanisme de définition de fonctions (defun) est très flexible. Il permet de définir des arguments optionnels ou encore par clés. Cela permet de renseigner uniquement les arguments nécessaires et sans ordre particulier lors de l’appel d’une fonction, très avantageux en phase de développement.

Cependant, un des principaux attraits de CL est la possibilité qu’a votre programme de manipuler et modifier du code, voir même de se modifier lui même. En effet, votre programme se présente sous la forme d’une liste, qui sont justement aisée à manipuler à l’aide de CL. Ces possibilités ouvrent la voie à la programmation d’intelligences artificielles puissantes et avec une grande adaptabilité.

--

--