yatc (Yet Another Tunes Co-developer)
Codrin Nichitiu
Codrin.Nichitiu@ens.ens-lyon.fr
Mon, 6 Mar 1995 00:31:06 +0100
Salut toi !!
Desole pour le retard. Je viens de lire le
message pessimiste de jecel@lsi.usp.br.
Pendant ce week-end j'ai eu une idee qui est
vieille comme le monde. De toute maniere,
ce que Tunes HLL devrait etre est d'une part
Lisp, d'autre part Prolog et d'autre C,
orientes objet, munis d'un system de logique
modale, et doubles d'un moyen de retrouver
les informations de maniere associative,
et d'apprendre au fur et a mesure.
C'est assez vague ce que je dis; au fait j'ai une
idee bien plus precise, concernant le modele
d'implementation. Je vais essayer d'en realiser
une premiere variante (donne-moi deux ou trois
semaines) et apres on en reparlera.
En gros je pense a une histoire de dico (comme
dans PostScript, peut-etre) ou l'on definit des
NOTIONS (qui sont comme les classes d'objets),
mais en fonction du CONTEXTE. Comment ? De deux
manieres: explicative (donc une notion en termes
des autres notions (- pointeurs -)) et imperative
(donc une procedure executable associee; attention,
cette procedure pourra faire beaucoup de choses,
y compris modifier le dico, etc. Toute puissante,
avec toutes les verifications necessaires)
((( Tu te rends compte qu'il n'est pas difficile
d'avoir plusieurs dicos, en utilisation en meme
temps, couples avec des 'OU' ou des 'ET'...
aussi est-il facile d'instaurer des droits d'access
aux dicos, de definir des procedures d'auto-parsing, etc.)))
Et la bombe: le seul langage qui puisse satisfaire
le cahier des charges est LE LANGAGE HUMAIN
(au fait meme un sous-ensemble de celui-ci).
Malheuresement je n'arrive pas bien a saisir la
notion de ... notion (au fait la notion de SENS,
au sens humain du terme) c'est pourquoi je me
permets d'affirmer que dans une premiere approximation on
pourra considerer que le sens reside dans les interconnexions
(donc definition explicative) et dans les actions
(donc definition imperative).
[[[ Au fait tout ca existe deja, car le dico n'est que
le programme source (def. explicative), et la bibliotheque
d'executables (def. imperative). Donc rien de vraiment
nouveau... ]]]
Tres bien tout ca. Comment programmer la-dedans ?
La mission de l'ordinateur sera de porter un dialogue
avec des parteners (humains ou ordinateurs).
Donc on dira a l'ordinateur:
- Mon brave, j'aimerais programmer un petit peu.
Et l'ordinateur repondra:
- D'accord, cher partenaire. J'attends vos algorithmes
et/ou definitions.
Evidemment le modele ideal de HLL est un langage dont
C, Lisp, Prolog, Forth, PostScript, etc. sont des
sous-ensembles. Et ce sera implemente petit a petit.
Concernant la syntaxe, il est evident que je vais avoir
du culot et je vais vouloir qu'elle soit celle des
langages humains (des langues: francais, anglais, etc.).
Le vocabulaire va etre developpe progressivement, et de
toute maniere on pourra toujours charger uniquement le
dico dont on a besoin pour le boulot precis.
(Truc genial: si nous sommes malins, ceci peut
aboutir aussi a la traduction automatique. C'est tres
naif ce que je dis, mais on verra bien...)
Au fait le nom est un ensemble, et le verbe est une fonction
de modification d'ensemble. Les adjectifs (en tant qu'attributs)
sont des fonctions aussi, etc. (et une fonction est aussi
un ensemble... Marrant, non ? I work, he works (verbe) et
The work you've done (nom)). Le langage humain peut etre
vu comme un espace vectoriel plus complique que ceux
classiques. Je peux me forcer a en trouver une structure
mathematique rigoureuse (je ne sais pas si c'est tout a fait possible).
Si j'en ai envie, je le fais aussi ces semaines.
C'est bien rigolo tout ca, hein ?
Qu'est-ce que t'en dis ?
C