Hommage à Ken Iverson

Michel J. Dumontier                                                           mjdumontier@free.fr
 

 

 

 

 

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é la WS de la notation alpha oméga que j’avais écrite spécialement pour l’Ampère WS1, un ordinateur portable avec écran à cristaux liquides, entièrement dédié à APL sur lequel j’avais travaillé (pendant mes congés !) à la société SOFREMI maintenant disparue. On ne pouvait rien faire d’autre que de l’APL sur cette machine.

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.

Lors de la réunion sur l’extension de la norme APL à l’Université de Princeton où Ken était venu  avec Eugène McDonnell, j’en ai profité pour dire les fonctionnalités  que j’aurais voulu trouver dans APL, même avant l’extension ! et sans lesquelles j’étais bloqué pour exprimer des besoins en mathématiques. En effet, en APL il n’y a que 5 opérateurs qui n’agissent que sur des fonctions primitives pour fabriquer des fonctionnelles, j’aurais voulu entre autres, qu’on puisse définir ses propres opérateurs qui soient capables d’agir sur des fonctions définies elles aussi par l’utilisateur. La liberté totale en quelque sorte… sinon APL ne mériterait pas un des nombreux acronymes qu’on lui avait attribué à Manchester (à l’occasion d’un de ces fameux jeux des congrès APL) dont l’un est l’Art de Programmer en Liberté !

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 1Y2

April 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 !)

Xª  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 1‚X

 

Interprétation du nombre N écrit en chiffres Romains

+/Aׯ1*A<1²A„0,1000 500 100 50 10 5 1['MDCLXVI'¼N]

 

Ecriture de fonctions :

 

L'année A est-elle bissextile?

Z„BI A

Z„¬/0=4 100 400 4000|A

 

Quel est le jour de la semaine d’une date ?

Z„JOUR X;D;M;Y;ŒIO;J;S

ŒIO„0 ª D„X[0] ª M„X[1] ª Y„X[2]

J„(DY Y)+(+/(¯1+M)†DM Y)+D-1

S„7 2½'DILUMAMEJEVESA' ª Z„S[7|J;]

 

Nombre de jours des mois de l’année A

Z„DM A

Z„28+3,(BI A),10½5½3 2

 

Indice du premier jour de l’année A (0=Dimanche)

Z„DY A

Z„7|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



1 Reproduit intégralement dans APL Quote Quad 18 1 pp 5-40