Présentation

Article

1 - GÉNÉRALITÉS

  • 1.1 - Caractéristiques
  • 1.2 - Histoire

2 - NOYAU DE LISP

  • 2.1 - Atomes
  • 2.2 - Liste
  • 2.3 - Syntaxe
  • 2.4 - Fonctions
  • 2.5 - Formes
  • 2.6 - Variables
  • 2.7 - Prédicats
  • 2.8 - Sélecteurs
  • 2.9 - Composition fonctionnelle
  • 2.10 - Construction de listes
  • 2.11 - Formes spéciales
  • 2.12 - Conditionnelle
  • 2.13 - Séquence
  • 2.14 - Construction de fonctions
  • 2.15 - Récursivité
  • 2.16 - Évaluation récursive
  • 2.17 - Pensée récursive
  • 2.18 - Mention
  • 2.19 - Résumé

3 - MISE EN ŒUVRE DE LISP PUR

  • 3.1 - Boucle fondamentale d’interaction
  • 3.2 - Évaluateur
  • 3.3 - Exemple détaillé
  • 3.4 - Représentation des données
  • 3.5 - Trace d’évaluation

4 - AUTRES ASPECTS

  • 4.1 - Fonctions anonymes
  • 4.2 - Macros
  • 4.3 - Échappements
  • 4.4 - Propriétés

5 - DIALECTES DE LISP

  • 5.1 - Common Lisp
  • 5.2 - Scheme
  • 5.3 - Autres

6 - CONCLUSION

| Réf : H2520 v2

Généralités
Lisp

Auteur(s) : Christian QUEINNEC

Date de publication : 10 juin 1995

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

Auteur(s)

  • Christian QUEINNEC : Ancien élève de l’École Polytechnique - Ingénieur en chef de l’Armement - Maître de conférences à l’École Polytechnique

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

INTRODUCTION

Lisp est un langage de programmation ou plutôt, en l’absence actuelle de toute standardisation, une famille de dialectes spécialisés en calcul symbolique. L’invention de Lisp a répondu au besoin de manipulation d’entités variées et non plus simplement de nombres. Le calcul formel, les systèmes experts, les interfaces en langages naturels, la reconnaissance de formes ou, plus généralement, la représentation et la manipulation de connaissances deviennent ainsi directement accessibles sans recours à d’opaques codages numériques ; les algorithmes peuvent être concentrés à leur essence, et leur élaboration épouse, dans une large mesure, les contraintes internes des problèmes qu’ils résolvent et non celles du langage support.

Au dire de son inventeur, Lisp est un optimum local parmi les langages de programmation, ce qui explique sa longévité et sa stabilité [7]. Aucun de ses dérivés n’a su le supplanter : Lisp, les contenant déjà tous en germe, les assimila simplement à de nouveaux styles de programmation. Aujourd’hui, Lisp a cependant bien évolué et s’est considérablement enrichi de nouveaux types de données. Par ailleurs, son substrat mathématico‐logique (λ‐calcul, preuve de théorèmes, récursion...) ainsi que plus de trente années de recherche ont conduit à des systèmes (interprètes et / ou compilateurs) efficaces, à de très riches environnements de développement, à des machines spécialisées dans l’exécution de programmes Lisp ainsi qu’à des réalisations dont l’excellence n’est plus à prouver. Citons seulement et parce qu’elles représentent des extrêmes : Macsyma, système de calcul formel, et Emacs, éditeur de texte pleine page programmable [4].

Cet article est réservé aux abonnés.
Il vous reste 92% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

VERSIONS

Il existe d'autres versions de cet article :

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v2-h2520


Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(231 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Présentation

1. Généralités

On peut tout faire avec Lisp comme dans n’importe quel autre langage de programmation classique ou non. Ses caractéristiques fondent aussi ses différences. Au regard des langages procéduraux tels que Pascal, C ou Ada, Lisp apporte l’objet fonctionnel manipulable sans restriction, une programmation récursive efficace ainsi qu’une gestion automatique de la mémoire. Ce dernier trait est essentiel. Un gestionnaire de mémoire est un mécanisme qui permet d’allouer de la mémoire selon les besoins des programmes et qui libère automatiquement toute zone inutilisée : c’est la technique dite de GC (pour glaneur de cellules). Longtemps décriés pour leur inefficacité, les GC sont un composant incontournable des langages modernes. Eux seuls permettent d’obtenir une gestion sûre de la mémoire sans référence à des données disparues ni à des données inutilement conservées. L’avènement de la programmation par objets et par événements multiplie les besoins en mémoire et rend quasiment illusoire le recours à des méthodes manuelles de gestion de cette mémoire. D’autre part, les systèmes de mémoire virtuelle profitent des GC qui savent compacter les données vivantes et ainsi diminuer les défauts de page permettant d’obtenir que des applications avec GC soient plus performantes que sans !

1.1 Caractéristiques

Lisp fut historiquement fondé sur un certain nombre de principes fondamentaux [7] :

  • Lisp est un langage fonctionnel pour le calcul symbolique ;

  • la structure principale de données est la liste ;

  • peu de fonctions sont prédéfinies ;

  • la récursion est le principal schéma de mise en œuvre des fonctions ;

  • l’utilisation des variables n’est pas soumise à déclaration préalable : les variables ne sont pas typées ;

  • les programmes sont représentés par des listes et sont donc des objets manipulables par programme ;

  • tous les mécanismes dont use Lisp pour ses besoins propres sont mis à la disposition de l’utilisateur ; en particulier, le mécanisme d’évaluation qui permet de convertir un programme en une valeur, est accessible en Lisp même, sous le non de eval ;

  • la gestion de la mémoire est entièrement automatique ;

  • la mise en œuvre de Lisp est interactive.

Ces propriétés ressortissent...

Cet article est réservé aux abonnés.
Il vous reste 92% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(231 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Généralités
Sommaire
Sommaire

Cet article est réservé aux abonnés.
Il vous reste 93% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(231 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS