Hommage à Ken
Iverson
Kenneth Iverson lors du
congrès APL de l’AFCET "L’enseignement, l’ordinateur et APL" en
1983, un sujet auquel il a toujours été
très attaché.
1) Mes débuts avec APL et rencontre des APListes
Je n’ai pas rencontré Ken Iverson tout de suite bien qu’en 1972 il soit venu à un congrès APL à Paris où j’étais inscrit. Le premier (et hélas le dernier) congrès APL en France !
Mes débuts en APL remontent à 1969 au Centre de
Calcul Scientifique de l’Armement (CCSA) à Arcueil, au Fort de Montrouge. C’est
là que j’ai rencontré pour la première fois Gérard Lacourly et que j’ai eu son
livre écrit en collaboration avec Philip S. Abrams intitulé :
"Informatique par téléphone".
Au "SICOB" qui s’en est suivi, j’ai été
émerveillé par les démonstrations APL que l’on y faisait ! (entre autre en
algèbre linéaire).
Je me suis exercé sur l’APL de l’Université du
Maryland en mode digraphe et ensuite sur celui de Sperry Univac avec les
caractères APL sur console Tektronix d’abord et ensuite sur un terminal APL en
temps partagé.
En ce temps là, Gilles Martin travaillait au Centre
Interarmées de Recherche Opérationnelle (CIRO) situé à côté du CCSA, nous
étions tous deux spécialistes d’algèbre linéaire et nous nous échangions des
programmes Fortran dans ce domaine.
Nous nous sommes perdus de vue et en 1974, je
rencontrais Paul Braffort au "Centre de réflexions sur le futur" à
Arc et Senans lors d’un colloque. C’est à cette occasion, que Paul m’a appris
que Gilles Martin faisait aussi de l’APL…
Ensuite j’ai participé comme expert pour la
normalisation d’APL dès le début en 1978. Raymond Tisserand avait été choisi
pour être le président du groupe APL de l’AFNOR. C’est là que j’ai fait la
connaissance de Gérard Langlet, Jean-Jacques Girardot et des autres membres du
groupe dont Gilles Martin que je retrouvais. J’avais déjà rencontré Raymond
lorsqu’il travaillait avec Guy Varin et G. Fustier à l’INRIA.
A partir de 1982, j’ai bénéficié en tant qu’expert de la connexion avec IP Sharp et j’ai pu ainsi échanger des mails avec le groupe de la norme (STD sur IP Sharp). On se connectait à la messagerie en tapant )LOAD 666 BOX à partir d’une connexion offerte aimablement par l’Ecole des Mines de Saint Etienne grâce à Jean-Jacques Girardot.
Depuis longtemps je voulais aller aux congrès APL
mais aucun organisme n’acceptait de me payer une mission, y compris après une
tentative auprès de l’AFNOR en 1984 sur recommandation de Raymond Tisserand.
Vue la "popularité" d’APL, personne ne s’en étonnera ! C’est
ainsi que je suis allé à mes frais à presque tous les congrès suivants. (14 de
1985 à 2000).
Au congrès APL de 1985 à Seattle, Ken n’y était pas.
J’avais apporté
Les japonais présentaient leur machine à un congrès
APL pour la première fois.
2) Rencontre avec Ken Iverson
Je pense que c’est en 1986, au congrès APL de
Manchester que j’ai vraiment fait la rencontre de Ken Iverson. Il était venu
assister à notre première réunion ISO APL sur son extension. Jusque là, nous
n’avions eu que des relations épistolaires.
En 1985, la norme APL était sortie, Raymond
Tisserand passait le flambeau à Leroy Dickey devenu le nouveau
"convenor" de la norme APL. On avait décidé en effet de continuer les
travaux de normalisation sur une extension de l’APL.
Ken était un homme affable. Nous avions convenu de parler chacun dans notre langue, et cela fonctionnait bien : nous voulions être certains de bien exprimer chacun nos idées. Il a toujours été très cordial avec moi.
De nombreux exemples en témoignent mais j’ai choisi celui qui me tenait le plus à cœur, sur un sujet où nous avions un terrain d’entente, à savoir le langage J.
Cela peut paraître vrai en comparaison avec Pascal, un des langages les plus contraignants que je connaisse et qui sévissait encore à cette époque ! mais c’est tout à fait relatif…
Huit mois après, en réponse à une de mes lettres,
Ken m’écrivit une gentille lettre me faisant part des travaux qu’il avait
effectué depuis. Non seulement cela répondait à mes demandes de Princeton, mais
il était allé beaucoup plus loin à partir de son œuvre précédente qui
s’intitulait "A dictionary of APL"1.
Il était très attaché à l’enseignement d’APL et cette lettre reproduite
ci-dessous le confirme.
Apt. 405
70 Erskine Avenue
Toronto, Ontario
Canada M4P 1Y2April 20, 1990
Dear Michel:
Thanks for your letter of March 1. Your news about the state of APL in France was depressing but not surprising, since the same seems to be happening here. In particular, I.P. Sharp Associates (since being bought by Reuters) appears to be moving away from the use of APL as quickly as possible, and most of the experienced APL people (such as Bob Bernecky and my son Eric) have already left the company. Furthermore, the situation of APL in education is about as bad here as you say it is in France.
However, I am not discouraged. Since retiring from Sharp, I have concentrated on defining a simpler and more powerful version of the language, and developing an implementation in C that can be ported to a wide variety of machines and be distributed as Freeware. Moreover, the system uses a simple spelling scheme that uses only ASCII characters, and avoids all of the character-set problems that you pointed out in your letter. By this means, I hope to make APL easily available to schools and, perhaps more importantly, to get it into the hands of young people working outside of the school system.
I enclose a copy of a paper on these matters that will be presented at APL90 in Copenhagen. I would be pleased to receive any comments that you have, and hope to see you at the conference.
As to any help or advice on coming to Canada to work, I do not believe that I can offer you anything useful. Since retiring from Sharp, I have no affiliations of* contacts that could be useful. Moreover, as I said, the state of APL here seems to be no better than in France. However, if you can afford the time to work on treatments of mathematical topics in APL for use in schools or in independent study, I would be pleased to collaborate in any way possible.
I was sorry to hear the news of Gilles Martin. I do hope that I will see you at APL90.
Yours truly,
Ken
*sic Ed.
Inutile de dire le
contentement que j’avais eu au reçu de cette lettre et ma réponse ne pouvait
que refléter cette satisfaction au sujet des commentaires qu’il me demandait.
Ken
Iverson et Eugene McDonnell à la réunion APL ISO à l’Université de Princeton en
1989
Je suis allé bien entendu
à APL90 et le papier dont il parle dans cette lettre n’est autre que le papier
de sa conférence à Copenhague intitulé APL\ ? ce qui veut dire en clair
pour qui connaît APL : Extension de l’APL à tout ce que l’on voudra,
autrement dit, sans limitation. Ce n’est autre que le langage J. Après la
conférence, je lui ai demandé pourquoi avoir choisi J ? et pour le
devancer, je lui ai dit : est-ce parce que J est entre I et K (Ken
Iverson) et le langage K existe déjà. De plus les lettres H,I,J,K se suivent (H
pour Roger Hui : il ne faut pas oublier que le développement en C dont il
parle a été fait par Roger Hui).
Il me répondit que c’est
Roger Hui qui a choisi J car c’est la touche centrale du clavier sur lequel on
a le plus de chance de tomber les yeux fermés ! d’ailleurs, cette touche
est une des touches pour les aveugles (les touches qui ont un trait ou un point
en relief pour les reconnaître).
J’avais trouvé, dès 1983, en cherchant
systématiquement dans les diverses bibliothèques de l’APL IP Sharp, une zone de
travail où il y avait les travaux de Ken et qui se nommait MODEL et ensuite MODEL7051…
La fonction principale pour commencer était tout
simplement APL.
Je l’avais informé d’ailleurs dans un échange de
messages en Janvier 1986 que j’avais découvert cette WS et que je l’utilisais.
Le sujet de ce message était le fait que j’avais lu dans la revue APL Quote
Quad 16 2 de Décembre 1985 page 35 un article parlant de sa dernière visite en
Finlande en Mai 1985 et qui concernait ses deux conférences, l’une sur son
manuscrit "A Dictionary of the APL-Language", l’autre sur l’enseignement
aux programmeurs des moyens de tirer parti dans le domaine des mathématiques
appliquées.
Je lui demandais s’il voulait bien me procurer le
texte de ces conférences.
Voici un extrait significatif de cet article dans
APL Quote Quad.
"In
his new terminology each constant is a ‘noun’, each variable is a ‘pronoun’,
each function is a ‘verb’, and each operator is an ‘adverb’. Many of the ideas
of Dr. Iverson looked very promising as tending to clarity, simplicity, and
consistency. Comparing his new syntax and APL2 he made some very critical
remarks about allowing so many exceptions and vague concepts in APL2. "
Je rapprocherais cette dernière remarque au fait que
quelques années plus tard, l’extension de la norme se dirigeait
"dangereusement" vers APL2 et je me souviens d’une discussion assez
mouvementée à ce propos à Hellerup lors de la réunion APL ISO en 1990 juste
après le congrès APL.
E. McDonnell et moi étions du même avis… et Ken
également s’il avait été là !
Ken ne laissera en moi que de très bons souvenirs, il
m’a toujours procuré les renseignements que je désirais et m’a toujours
encouragé. Pour ne citer que quelques exemples, il m’a procuré toutes les
versions de J que je désirais et même sa version APL d’IP Sharp avec la
documentation, il m’a dit être content que je fasse le tutoriel de J à Anvers
en 1994 et à cette occasion il m’a donné la dernière version J/Windows de l’époque.
Il a accepté gentiment les traductions en français que j’ai faites de
"Tangible math" et "Programming in J". Il m’a même souhaité
une retraite aussi heureuse que la sienne ! je vais essayer !
On dit qu’il avait des réparties ou des
comportements surprenants… sur le plan intellectuel bien sûr, et je citerai une
anecdote à ce sujet :
Un soir dans un restaurant, je pense que c’est à
Princeton, il nous a fait l’amitié de venir à notre table (la table des
français): il s’est mis en face de moi, j’avais Gérard Langlet à ma gauche et
Jean-Jacques Girardot en face de Gérard.
Dans la discussion, nous avons été amenés à lui
poser une colle qu’un examinateur avait
posé à un candidat à Polytechnique (colle qu’on ne peut poser qu’une fois, les
candidats des années suivantes sont au courant !) c’est calculer [ou
développer pour tenter de piéger] le produit (x-a) (x-b) …. (x-z)
Ceux qui n’ont pas assez de présence d’esprit
commencent à développer…
Nous avons été stupéfiés (et surpris !) de sa
réponse immédiate et tout à fait exacte qu’il a écrite sur une serviette
en papier (tant pis pour les professeurs de l’X qui ne connaissent pas APL ! en tout cas
avec APL, ils ne pourraient plus faire les malins ! ils auraient plutôt
l’air pantois !)
Xx ª A a,b,c,…,z le produit est Y×/X-A
A son tour il a été surpris lorsqu’on lui a dit que
le résultat est 0 puisqu’il y a le terme (x-x). Mais bravo pour la réponse de
toute manière exacte et vite faite !
Quelques urls au sujet de Kenneth Iverson:
http://c2.com/cgi/wiki?KenIverson
http://www.langreiter.com/space/2004-10-21-kennethIverson
http://earl.strain.at/space/vanilla-backlink-browser&blb-for=J
http://lambda-the-ultimate.org/node/view/334
Le dernier congrès APL auquel j’ai assisté et où se trouvait Ken Iverson fut celui d’APL97 à Toronto.
Kenneth Iverson lors de sa conférence à APL97 à Toronto
Création d’images en J au
Workshop d’APL 97 organisé par Clifford A. Reiter
Au 1er
plan : Michel Dumontier, au 3ème plan : Ken Iverson
Ken Iverson et Roger Hui à la conférence J2000 à
Toronto
Avec l’aimable permission de Ellis K. Cave
A quoi ressemble l’APL ?
Tri
de chaque ligne d’une matrice en ordre croissant
(½X)½(,X)[A[(,³(²½X)½¼1½X)[A,X]]]
Valeur
d’un polynôme de coefficients C pour la valeur X
(X°.+,0)C
Partie
entière et fractionnaire d’un nombre
0 1X
Interprétation
du nombre N écrit en chiffres Romains
+/Aׯ1*A<1²A0,1000 500 100 50 10 5 1['MDCLXVI'¼N]
Ecriture
de fonctions :
L'année
A est-elle bissextile?
ZBI A
Z¬/0=4 100 400 4000|A
Quel
est le jour de la semaine d’une date ?
ZJOUR X;D;M;Y;IO;J;S
IO0 ª DX[0] ª MX[1] ª YX[2]
J(DY Y)+(+/(¯1+M)DM Y)+D-1
S7
2½'DILUMAMEJEVESA' ª ZS[7|J;]
Nombre
de jours des mois de l’année A
ZDM A
Z28+3,(BI A),10½5½3 2
Indice
du premier jour de l’année A (0=Dimanche)
ZDY A
Z7|A+-/(A-1)÷4 100 400 4000
JOUR 17 12 1920 © Quel
jour Ken est-il né ?
VE
JOUR 25 10 1940 © nous
sommes nés le même jour !
VE
JOUR 19 10 2004 © Quel
jour Ken nous a-t-il quitté?
MA
RIP
A quoi ressemble le J ?
Produit
de 2 polynômes
pp=:+//.@(*/)
Dérivée
d’un polynôme :
pdi=:1: }. ]* i. @#
chiffres
Romains : cr=: 'MDCLXVI'
décodage
décimal des valeurs aux indices de l’argument :
dd=: {&1000 500 100 50 10 5 1
nombres
décimaux à partir de valeurs en chiffres Romains :
ndr=: [: | [:-/]+//.~0:,~2:</\]
Interprétation
d’un nombre écrit en chiffres Romains :
decr=:ndr@dd@(cr&i.)
Solution
d’un système d’équations linéaires :
V%.M NB. M : matrice des coefficients, V :
vecteur à résoudre
Déterminant
d’une matrice :
det=: -/ .*
Triangle
de Pascal d’ordre n :
(i.n)!/i.n
xième
permutation d’ordre y
np=:A. i. NB. utilisation : x np y
Toutes
les permutations d’ordre y
pn=:i.@! A. i.
Conversion
de degrés Celsius en Fahrenheit :
CenF=:32&+&(1.8&*)
Conversion
de degés Fahrenheit en Celsius :
FenC=:CenF ^:_1 NB. inutile de
peiner à écrire la fonction : elle se calcule par la puissance inverse de
fonction.
Quelle
température devait-on lire dans un hôtel de congrès APL/J ?
CenF 18
18.5 19 19.5 20 20.5 21 21.5 22
64.4 65.3 66.2 67.1 68 68.9 69.8 70.7 71.6