Université Abou Bakr Belkaïd – Tlemcen
Ecole Doctorale STIC option SIC
Module : Intelligence Artificielle
Exposé
Le langage LISP
Présenté par
Amine Brikci-Nigassa
(nh2 (à) libretlemcen.org)
Année universitaire 2006-2007
Avant-propos
Ce document est un exposé réalisé pour le module d'intelligence artificielle de
la 1ère année de magistère dans le cadre de l'école doctorale STIC (option
Systèmes d'Information et de Connaissances) à l'université Abou-Bakr Belkaïd
de Tlemcen (Algérie).
Le texte est sous licence GNU FDL (GNU Free Documentation License) dans
l'objectif d'en faire une base pouvant être améliorée selon la philosophie du
Libre.
Ce document a été réalisé sous Debian GNU/Linux grâce au logiciel Libre
OpenOffice.org librement téléchargeable sur le site http://fr.OpenOffice.org
Il est disponible aux formats OpenDocument (norme ISO/IEC 26300) et PDF à
l'adresse http://LibreTlemcen.org/nh2/expose_LISP
Pour toutes suggestions, remarques, réactions, il est possible de contacter
l'auteur par courrier électronique :
Amine Brikci-Nigassa : nh2 (à) libretlemcen.org
Note de Licence :
Copyright © 2007 Amine Brikci-Nigassa
Vous pouvez copier, redistribuer et/ou modifier ce document selon les termes
de la Licence de Documentation Libre GNU, Version 1.2 publiée par la Free
Software Foundation à l'adresse http://www.gnu.org/licenses/fdl.html.
2
Table des matières
Avant-propos.......................................................................................................2
Introduction........................................................................................................4
Historique...........................................................................................................5
Particularités de Lisp..........................................................................................7
Programmation fonctionnelle..........................................................................7
Récursivité......................................................................................................7
Les listes..........................................................................................................8
Nature d'un programme Lisp........................................................................10
La boucle read-eval-print..............................................................................11
Le Garbage Collecting...................................................................................11
Utilisation en Intelligence Artificielle...........................................................12
Eléments de syntaxe en Lisp.............................................................................12
Atomes.......................................................................................................12
Listes.........................................................................................................13
Exemple de programme en Scheme..............................................................13
Conclusion.........................................................................................................18
3
Introduction
Souvent associé au domaine de l'intelligence artificielle, le langage LISP
trouve un regain d'intérêt auprès de diverses communautés de programmeurs
depuis quelques années.
Assez différent des langages impératifs actuellement communs, presque tous
descendants d'ALGOL (Pascal, C ou encore Java), la beauté et la puissance de
ses concepts élémentaires en font une expérience que devrait connaître tout
bon programmeur.
C'est, après FORTRAN, le plus ancien des langages de haut niveau encore
utilisés aujourd'hui. Ses applications sont depuis longtemps sorties du champ
des laboratoires de recherche puisque ses capacités en font un langage aux
applications multiples.
Sa simplicité est également remarquable. La facilité de sa syntaxe, le faible
nombre de ses mots-clés, son interactivité sont des critères qui amènent
certains à l'utiliser comme langage d'initiation à la programmation.
4
Historique
Pr John Mac Carthy, le père du « LISt Processing language »1 est aussi
l'inventeur du terme « Intelligence Artificielle ». En concevant ce langage, en
1958, le but de ce chercheur au MIT2 était d'appliquer les théories du lambda-
calcul du mathématicien Alonzo Church, ouvrant la voie au paradigme de la
programmation fonctionnelle.
Lisp a introduit des concepts nouveaux comme la structure si-alors-sinon
reprise dans la plupart des langages de haut niveau (tels que ALGOL et ses
successeurs). Il influencera les concepteurs de Smalltalk (l'un des premiers
langages orientés objet). C'est d'ailleurs avec Lisp qu'est apparu le premier
« ramasse-miettes »3 connu des programmeurs Java.
La nature fonctionnelle du langage Lisp a longtemps posé l'inconvénient de la
lenteur et de la forte consommation de mémoire (qui ont autrefois induit la
nécessité de machines dédiées), c'est une des raisons pour lesquelles sa
popularité n'a ressurgi qu'après plusieurs décennies.
Depuis sa conception, plusieurs dialectes de Lisp ont été développés
(MACLISP, InterLisp...) mais les deux les plus employés actuellement sont
Common Lisp et Scheme4, le premier étant riche et complexe et le deuxième
se voulant épuré (mais tout aussi puissant). Chacun a fait l'objet d'une
normalisation (respectivement par l'ANSI et l'IEEE) et leurs implémentations
sont nombreuses, sous la forme d'interpréteurs et/ou compilateurs (la plupart
Libres/Open Source et disponibles sur plusieurs plateformes).
Une autre variante également connue est Emacs Lisp qui est utilisée comme
langage intégré à l'éditeur de texte GNU Emacs5 et qui permet entre autre
d'étendre ses fonctionnalités.
Notons aussi que Lisp a inspiré le langage LOGO, développé à la fin des
1 Les mauvaises langues prétendent que c'est plutôt l'acronyme de « Lots of
Irritating Superfluous Parentheses » ou encore « Lots of Idiot and Silly Parentheses »...
2 Massachussets Institute of Technology
3 Traduction française de « garbage collector », aussi appelé « glaneur de cellules »
4 Prononcer 'skim'
5 Emacs est le premier logiciel du projet de système d'exploitation libre GNU réalisé par la
Free Software Foundation. Il est entre autre disponible avec les distributions GNU/Linux
5
1 / 19 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !