Suivez-nous sur X

|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Dossier : 10 questions sur le Lisp
(Article écrit par Edgar Pixel et extrait de Tilt - juin 1988)
|
|
L'homme domine l'ordinateur. Pourtant, à voir Lisp on en doute... Pas vrai Edgar ?
Que veut dire "Lisp" ?
Lisp c'est LIST Processing (traitement de liste).
De quand date le Lisp ?
Lisp est un vieux langage, créé en 1958 par John McCarthy au MIT (Institut de Technologie du Massachussets).
Le premier Lisp qui ait fonctionné portait le numéro 1.5 puis Lisp 1.6.
Rapidement, trois écoles se sont formées :
- Au MIT, le Maclisp puis le FranzLisp.
- A Berkeley, l'Interlisp, développé par Xerox.
- A l'Université de Paris-VIII-Vincennes, le VLisp.
L'arbre généalogique s'est notamment enrichi de BVLisp qui descend de InterLisp et de
VLisp, tandis que MacLisp a donné Le Lisp, un des plus connus sur micro. Inutile de
développer : chaque laboratoire en Intelligence Artificielle travaille avec sa version
du langage.
Le Lisp est-il encore utilisé ?
Il a failli rester confiné à un tout petit nombre de laboratoires, à cause de son originalité.
Il a redémarré en force plus de dix ans après sa naissance. C'est sans doute le principal
langage de l'Intelligence Artificielle, avec Prolog en France.
On parle de machines Lisp, ont-elles un rapport avec le langage ?
Oui, elles sont conçues pour faciliter l'emploi du langage, qui n'a pas les mêmes exigences
que d'autres langages de programmation.
Le Lisp tourne-t-il correctement sur d'autres machines ?
Le Lisp, en tout cas plusieurs de ses dialectes, tourne sans problèmes sur les micros,
Mac et PC, Amiga et ST. Sa structure lui fait consommer beaucoup de mémoire vive en cours
de travail. Dans un trop petit espace, les hautes piles de résultats intermédiaires bâties
au cours de l'exécution de fonctions récursives risquent de casser, de saturer.
Que programme-t-on en Lisp ?
On peut tout programmer en Lisp, aussi bien de la gestion que des programmes scientifiques.
Il n'a cependant pas été conçu pour développer des applications graphiques et musicales,
et le domaine dans lequel il se révèle le plus performant est l'Intelligence Artificielle.
On dit le Lisp très différent des autres langages. Est-ce vrai ?
Oui, sa logique, sa syntaxe déroutent même des programmeurs émérites rompus à la pratique d'autres langages.
Lisp traite des symboles, c'est-à-dire manipule des objets sans s'intéresser à leur valeur numérique,
ce qui le rend adapté à toute l'informatique qui ne calcule pas. D'autre part, Lisp traite des listes
et des arbres, sans que les programmeurs aient à se soucier de les gérer. Enfin, Lisp est un langage
récursif, c'est-à-dire qu'une fonction s'appelle elle-même : voici une définition récursive de
la notion d'ancêtres : "mes ancêtres sont mon père, ma mère ou un de leurs ancêtres."
Donc si je veux savoir si Napoléon est un de mes ancêtres, je vérifie qu'il n'est ni mon père ni
ma mère, puis qu'il n'est ni ancêtre de mon père ni ancêtre de ma mère : je vérifie donc qu'il
n'est ni le père de mon père ni la mère de mon père, puis qu'il n'est ni le père de ma mère
ni la mère de ma mère. Et ainsi de suite jusqu'à trouver Napoléon (et si tous mes ancêtres sont
nés avant Napoléon sans que je l'aie rencontré, je vais arrêter le processus avant
d'atteindre Adam et Eve !).
Quelles sont les qualités du Lisp ?
C'est un langage très dense : pour un problème donné, dont la structure est arborescente ou
comporte des tris, un programme Lisp sera deux à quatre fois moins long qu'un programme réalisant les
fonctions équivalentes en Pascal. Ainsi, deux mots particuliers au Lisp : "CAR" et "CDR". "CAR" désigne le
premier élément d'une liste, "CDR" tous les autres. Ainsi, quand la machine affiche le prompteur,
le point d'interrogation qui indique que la machine attend des instructions : ?, on rentre la
ligne suivante :
...la machine affiche alors "A".
Si l'on rentre après le "?" la ligne :
...la machine répond "(BC)". CAR et CDR s'appliquent aussi aux arbres.
Ces éléments de vocabulaire s'avèrent extrêmement puissants. Facile
à écrire pour qui le maîtrise, il est en revanche difficile à relire,
à cause de la densité. La programmation d'un logiciel ne demande pas
trop de travail une fois qu'on a réalisé l'analyse la structure détaillée.
Le Lisp est, dit-on, très dur à apprendre ?
Il s'agit de se familiariser avec une logique qui n'a au départ rien
d'intuitif, plus qu'avec un vocabulaire particulier. Sa syntaxe est très rigide.
Existe-t-il au moins de bons manuels pour apprendre le Lisp ?
Il est rare d'apprendre le Lisp seul : son apprentissage se fait quasiment toujours
à l'Université ou au sein d'équipes de travail. De plus, l'auto-apprentissage est ardu,
donc peu pratiqué. Il n'existe donc pas de manuels répondant à ce besoin, ce qui
boucle le cercle vicieux vous ne disposerez d'aucune aide si vous voulez travailler seul...
|