Lisp - Définition et Explications

Introduction

Lisp
Lisp-glossy-120.jpg

Apparu en 1958
Auteur John McCarthy
Paradigmes fonctionnel, impératif
Typage faible, dynamique (Le mot dynamique est souvent employé désigner ou qualifier ce qui est relatif au mouvement. Il...)
Dialectes Common Lisp (Common Lisp est un langage fonctionnel impur de la famille Lisp.), Emacs Lisp (Lisp est la plus ancienne famille de langages impératifs et fonctionnels. Développé...), Scheme
Système d'exploitation Multiplate-forme (Un logiciel multiplate-forme ou multiplateforme est un logiciel conçu pour fonctionner sur...)

Lisp est la plus ancienne famille de langages impératifs et fonctionnels. Développé initialement en tant que modèle pratique pour représenter des programmes (par contraste avec la notion théorique de Machine de Turing), il est devenu dans les années 1970 et 80 le langage de choix pour la recherche (La recherche scientifique désigne en premier lieu l’ensemble des actions entreprises en vue...) en intelligence artificielle (L'intelligence artificielle ou informatique cognitive est la « recherche de moyens...). Les langages Lisp sont aujourd'hui utilisés dans de nombreux domaines, de la programmation Web (La Programmation web peut prendre différentes formes : de la simple page statique à...) à la finance, et dans les cursus de formation en Informatique (L´informatique - contraction d´information et automatique - est le domaine...).

Le terme Lisp a été forgé à partir de l'anglais « list processing ». Tous les dialectes de Lisp partagent les mêmes opérateurs de manipulation de listes chaînées simples. Lisp se distingue en outre par une syntaxe simple en notation préfixée, son typage dynamique des données (Dans les technologies de l'information (TI), une donnée est une description élémentaire, souvent...), le support pour la programmation fonctionnelle (Un langage fonctionnel est un langage de programmation dont la syntaxe et les caractéristiques...), sa gestion automatique (L'automatique fait partie des sciences de l'ingénieur. Cette discipline traite de la...) de la mémoire (D'une manière générale, la mémoire est le stockage de l'information. C'est aussi le souvenir...) et la faculté de manipuler le code source (Le code source (ou les sources voire le source) est un ensemble d'instructions écrites dans un...) en tant que structure de données.

Les langages Lisp sont reconnaissables immédiatement à leur apparence. Le code source des programmes est écrit en utilisant la même syntaxe que celle des listes - la syntaxe parenthésée des s-expressions. Chaque sous-expression d'un programme (ou structure de données) est délimitée par des parenthèses. Cela simplifie grandement l'analyse syntaxique des programmes Lisp et rend simple la métaprogrammation (La métaprogrammation est, par analogie avec les métadonnées et les métaclasses, la...) -- la création de programmes qui créent d'autres programmes.

Si l'on excepte le langage machine (Le langage machine est la suite de bits qui est interprétée par le processeur de l'ordinateur...) et le langage d'assemblage (ou plus communément « assembleur »), Lisp est le deuxième langage le plus ancien (juste après Fortran) parmi les langages qui se sont largement diffusés. Lisp a beaucoup évolué depuis le début des années 1960 et a ainsi donné naissance à de nombreux dialectes.

Histoire

Le langage Lisp fut inventé par John McCarthy (John McCarthy (né le 4 septembre 1927, à Boston, Massachusetts) est le principal pionnier de...) en 1958 alors qu'il était au Massachusetts Institute of Technology (Le Massachusetts Institute of Technology ou MIT, en français Institut de technologie du...) (MIT). Il publia un article intitulé « Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I » (soit « Fonctions Récursives d'expressions symboliques et leur évaluation par une Machine, partie I ») dans la revue CACM en 1960 ; la partie II ne fut jamais publiée.

Le premier interpréteur (En informatique, un interprète (parfois appelé, à tort, « interpréteur » par mauvaise...) fonctionnait sur un ordinateur (Un ordinateur est une machine dotée d'une unité de traitement lui permettant...) IBM (International Business Machines Corporation (IBM) est une société multinationale américaine...) 704 et deux instructions de cette machine devinrent les deux opérations primitives de Lisp pour décomposer les listes :

  • car (Contents of Address register) : le premier élément de la liste
  • cdr (Contents of Decrement register) : le reste de la liste

Dans son article, John McCarthy introduit deux syntaxes : les S-expressions (expressions symboliques, parfois appelées « sexp ») et les M-expressions (méta-expressions permettant l´homoiconicité pour exprimer les fonctions manipulant des S-expressions). Les M-expressions n'ont jamais été très appréciées et la plupart des Lisps de nos jours (Le jour ou la journée est l'intervalle qui sépare le lever du coucher du Soleil ; c'est la...) utilisent des S-expressions pour les programmes comme pour les données. C (Le C++ est un langage de programmation permettant la programmation sous de multiples paradigmes...)'est la syntaxe des S-expressions qui fait que certains reprochent à Lisp d'être « plein de parenthèses », mais c'est aussi une des sources de la puissance (Le mot puissance est employé dans plusieurs domaines avec une signification particulière :) et de la souplesse du langage.

Probablement en raison de son expressivité et de sa flexibilité, Lisp eut beaucoup de succès dans la communauté de l'intelligence artificielle. Dans les années 1970, on créa des ordinateurs spécialisés dans l'exécution de programmes Lisp : les machines Lisp.

Durant les années 1980 et 1990, on fit de grands efforts pour unifier les nombreux dialectes de Lisp qui étaient apparus. Le résultat fut appelé Common Lisp et en 1994, l'ANSI publia « ANSI X3.226-1994 Information Technology Programming Language Common Lisp », standardisant ainsi le langage. À ce moment, Lisp était bien moins florissant qu'à sa grande époque.

Bien qu'éclipsé par des langages proches de la machine (C, C++) et soutenus par des campagnes marketing (Le marketing (on utilise aussi parfois — dans 7% des cas, d'après les chiffres donnés par...) agressives, Lisp reste un langage très utilisé, en particulier en tant que langage embarqué dans des applications, où il sert de langage d'extension. Le cas le plus connu d'utilisation embarquée de Lisp est l'éditeur de textes Emacs. On notera par ailleurs que Lisp vient en quatrième position en termes de lignes de codes utilisées pour implémenter les 8 600 paquets sources disponibles dans le système d'exploitation Debian (Debian (/de.bjan/) est une organisation communautaire et démocratique, dont le but est le...) publié en juin 2005. Les huit premiers langages se distribuent ainsi : C (57%), C++ (16.8%), Shell (9%), LISP (3%), Perl (2.8%), Python (1.8%), Java (1.6%), FORTRAN (1.2%).

Page générée en 0.378 seconde(s) - site hébergé chez Amen
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
Ce site est édité par Techno-Science.net - A propos - Informations légales
Partenaire: HD-Numérique