J'étais tombé sur hyperCard, avait entendu parlé d'AppleScript, mais même pas encore essayé sur mon nouveau Mac ! Génial, je vais pouvoir scripter mon système avec ça !
En fait, une des pistes que j'explore, est de pouvoir écrire des phrases à la syntaxe simplifiée, contextuel au vocabulaire afin d'écrire du code.
Plus clairement, au lieu de partir de la logique habituelle qui consiste à dire qu'une grammaire précise s'applique à l'appel d'une fonction, j'aimerai que ce soit le nom de la fonction qui impose contextuellement sa grammaire.
Par exemple :
(je fais du franglais, car l'anglais possède moins de déterminant que le français)
CréerUnRépertoire <où> NamedBy
En gros la structure grammaticale de la fonction va donner des renseignement sur le type des données, et permettre d'utiliser des mots de liaisons.
Exemple
if exist file (repSrc+"\"+uneVariable) then
fileCopy itself to repDest
Le mot if attend une condition, classique, or le syntagme exist file <Nom Fichier> renvoi un booléen. Exist File est la combinaison de deux mots où exist attend un ensemble et un élement.
Ici l'analyseur de contexte va comprendre que dans exist file <Nom fichier> file désigne intrinsèquement un emsemble (bien qu'il soit lui même un mot fonction) et que le paramètre de file est l'élément recherché.
Il va aussi déduire que itself revient à (repSrc+"\"+uneVariable)
fileCopy itself to repDest a pour syntaxe fileCopyto <localité>
Bref, (je réfléchis en écrivant hein...), ya pas mal de problèmes.
En fait il faut créer un graphe de concept qui permette de décrire des notions, comme la localité, le nom, "quoi", "qui", "vers", etc... De manière à pouvoir les contextualiser pour chaque contexte ensembliste.
Par exemple dans l'ensemble "Arborescence de fichier", une localité est un chemin répertoire ou fichier précis.
Dans une structure de donnée représentant un réseau, ce sera une ip donné. Dans un xml, ce sera un chemin, etc...
C'est un peu logique flou en fait. C'est pour cela que j'essaye de formaliser une grammaire assez lâche, mais qui permette à une phrase, comme présenté en exemple ci dessu, soit compréhensible par l'interpréteur.
Alors quel est mon but ? Je déflore un peu, car je vous ferais la surprise avec un gros journal quand j'aurai (et si je) finis, où tout au moins que j'aurai produit une conceptualisation qui tienne debout et me semble exploitable (l'oeil inquisiteur de mon ami Benoit Sonntag qui est un des meilleurs spécialiste en compilation objet et ne ratera aucun trou logique, m'obligera à présenter quelques chose de solide).
C'est en lisant le texte de Victoria Livschitz, dont j'ai traduit l'interview dans un des deux journaux cités que j'ai compris ce qu'était le KeyWord central était "intuitivité", il faut que les langage de programmation s'adapte à la façon de penser, de parler de l'Homme.
L'autre apport d'importance - outre que d'être développeur de métier adorant les langages type SQL, regexp, xpath et détestant l'impératif - fut une discussion avec Nat Makarevitch (entre autre créateur d'IdealX). J'étais déjà en train d'essayer de penser à un langage où, comme en SQL, regexp, Xpath, je demande à l'ordinateur de m'envoyer un résultat en décrivant ce que je veux et non en décrivant ce que l'ordinateur doit faire pour l'obtenir.
Plus trivialement, écrire des boucles à longueur de journée, ça m'emmerde.
Un bon select from where dans un objet ça me va parfaitement, j'ai autre chose à faire que de concevoir l'algo qui ma me donner le résultat et j'ai absolument horreur de se sentiment de perdre mon temps à écrire des conneries.
(Je sais il existe ça et là des lib permettant de le faire en .Net/Java/... mais c'est hyper lourd à mettre en oeuvre)
Nat m'a parlé du projet http://Tunes.org et de l'objectif de créer en définitive une sorte de méta langage. Bref un langage où on décrit à la machine ce qu'on veut qu'elle fasse, et non que l'on décrive un automate, un graphe de code, bref une sémantique opérationelle http://fr.wikipedia.org/wiki/S%C3%A9mantique_op%C3%A9rationn(...) , où l'on décrit une métaphore d'exécution sur une machine virtuelle (qui exécute ton code).
Le but est de travailler avec une sémantique plus axiomatique avec des fortes notions de reconnaissance de formes, de structures.
J'ai vite compris que le background et les partis pris de l'abruti (pourtant normalien, mais qui a écrit cette horreur là : http://www.quebecoislibre.org/030927-11.htm qui me donne envie de vomir en tant que démocrate) qui mène ce projet va le diriger droit vers l'échec (qui a d'ailleurs l'air dors et déjà mort).
AMHA, je pense qu'un type qui prone un extrémisme scientifique, qui est l'individualisme méthodologique, base théorique des néolibéraux (dont il est un des pires représentant) ne permet pas de comprendre les concepts fondamentaux qui mèneront à la conception d'un métalangage.
En ce qui me concerne, je suis au miyeux, entre déterminisme et individualisme méthodologique, avec des phénomènes d'attractions, et de probabilité de tomber dans le déterminisme, stop, je me lance pas dans l'explication.
Bref tout ça pour dire que je n'ai pas envisagé de collaboration avec lui et ait commencé à réfléchir à la question dans mon coin, en travaillant sur différentes thématiques : syntaxe/linguistique, Métadynamique des Système Multi Agent, psychologie cognitive (eh oui on s'adapte à un humain, faut comprendre comment il fonctionne), axiomatique mathématique, etc...
Je fais une formalisation, je demande l'avis à plein de monde et surtout à Benoit qui me dira si c'est compilable, interprétable ou pas...
Voilà pour répondre à ta question, mais pour le moment, j'ai plus d'idée en vrac qu'autre chose et n'ait pas encore effectué de synthèse.
A dans quelques mois...
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Du côté de la syntaxe
Posté par Ontologia (site web personnel) . En réponse au journal [annonce]Formalisation grammaticale d'un pidgin. Évalué à 2.
En fait, une des pistes que j'explore, est de pouvoir écrire des phrases à la syntaxe simplifiée, contextuel au vocabulaire afin d'écrire du code.
Plus clairement, au lieu de partir de la logique habituelle qui consiste à dire qu'une grammaire précise s'applique à l'appel d'une fonction, j'aimerai que ce soit le nom de la fonction qui impose contextuellement sa grammaire.
Par exemple :
(je fais du franglais, car l'anglais possède moins de déterminant que le français)
CréerUnRépertoire <où> NamedBy
En gros la structure grammaticale de la fonction va donner des renseignement sur le type des données, et permettre d'utiliser des mots de liaisons.
Exemple
if exist file (repSrc+"\"+uneVariable) then
fileCopy itself to repDest
Le mot if attend une condition, classique, or le syntagme exist file <Nom Fichier> renvoi un booléen.
Exist File est la combinaison de deux mots où exist attend un ensemble et un élement.
Ici l'analyseur de contexte va comprendre que dans exist file <Nom fichier> file désigne intrinsèquement un emsemble (bien qu'il soit lui même un mot fonction) et que le paramètre de file est l'élément recherché.
Il va aussi déduire que itself revient à (repSrc+"\"+uneVariable)
fileCopy itself to repDest a pour syntaxe fileCopy to <localité>
Bref, (je réfléchis en écrivant hein...), ya pas mal de problèmes.
En fait il faut créer un graphe de concept qui permette de décrire des notions, comme la localité, le nom, "quoi", "qui", "vers", etc... De manière à pouvoir les contextualiser pour chaque contexte ensembliste.
Par exemple dans l'ensemble "Arborescence de fichier", une localité est un chemin répertoire ou fichier précis.
Dans une structure de donnée représentant un réseau, ce sera une ip donné. Dans un xml, ce sera un chemin, etc...
C'est un peu logique flou en fait. C'est pour cela que j'essaye de formaliser une grammaire assez lâche, mais qui permette à une phrase, comme présenté en exemple ci dessu, soit compréhensible par l'interpréteur.
Alors quel est mon but ? Je déflore un peu, car je vous ferais la surprise avec un gros journal quand j'aurai (et si je) finis, où tout au moins que j'aurai produit une conceptualisation qui tienne debout et me semble exploitable (l'oeil inquisiteur de mon ami Benoit Sonntag qui est un des meilleurs spécialiste en compilation objet et ne ratera aucun trou logique, m'obligera à présenter quelques chose de solide).
C'est en lisant le texte de Victoria Livschitz, dont j'ai traduit l'interview dans un des deux journaux cités que j'ai compris ce qu'était le KeyWord central était "intuitivité", il faut que les langage de programmation s'adapte à la façon de penser, de parler de l'Homme.
L'autre apport d'importance - outre que d'être développeur de métier adorant les langages type SQL, regexp, xpath et détestant l'impératif - fut une discussion avec Nat Makarevitch (entre autre créateur d'IdealX). J'étais déjà en train d'essayer de penser à un langage où, comme en SQL, regexp, Xpath, je demande à l'ordinateur de m'envoyer un résultat en décrivant ce que je veux et non en décrivant ce que l'ordinateur doit faire pour l'obtenir.
Plus trivialement, écrire des boucles à longueur de journée, ça m'emmerde.
Un bon select from where dans un objet ça me va parfaitement, j'ai autre chose à faire que de concevoir l'algo qui ma me donner le résultat et j'ai absolument horreur de se sentiment de perdre mon temps à écrire des conneries.
(Je sais il existe ça et là des lib permettant de le faire en .Net/Java/... mais c'est hyper lourd à mettre en oeuvre)
Nat m'a parlé du projet http://Tunes.org et de l'objectif de créer en définitive une sorte de méta langage. Bref un langage où on décrit à la machine ce qu'on veut qu'elle fasse, et non que l'on décrive un automate, un graphe de code, bref une sémantique opérationelle http://fr.wikipedia.org/wiki/S%C3%A9mantique_op%C3%A9rationn(...) , où l'on décrit une métaphore d'exécution sur une machine virtuelle (qui exécute ton code).
Le but est de travailler avec une sémantique plus axiomatique avec des fortes notions de reconnaissance de formes, de structures.
J'ai vite compris que le background et les partis pris de l'abruti (pourtant normalien, mais qui a écrit cette horreur là : http://www.quebecoislibre.org/030927-11.htm qui me donne envie de vomir en tant que démocrate) qui mène ce projet va le diriger droit vers l'échec (qui a d'ailleurs l'air dors et déjà mort).
AMHA, je pense qu'un type qui prone un extrémisme scientifique, qui est l'individualisme méthodologique, base théorique des néolibéraux (dont il est un des pires représentant) ne permet pas de comprendre les concepts fondamentaux qui mèneront à la conception d'un métalangage.
En ce qui me concerne, je suis au miyeux, entre déterminisme et individualisme méthodologique, avec des phénomènes d'attractions, et de probabilité de tomber dans le déterminisme, stop, je me lance pas dans l'explication.
Bref tout ça pour dire que je n'ai pas envisagé de collaboration avec lui et ait commencé à réfléchir à la question dans mon coin, en travaillant sur différentes thématiques : syntaxe/linguistique, Métadynamique des Système Multi Agent, psychologie cognitive (eh oui on s'adapte à un humain, faut comprendre comment il fonctionne), axiomatique mathématique, etc...
Je fais une formalisation, je demande l'avis à plein de monde et surtout à Benoit qui me dira si c'est compilable, interprétable ou pas...
Voilà pour répondre à ta question, mais pour le moment, j'ai plus d'idée en vrac qu'autre chose et n'ait pas encore effectué de synthèse.
A dans quelques mois...
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker