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

Autres aspects
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

4. Autres aspects

D’autres aspects de Lisp existent qui méritent d’être présentés. Les fonctions, telles qu’elles furent introduites dans le paragraphe 2.14, portent toutes un nom mais, de fait, le concept de fonction est anonyme.

x → x 47 + 1 est une fonction à part entière quoique n’ayant jamais été baptisée d’un nom édifiant. Il est possible en Lisp de définir des fonctions anonymes grâce à la forme spéciale lambda provenant du λ‐calcul (Church 1936). On écrira alors (lambda (x ) (+ (expt x 47 ) 1)) ; lambda crée une fonction dont les variables et le corps figurent en premier et second paramètres.

L’application d’une fonction lie ses variables aux valeurs de ses paramètres d’appel : ses arguments. On parle alors d’établissement de liaisons. Ces liaisons ont une portée lexicale : elles ne sont visibles que du seul corps de la fonction. Ce mécanisme ne s’est définitivement imposé que vers 1984 à la suite de Scheme par préférence au modèle où les liaisons avaient une portée dynamique : elles étaient visibles pendant tout le temps d’exécution du corps de la fonction sans restriction aucune sur les endroits où pouvaient figurer les variables s’y référant (et notamment hors du corps de la fonction). Ce choix s’est imposé par souci de sécurité pour la construction de grands logiciels où les problèmes de modularité et de confinement prennent le pas.

Il est possible de modifier une liaison (et non une variable) grâce à la forme spéciale setq. C’est, en Lisp, l’équivalent de l’affectation des langages classiques avec tous les problèmes qu’elle apporte [10]. Son usage sera donc modéré.

4.1 Fonctions anonymes

Les fonctions anonymes sont un concept important de Lisp. Tout d’abord, elles sont des citoyens de première classe, c’est‐à‐dire des objets à part entière, sans restriction...

Cet article est réservé aux abonnés.
Il vous reste 94% à 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
Autres aspects
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