Intro
Au début, Chuck créa le Forth.
Mais il n'abandonna jamais la créature à son
triste sort...
Charles H. Moore, plus souvent nommé "Chuck" dans
les textes
anglophones consacrés au langage Forth est l'inventeur du
langage. On trouve, dans "Le Forth" (de C. Kevin McCabe et traduit par
Axel Harvey) édité par Belin Modulo en 1985, la
mention
suivante :
"... il fut engagé en 1968 par
le National Radio
Astronomy Observatory, où il installa le premier "vrai"
Forth...
En 1973, M. Moore s'associa à plusieurs individus pour
fonder
FORTH Inc., une entreprise ayant pour objet la distribution de versions
commerciales du langage..."
Ce qu'il y a de remarquable dans le parcours de Chuck Moore,
c'est
qu'il a tenté tout au long de sa longue vie active (qui se
poursuit encore à ce jour) d'améliorer sans cesse
le
langage dans ce que celui-ci a de "signifiant".
Vu de l'extérieur, on peut avoir le sentiment qu'ayant
trouvé une bonne idée, il n'a cessé de
s'interroger sur la nature profonde du concept qui la transcende : "
finalement, Forth, c'est quoi, vraiment ? ".
En ont résulté différentes
expérimentations : Forth minimaliste, Forth le plus portable
possible, processeurs minimalistes exécutant directement un
Forth minimaliste.
Chuck semble plus épris d'absolu... que du montant de son
compte en banque. C'est dire s'il a fait tache dans l'univers
informatique des 20 dernières années : une raison
de plus pour ressentir un peu d'admiration pour le personnage.
Si vous recherchez une biographie "officielle", vous pouvez
aller à l'adresse :
http://colorforth.com/bio.html
D'où l'on a extrait ces quelques citations :
Born in McKeesport Pennsylvania, near Pittsburg, in 1938 (...)
He learned Lisp from John McCarthy. And Fortran II for the IBM 704 to
predict Moonwatch satellite observations at Smithsonian Astrophysical
Observatory (1958). Compressed this program into assembler to determine
satellite orbits (1959). (...)
Chuck invented Forth (1968) and collected his personal software library
onto an IBM 1130 which was connected to the first graphics terminal
he'd seen (IBM 2250). Soon he used Forth to control the 30ft telescope
at Kitt Peak for the National Radio Astronomy Observatory (1970).
Ce qui peut se résumer ainsi :
Né en 1938 en Pensylvanie (un état de la
côte Est des E.U.).
En 2003, cela lui fait 65 ans, donc.
A pratiqué Lisp et Fortran qu'il utilise pour faire des
calculs de prédiction de passages de satellite
(on trouve ici l'articulation avec l'astronomie)
Invente Forth en 1968. Connexion avec un des premiers ordinateurs
graphiques
(tiens : colorforth a une interface graphique, bien qu'il soit
taillé "mini", est-ce un hasard ?). En 2003, il a 35 ans de
Forth derrière lui... j'ai intérêt
à bosser
:-)
Utilisation de Forth pour contrôler un
radio-télescope en 1970.
cmforth, un langage dédié au processeur Novix (et réciproquement)
(d'après un extrait traduit par
Frédéric Dubois)
Le premier Forth en hardware était le Novix. Chuck a
écrit cmForth pour la première machine Forth.
cmForth ne pesait que quelques kilos de code-objet et environ 30K de
source. Il comprenait un métacompilateur pour se compiler
lui-même (a.l. : se refabriquer à la
volée) ... et était très petit et
très puissant.
Il était si rapide que, lorsqu'il était
lancé
depuis une disquette, il pouvait démarrer et se
métacompiler lui-même depuis la disquette avant
que le
lecteur n'atteigne sa vitesse de croisière.
Cette phase a été appelée
hardware Forth puisque le Forth écrit par Chuck
était pour le Novix qui était un Forth dans un
processeur
...
Chuck n'était cependant pas satisfait de cmForth parce qu'il
était trop lié au hardware. Le Novix avait
certaines caractéristiques puissantes mais écrire
un compilateur pour tirer parti des caractéristiques
spécifiques de ce hardware exotique était trop
compliqué et trop spécifique à ce
hardware seulement
...
Forth a été un langage très portable
parce qu'il
était basé sur l'implantation de la machine
virtuelle
Forth sur un certain hardware. Une fois cela fait vous aviez affaire
à plus ou moins la même machine virtuelle sur
n'importe
quel Forth. Chuck examina le concept et décida de concevoir
une
machine virtuelle Forth améliorée et
conçut
à la fois ces nouveaux processeurs et ces nouveaux Forth ...
Il voulait s'éloigner d'une approche de Forth
spécifique au hardware et retourner à
l'utilisation d'une approche portable pour son nouveau Forth.
Les processeurs "Forth"
On en présentera trois ici : Novix, P21 et F21Novix
On trouve sur le site http://www.ultratechnology.com/chips.htm : cette description de Novix :
Novix NC4000 First Forth chip by Chuck Moore and others at Novix Inc., PGA 1985, Forthkit, chips, boards, software from Computer Cowboys (Chuck Moore)
Ce qui peut se traduire par :
"Novix NC4000 est le premier processeur Forth réalisé par Chuck Moore et d'autres à la société Novix Inc., en 1985 (les IBM PC et compatibles commençaient à se diffuser largement), kit Forth, puces, cartes, logiciel par "Computer Cowboys (Chuck Moore)".
En cliquant sur le lien Novix de la page citée ci-dessus, on obtient une information très riche sur ce processeur (en anglais et non encore traduit ici), dont on peut citer ceci, qui est un peu redondant :The Novix NC4000 is a super high-speed processing engine which is designed to directly execute high level Forth instructions. The single chip microprocessor, NC4000, gains its remarkable performance by eliminating both the ordinary assembly language and internal microcode which, in most conventional processors, intervene between the high level application and the hardware.
P21
Toujours à partir du site http://www.ultratechnology.com/chips.htm : cette description de P21 :First VLSI chip by Chuck Moore 1994 and designed with the first release of OKAD, 100 mip, 1.2u, 40-pin DIP, on-chip composite 15-color/gray scale video generator. Chips, boards, software, from Offete Enterprises, Inc., Dr. C. H. Ting
Ce qui peut s'exprimer ainsir :
le P21 est le premier processeur
à forte
intégration des composants (VLSI) défini par
Chuck Moore,
en 1994, avec la première version du langage OKAD. 100 MIPS
(million d'instructions par seconde), gravé à 1,2
micromètre, puce à 40 pattes,
générateur de
signal vidéo 15 couleurs (ou nuances de gris) inclus. Puces,
cartes, logiciel, tout cela fourni/fabriqué par Offete
Enterprises Inc, dont le "chef" serait M. C.H. Ting. (trad. :
à
moins d'un contresens).
Rem.: En 1994, Chuck a 54 ans et 24 ans de Forth. Et il en veut encore
? A cet âge, mon voisin est entré en maison de
retraite
(véridique !).
Rem2.: Il est encore possible d'acheter cet ensemble, à
partir du lien cité.
F21
Toujours à partir du site http://www.ultratechnology.com/chips.htm : cette description de F21 :
the foxchip. UltraTechnology's own second generation VLSI design by Chuck Moore using OKAD. Prototyped in .8u The prototypes have a CPU w/ 500mip/internal 240mip/sram 120mip/dram, 40 msps analog coprocessor, composite and RGB video coprocessor, serial/network router coprocessor, parallel port, rtc. Chips, software, prototypes in the UltraTechnology Store (this site). 500 MIPs in 1997 in .8u scal
Ce qui peut se traduire par :
Le "chip" du Renard (allusion
à Jeff Fox, acteur important du monde Forth, sachant que
Fox=Renard en anglais).
Seconde génération de processeur à
forte
intégration (VLSI) défini par Chuck Moore en
utilisant le
langage OKAD. Prototype gravé avec une finesse de 0,8
micromètre. Avec cette finesse de gravure (en 1997), le
processeur exécute 500 MIPS en cycles internes, ce qui se
traduit par 240 MIPS quand on le relie à de la SRAM et 120
MIPS
avec de la DRAM. Divers coprocesseurs spécialisés
:
vidéo composite et RGB, série et
réseau, port
parallèle.
Des prototypes pouvaient être achetés chez
UltraTechnology (ce n'est plus vrai).
En utilisant des processus plus actuels, il pourrait être 10
fois plus rapide (d'après Jeff Fox).
Rem.: Le Virus Informatique a publié un article remarquable sur le F21 et le P21. Cet article est consultable en ligne sur le site du Virus.
Extraits d'interview de 1993 à 2000
A l'adresse http://www.ultratechnology.com/moore4th.htm on peut lire (extraits) :
The goal in what I am trying to do is not provide the simplest possible hardware or the simplest possible software but the simplest combination of the two. (...)
Ce qui peut se dire ainsi :
mon objectif n'est pas de proposer le matériel le plus simple possible, ni le logiciel le plus simple possible, mais plutôt la combinaison des deux la plus simple posible.
Plus loin...
I am utterly frustrated with the software I have to deal with. Windows is beyond comprehension! UNIX is no better. DOS is no better. There is no reason for an OS. It is a non-thing. Maybe it was needed at one time. (...)
Ce qui peut se dire ainsi :
La première fois que
j'ai lu ceci, j'ai
été très surpris, voire
scandalisé : je
venais d'investir des mois à me familiariser avec Linux.
Depuis,
j'ai réfléchi.
Les logiciels dont je dois m'accomoder professionnellement me mettent
dans un état de profonde frustration. Windows est
incompréhensible ! UNIX n'est pas meilleur, pas plus que
DOS. Le
système d'exploitation (généraliste)
n'a pas de
raison d'être. C'est une "non-chose". Peut-être
cela a-t-il
été utile à un moment ?
Plus loin ...
But nobody realized what was going on with this kind of threat, its
insidious.
You don't realize that it is a serious "conquer the world" threat. Well
it occurred to me
that we are subject to that kind of attack. That somehow someone
slipped into the
software industry and has been taking over the world. And everybody has
been going along
with it accepting that this is the way things are in software and that
forty mega lines of
code is needed to do anything interesting.
(...)
Maybe its time to say no. This isn't the way it has to be. We know it
doesn't have to be
that way. Yet we are virtually the only people in the world who do.
(...)
A thought occurs to me, if I were to retire what would I do? One thing
I could do is
go out to someone who has a million lines of code and say, "Hey, I'll
rewrite this
for you. You pay me a reasonable amount and a bonus upon completion and
I'll shrink it by
two orders of magnitude."
(You should charge by the lines eliminated.) (laughter)
Remarque : traduction sans commentaires :-) d'un texte daté de 2000
Nul ne réalise ce qui
se passe avec cette
sorte de menace, elle est insidieuse. On ne se rend pas compte qu'il il
a là une menace de "conquête du monde". Il me
semble que
nous en sommes là. Quelqu'un s'est introduit dans
l'industrie du
logiciel et s'en est emparé. Et tout le monde semble
accepter
qu'il en soit ainsi et que 40 millions de lignes de code soient
nécessaires pour faire quelque chose
d'intéressant.
(...)
Peut être est-il temps de dire non. Cela ne devrait pas
être ainsi. Nous savons ici que ce n'est pas la bonne
direction.
Cependant nous sommes pratiquement les seuls au monde à le
dire.
(...)
Il m'est venu une idée : si je voulais prendre ma retraite,
que
devrais-je faire ? Par exemple aller voir un entrepreneur qui a un
million de lignes de code et lui dire :
"Hey, je vais vous réécrire ceci. Vous me paierez
une
somme raisonnable mais complétée d'un bonus
proportionnel
à la réduction de la taille du code qui devrait
être de deux ordres de grandeur (cent fois plus court).
En somme, ne pas faire payer la ligne, mais la ligne
éliminée (rires dans l'assistance).
Chuck Moore consultant
Ce qui suit est extrait de la page http://colorforth.com/consult.html. Voici une traduction "au moins mal" (selon mes aptitudes à traduire-comprendre le texte de l'auteur.Consultant
Je suis mécontent des langages informatiques et des applications réalisées avec. Cela semble être le cas d'un certain nombre de personnes. Les systèmes d'exploitation sont extrèmement complexes et peu fiables. Les applications sont gigantesques et boguées. Tout un secteur industriel vit là-dessus, aussi la situation ne va pas s'améliorer.
Cela ne devrait pas être ainsi. Je ne peux changer l'industrie (informatique), mais je peux proposer des solutions fines à quelques clients. Ayant une grande expérience autour de solutions adaptées aux sciences, j'ai créé des logiciels depuis 40 ans. Voir ma biographie. Je ne suis pas un manager. Je n'ai pas d'organisation structurée. (Mais) je suis expert dans l'analyse et la solution de problèmes.
Client
Si vous voulez du C, Windows, Unix, allez voir d'autres offres de services. Si vous cherchez une solution rapide, simple, peut être même à un problème insoluble, alors lisez la suite.
Je travaille avec colorForth. Il s'agit du langage le plus merveilleux que j'aie jamais vu. Je suis persuadé qu'il permet de coder avec 1% de l'équivalent en langage C.
Bien qu'il soit incompatible avec un autre logiciel et les formats de fichiers, il est compatible avec n'importe quoi par l'intermédiaire du bus, du réseau, d'un médium mobile (disquette par exemple). C'est à ce niveau que le standard s'applique : au niveau de la communication et non à celui de l'implémentation. A ce niveau, l'incompatibilité améliore la sécurité.
Je cherche des clients qui veulent modifier leurs codes. Les applications sont fournies avec leurs sources et la documentation ; l'apprentissage est inclus. Elles sont recompilées (instantanément) à chaque fois qu'on les exécute. L'édition est aisée, les tests sont faits en mode interactif et les changements provisoires, tant que l'on n'a pas sauvé l'application. Cela permet l'amélioration jusqu'à une solution exacte.
Application
Pour certaines applications, il peut être utile de travailler avec Windows. Ce n'est pas toujours le cas. Une application devant s'exécuter sur un ordinateur donné est seulement liée à lui par ses possibiltés et ses performances.
colorForth s'exécute sur les PC. Ce "monde" a changé pendant les dix dernières années. Pas le logiciel. Un PC puissant coûte moins de $1,000. Pas besoin de s'embêter avec le "multiple threads" ou les pages de mémoire virtuelle. Les fonctions des systèmes d'exploitation classiques sont obsolètes. Ils sont devenus le problème plus que la solution.
colorForth se lance depuis une disquette, copie 1.4 Mo dans la RAM, arrête le lecteur, se recompile et s'exécute indéfiniment. Ou démarre depuis le disque dur, si Windows n'a pas gelé le secteur de boot. Avec des Mo de RAM il n'est plus nécessaire de faire des accès continuels aux disques.
Tout au long de ma carrière j'ai
interfacé des
ordinateurs avec des matériels inhabituels, depuis les
affichages et disques, jusqu'aux satellites et robots.
Forth est excellent pour
- Déboguer un hardware de façon interactive.
- Pour réaliser des simulations.
- Pour cross-compiler du code pour des microprocesseurs embarqués.
- Pour écrire des scripts.
Processeurs
Je conçois également des processeurs. Un processeur personnalisé n'a de sens que pour une série de 100 000 (ou plus). Autant de puces que vous voulez. Non traduit : Turn-around on prototypes is 4 months. First, commission a simulation.
Cost
Coût de l'heure de consultant : $100/hr (augmenté des frais). Je négocierai une prestation globale.
Quelques exemples de coûts :
* Installer colorForth sur votre PC peut prendre plusieurs heures : les affichages et les pilotes de disques ne sont pas réellement standards.* L'adaptation à votre configuration peut prendre plusieurs heures.
* Une application complète demandera de quelques jours à des semaines...
Pour une évaluation gratuite : chipchuck@colorforth.com
(....)Le coût d'un ordinateur dédié à une application est "rien". (il doit vouloir dire : la quincaille, cela ne coûte presque plus rien).
La valeur (d'usage) d'une application optimisée est immense.