Ontologia a écrit 2121 commentaires

  • [^] # Re: Y en a qui ont pas froid aux oreilles

    Posté par  (site web personnel) . En réponse à la dépêche Mono passe en version 1.2. Évalué à 3.

    Tu devrais faire de la politique toi. T'as toujours raison avec des raisonnements tordus.

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: Piste avec ls

    Posté par  (site web personnel) . En réponse au message less et les couleur. Évalué à 2.

    Ta commande marche mais pas

    history | grep ldap | less -R

    alors que si j'enlève le less, j'ai tous les ldap trouvé en rouge...

    C'est bizare non ?

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: des sources !

    Posté par  (site web personnel) . En réponse au journal Marre des cons.. Évalué à 1.

    Et en plus on y retrouve les fameux 9 dB ;-))

    Ah les journalistes, dès qu'il y a un peu de physique, ils sont perdus...

    Pour infos, une voix chuchoté est à 30 dB...

    http://www.audition-infos.org/framegauche/+infos/A8echelle.h(...)

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: Une pièce du puzzle

    Posté par  (site web personnel) . En réponse à la dépêche Adobe libère sa machine virtuelle ActionScript 3. Évalué à 5.

    Je pense aussi qu'un des grands désavantage du monde libre est le manque criant d'IDE de développement vraiment à la hauteur.
    Les gens restent coincés sur vi/emacs.
    Ces deux logiciels sont très puissant, mais c'est pas un AGL où je peux gérer la base de données, dessiner l'IUH, couplé à une doc véritablement claire, aidé d'assistants d'écriture de code.

    Bon oui, ya Eclipse, mais ça va pas aussi loin quand même.

    Et j'ai pas d'équivalent à Flash pour faire du Svg.

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: Une pièce du puzzle

    Posté par  (site web personnel) . En réponse à la dépêche Adobe libère sa machine virtuelle ActionScript 3. Évalué à 6.

    Non leur objectif est clairement d'être multi plateforme : comme beaucoup ils parient sur l'hétérogénéité croissante des plateformes, Linux y compris.

    Ca sera surement pas mal propriétaire malheureusement, mais ça sera multi plateforme, sinon ça n'a aucun intérêt. C'est le discours de Kevin Lynch, le vice-président d'Adobe.

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • # Une pièce du puzzle

    Posté par  (site web personnel) . En réponse à la dépêche Adobe libère sa machine virtuelle ActionScript 3. Évalué à 10.

    La dépèche tombe à point car est récemment tombé sur les téléscripteurs et en particulier le magazine "décision informatique" la nouvelle du lancement d'Applo par Adobe qui se veut rien de moins que le concurent de .Net et Java.

    Apollo est une plateforme constituant un environnement d'exécution basé sur les technologies Flex/Flash, Html/Ajax ainsi qu'un moteur PDF.
    Des fonctionnalités permettant de gérer le mode déconnecté sont inclus dans la plateforme.

    Avec cette technologie, plus besoin de navigateur, en effet, ils utilisent carrément WebKit, l'évolution Made by Apple de KHTML avec un moteur JavaScript.

    Avec tout cela, on aura des applications Ajax/Flex/PDF sur le poste de travail qu'il sera difficile de différencier d'une application standard. Le socle pèsera de 5 à 9 Mo, soit sensiblement moins que Java ou .Net

    Côté performances, JIT+Webkit en sus des autres technologies assez éprouvées (Flash, Flex, Html, CSS, Javascript, Ajax), on devrait avoir de très bon résultats.

    Une belle bataille en perspective, et un concurent de plus poussant vers l'ouverture...

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: Compilation lente <=> Analyse de flot

    Posté par  (site web personnel) . En réponse à la dépêche Lancement du projet GlobalGCC. Évalué à 2.

    Ne pas oublier l'implications de changement de valeur de variable sur quelques centaines de lignes de code. Ne pas oublier non plus que ce n'est pas tellement le graphe du code qui bouffe de la mémoire, mais toutes les informations sur celui-ci (graphe de dépendances, intervales possibles de valeurs de variables, etc...)

    Quand au boucle, elles reviennent à un if avec un goto.

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: Compilation lente <=> Analyse de flot

    Posté par  (site web personnel) . En réponse à la dépêche Lancement du projet GlobalGCC. Évalué à 3.

    Dans une analyse de flot profonde, on étudie non pas le graphe du code, mais le graphe des exécutions possible du code, comme l'expliquait Antoine et Reno. La combinatoire explose donc très vite.

    Avec un code du style

    Bloc A
    if (cond1)
    _ if (cond2)
    _ Bloc C
    _ else
    _ Bloc C'
    else
    _ Bloc A''
    end if
    Bloc B

    Dans ce genre de cas (fréquent), tu cherches à analyser l'ensemble des intervales de valeur dans lesquels peuvent se trouver tes variables (n'oubli pas que ton code est réduit selon les primitives que j'ai donné plus haut), en effet, il faut faire des suppositions sur les chemins d'exécution pour détecter ceux qui ne seront jamais pris, malgré les apparences.

    Avec deux boucles imbriqués, tu dois tester le devenir de toutes les variables du bloc A en fonction des branchements sur cond1,cond2.
    En d'autres termes, à cause de ces deux if imbriqués, tu es obligé de représenter 4 évolutions possible des variables du bloc A, afin de détecter les intervals possibles, etc..
    Posons par exemple que tu déclares une variable n := n*2+1 dans le bloc A...
    Tu as 4 évolutions possible de cette variable n, qui peuvent avoir des conséquences dans le code. Ce qui signifie que tu dois (si n est modifié dans plus d'une des 4 branches de test) représenter toute la suite du graphe orienté en 4 versions (!).

    Imagine quand tu as 5, 20, 50 niveau de test imbriqués avec des énormes blocs de code à l'intérieur... Ta combinatoire explose.

    Ai-je été clair ? :)

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: Pas fou billou

    Posté par  (site web personnel) . En réponse à la dépêche Novell et Microsoft main dans la main !. Évalué à 7.

    Quand on vit dans l'entreprise lambda au jour le jour, on comprend vite que la taxe Krosoft s'impose à cause des formats ouverts ET des habitudes ET de la méconnaissance/peur des solutions alternatives.

    Pour avoir mené un projet de passage partiel à OO dans une petite boite, on se rend vite compte que l'argument "Licences gratuites" une fois l'épineux problème du format, va vite faire mouche.

    C'est très bien car en situation concurrentiel, il faut reconnaitre que Krosoft fait des efforts pour faire de très bon logiciel, MS Office étant très bon sur plein d'aspects.

    Je me souviens d'ailleurs du dir. régional nord ouest de Krosoft qui disait "on passe de réseaux d'entreprises fermés à réseaux ouverts, donc, nous aussi, à krosoft, on se met au format ouvert, pour s'adapter".
    J'ose croire que l'ère du monopole sans partage et sans concurrence est révolue...

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: Compilation lente <=> Analyse de flot

    Posté par  (site web personnel) . En réponse à la dépêche Lancement du projet GlobalGCC. Évalué à 6.

    c'est quoi qui bouffe de l'espace dans Lisaac ?
    D'après ce que j'ai compris de ce que m'a expliqué Benoit, c'est le graphe de dépendance, ou graphe de flot qui prend de la place en mémoire.

    Faut pas oublier que Lisaac est pas un compilateur procédural mais objet.
    En procédural, tu as deux dimensions : la variable globale et la variable locale.
    En objet tu as la variable globale, locale, et l'objet en question (on peut instancier autant de fois qu"on veut), ça monte donc très très vite (les sous graphes se dupliquent très vite...).
    Lisaac est un compilateur qui traduit ton code dans un langage élémentaire rassemblant , si je ne me trompe pas, les primitives suivantes :

    Read
    Write
    Switch (branchement)
    soustraction
    multiplication
    division
    and
    or
    test =
    >

    Avec ça, il optimise tout, et reconstitue du C...

    Sachant que la conditionnelle est défini dans la librairie pour être justement traduite dans ce mini langage, tu imagines bien que la granulité étant très fine, on arrive très vite à des graphes très volumineux. Prenons un simple

    a,b : STRING;
    a := STRING.create 64;
    b := STRING.create 64;
    a := "Esope reste ici".to_string;
    b := " et se repose\n".to_string;
    (a+b).print;

    Là dedans, à part la primitive print, et les chaînes qu'on retrouvera tels quels dans le source C produit, ca fait déjà un beau graphe quand tu utilises des primitives aussi fines que celles décrites plus haut...
    STRING est déjà un gros objet qui utilise lui même une cascade de code (gestion mémoire, initialisation, opération +, etc...).


    Ya la gestion des contrats qui prend énormément de place aussi, car les contrats sont propagés dans tout le code.

    Quand au moteur d'inférence, il fut implémenté (en 2001), mais mangeait 4 Go de mémoire pour 500 lignes de code (hors librairie), ils arrivaient à faire planter le calculateur du Loria avec, à l'époque (vers 2001).
    C'est en réduisant la profondeur de l'analyse de flot que Lisaac est devenu réalité.

    Un des principaux travaux de recherche des prochains mois de notre ami (maintenant qu'il a enfin un poste) va consister à réimplémenter une analyse profonde dans le compilateur, avec pour but d'améliorer la sécurité et la prise en charge des contrats, prouver le langage interne, etc...

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: Compilation lente <=> Analyse de flot

    Posté par  (site web personnel) . En réponse à la dépêche Lancement du projet GlobalGCC. Évalué à 10.

    Il est écrit dans l'article que l'optimisation sera globale et non plus locale.
    De quoi s'agit - il ?

    D'analyse de flot, très probablement.

    L'analyse de flot consiste à analyser toutes les branches d'exécutions du code, de produire un graphe de dépendances des données afin de détecter ce qui sera exécuté et ce qui ne le sera pas (qu'on appelle code mort).

    Typiquement, un objet C hérite de A et B, or dans le code on exécute que C.méthode(), B.méthode(), mais jamais A.méthode()

    A.méthode() est donc du code mort à ne pas inclure dans le code finale et à ne pas tester à (l'eventuelle) résolution dynamique de branche.

    Une analyse de flot peut être plus ou moins profonde. Ainsi une analyse très profonde peut être munie d'un moteur logique qui va par exemple détecter qu'une variable n est forcément pair (n := n*2;) et 10 km plus loins que l'on teste sa parité.
    Le moteur logique vire le test, ayant déduit qu'il ne sert à rien.

    Tout ceci permet d'optimiser avec bonheure toute sorte de choses faisable jusqu'ici par un humain mais rendant le code très vite illisible et inmaintenable.

    Ce genre d'algorithme est passeblement exponenentielle et est surtout très gourmand en mémoire.
    Lisaac qui est pour le moment le seul compilateur objet à implémenter ce type d'algorithme (oui je sais, prosélytisme), utilise environ 256 à 512 Mo pour compiler 50 000 lignes (pour 90 secondes de compilation sur une bonne machine).

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: Berrebi

    Posté par  (site web personnel) . En réponse au journal Xavier Niel (Free) répond à la FSF et attaque la GPLv3. Évalué à 4.

    http://www.transfert.net/a6502

    Jérémie Berrebi est un petit surdoué de la vague startup avant l'éclatement de la bulle. Il a commencé avec Net2One où il a levé beaucoup d'argent, et s'était installé dans des locaux très sympa du sentier de Paris, encore entouré de marchands de Tapis (à l'époque).

    Je ne sais pas trop comment ça s'est passé pour lui ensuite, faudrait peut être faire une page wikipedia en son honneur ? ;-))

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: Webcam, le Saint Graal

    Posté par  (site web personnel) . En réponse au journal Linux pret pour Mr Lambda ? pas si il a une webcam. Évalué à 3.

    Ca dépend des cas. Très souvent les librairies ont tellement changés qu'il est impossible de recompiler le logiciel.
    Et accroche toi pour installer la vieille version des librairies qui dépendent elles-même de vieille libs, etc... tout cela à degré n.

    Les exigeances de gcc, effectivement, mais j'ai toujours pu installer une v2.95 dans n'importe quel distrib de sorte à solutionner ce problème.

    Je te rejoint pour les drivers.
    Il faudrait peut être qu'ils pensent à une couche d'abstraction, et tant pis pour les eventuelles pertes de perfs...

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: Webcam, le Saint Graal

    Posté par  (site web personnel) . En réponse au journal Linux pret pour Mr Lambda ? pas si il a une webcam. Évalué à 1.

    J'ai une vieille webcam logitech qui a marché du premier coup sur ma Mandriva 2006 : j'ai branché la webcam, démarré gqview et j'ai eu l'image tout de suite

    Comme quoi c'est possible.

    C'est ça Linux, tout ou rien...

    Et puis je vais me faire moinsser mais tant pis :

    Je les comprend les industriels, il veulent pas far de drivers open-source, c'est leur droit, et quand on voit que le driver linux risque d'être incompatible à la prochaine évolution du noyau, bah ça donne pas envie d'en écrire un.
    On peut critiquer windows, maus au moins je peux parfois utiliser un driver nt4 pour le faire tourner sous XP (imprimante par exemple)... Un binaire dtant de windows 3.1 tourne, etc...

    Sous linux, t'es très peu sûr de réussir à recompiler un programme vieux de 5 ans (ça m'est déjà arrrivé).

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: Parallélisme, nouveau défi

    Posté par  (site web personnel) . En réponse au journal Hurd, une si belle idée et pourtant.. Évalué à 2.

    J'y pense : tu trouveras un papier synthétique sur ce qu'est IsaacOS : http://isaacos.loria.fr/papers/cfse4.pdf

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: Parallélisme, nouveau défi

    Posté par  (site web personnel) . En réponse au journal Hurd, une si belle idée et pourtant.. Évalué à 3.

    moi je le vois évoluer tous les jours, dernièrement un dev à fait fonctionner du pcmcia et du wifi ....
    Heureusement, ça fait tou même 15 ans qu'il existe !

    tu peux expliquer ? que conseille tu comme langage pour programmer un OS ?
    Lisaac puisqu'il a été principalement conçu pour ça.

    http://isaacos.loria.fr/download/Lisaac_RM_02.pdf
    Page 48.

    En gros l'astuce consiste à inliner du C dans une section INTERRUPT (qui sera donc compilé en fonction), et quitte à inliner du C, inlinons directement de l'ASM.

    En particulier pour une interruption tu ouvres une section __BEGIN_INTERRUPT__

    Tout l'IsaacOs a été codé comme ça, et sont écris en Lisaac le driver du controleur disque, le driver vidéo, clavier, souris, etc...

    Pour ce qui concerne la sécurité, l'OS est conçu pour utiliser les 4 ring des processeurs intel, mais ça n'a pas été implémenté pour faciliter le port sur des processeurs sans ring.

    Tu trouveras toutes les explications ici :
    http://isaacos.loria.fr/papers/cfse.pdf

    alors issacos c'est bien joli mais moi hurd, je le démarre et je peux faire l'irc avec, isaacos, je demande à voir ... et puis hurd pêche par le nombre de dev mais même si isaacos est le truc conceptuel le meilleur du monde si les dev ne sont pas intéressés par le langage et par porter des applications dessus ça ne décollera pas plus voir même jamais ..
    Ce sont des OS qui n'ont pas du tout le même age, et le deuxième n'est pas encore libéré, rien n'est comparable.

    On en reparle dans deux ans !

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: Parallélisme, nouveau défi

    Posté par  (site web personnel) . En réponse au journal Hurd, une si belle idée et pourtant.. Évalué à 4.

    En gros, c'est un OS constitué d'objets indépendant capables de gérer un héritage dynamique. Tous les objets dialoguent par envoi de message. Tout objet est nommé dans le système.

    Ca veut dire que Inode peut hériter de Controleur_DD ou controleur_USB, comme ça quand tu fais des appels vers le parent, ça va au bon endroit.

    Le noyau est "émergent" : tu as quelques objets "noyau", le sheduler, le gestionnaire mémoire, et comme ils ont tendance à naturellement communiquer en permanence, ça forme un noyau.

    Pour la sécurité, pour le moment, il n'y en a pas. Ca sera aux futur devs de IsaacOs de se préoccuper de ce genre de chose.

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: Parallélisme, nouveau défi

    Posté par  (site web personnel) . En réponse au journal Hurd, une si belle idée et pourtant.. Évalué à 10.

    On a l'autorisation de libérer IsaacOS, mais le compilateur nouvelle version totalement réécrit allant arriver bientôt, on s'occupe d'abord de lui, pour ensuite veiller à ce que l'on réussisse à recompiler IsaacOS avec ce nouveau compilateur (syntaxe un peu changé, quelques subtilités dans le système de type aussi, etc...).

    Donc comme on aime faire bien les choses, on le fera quand le compilo fonctionnera bien, que la doc de la lib sera faite, et surtout qu'on réussira à faire tourner IsaacOS dans un qemu, le tout dans un distrib assurant au dev d'être à l'aise.

    Je suis contre (et Benoit aussi) le fait de lancer dans la nature un Os qui compile pas, avec une lib pas documentée, etc... Ca donnerait une très mauvaise image au projet qui raterait ainsi son décollage.

    Tout cela étant dit, je pense que ça sera prêt dans moins de 6 mois (j'espère) :)

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • # Parallélisme, nouveau défi

    Posté par  (site web personnel) . En réponse au journal Hurd, une si belle idée et pourtant.. Évalué à 3.

    Depuis quelques années, on assiste à la généralisation des puces multicoeur. En effet le nombre de transistors que les nouvelles finesse de gravure permettent de caser sur un bout de silicium impose aux fondeurs de mettre plusieurs processeurs par coeur, en ayant beaucoup trop pour faire un seul coeur qui serait extrêmement complexe et chauferait trop.

    Cela risque de se généraliser, dixit intel themselves (aller, au hasard : http://www.x86-secret.com/popups/articleswindow.php?id=125 ) avec des architectures masivement multicoeurs.

    Le problèm est que le niveau technique des programmeurs pour gérer le massivement multi thread ne va pas évoluer exponentiellement lui.

    Et les archi d'Os actuelles vont rapidement trouver leur limite (ceux qui me connaissent vont comprendre, "suivez mon regard", oui je sais, mais mon propos n'est pas de défendre ma crèmerie, simplement de faire un constat).
    Ils ont à mes yeux deux défauts :
    - Ils sont basés sur une architecture paginés, même pas segmentée, mais paginée. Hors une archi paginée tue le parrallélisme : elle oblige à passer très souvent par le noyau, avec tous les problèmes que cela comporte.
    - Ils sont essentiellement architecturés pour être procéduraux et ne permettent le fonctionnement de logiciel émergent (architecture Com/Dcom et maintenant .Net chez kro, et Kpart chez Kde) que par l'intermédiaire de bidouille plus ou moins "crade".


    Alors Hurd ? Ben j'y crois pas.
    Le problème du Hurd est que son micronoyau possède peu d'info, et qu'il a donc du mal à optimiser.
    Et en plus c'est encore écrit dans un langage à pointeur ce qui le rend amha trop complexe à gérer.

    « 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  (site web personnel) . En réponse au journal [annonce]Formalisation grammaticale d'un pidgin. Évalué à 2.

    j'ai aussi tout de suite pensé Prolog.
    Prolog c'est vachement intéressant, mais beaucoup trop limité. On peut difficilement écrire un logiciel de gestion avec.

    Dans ton exemple avec itself, j'ai l'impression que ce que tu cherches c'est que ton langage évolue au fil du temps : itself n'avait pas de sens avant le exist file. Tu n'as pas eu à le définir ensuite, parce que son sens est devenu intrinsèquement lié à l'objet considéré au moment présent. A première vue ça ressemble à une déclaration de variable/objet qui serait induite par le langage et non imposée par une instanciation effectuée par le développeur.

    C'est exactement ça. Du sens de chaque mot et de la grammaire formée emmerge le sens.

    On pourrait définir dans la bibliothèque le mot clé create de la façon suivante.

    Create [in] <élément> et Create <élément> []

    (En effet, je taxinomise pour le moment (je peux changer d'avis) en terme de "notion", "d'agent non vivant" et "d'agent vivant", sachant que chaque agent est potentiellement un SMA peuplé lui même d'agent formés par des SMA... Il y aura aussi probalement les notions de temps et de localisation)

    On a donc deux dérivation possible associée à "Create".

    Dans Create [in] <élément> l' ensemble est un objet "physique", donc on créé un élément dans l'ensemble.

    Si Create est associé à une notion, cela veux dire que l'on crée un élement qui est une instanciation de cette notion, donc ici un fichier. La notion de localisation se réfère ici à l'endroit où elle se crée. La notion de localisation sera une primitive qui pourra se décliner en fonction du contexte. Dans un contexte fichier, il s'agit de préciser sur quel disque physique, ressource réseaux etc... on crée le fichier.
    Cela pourra aussi donner lieu à la localisation d'un endroit particulier du fichier, en fonction du pattern.

    (je réfléchis encore en écrivant)

    Dans un fichier xml, il s'agit de retrouver un ou plusieurs pattern.

    exemple find in (file "toto.xml" of type xml) (pattern [folder] [type ="(\w*)"][/folder]) and replace capture [0-9]+ by "coucou"

    On a find in <qq_chose>
    and est une conjonction de coordination, donc là la machine déduit qu'il s'agit d'un ordre associé.
    replace <qq_chose> by <qq_chose>
    ("find in" sera toujours associé à un ensemble)

    find in <qq_chose>: désigne (file "toto.xml" of type xml). Le système comprend que l'ensemble en question est un ensemble structuré par une grammaire (xml en l'occurence).

    Le <qq_chose>de find doit donc se rapporter à l'ensemble désigné et être compatible avec la grammaire. De plus, on ne sait pas si on cherche un élément ou un sous ensemble, d'où l'utilisation de <qq_chose> dont hérite et <éléments>
    Ici il est remplacé par (pattern [folder] [type ="(\w*)"][/folder]) qui est un sous ensemble (un sous arbre) de l'xml.

    Ensuite, on passe à l'ordre suivant :
    replace capture [0-9]+ by "coucou"
    Comme j'ai mis ma regexp entre parenthèse, j'ai une capture. Il y aura donc autant de captures que de sous ensembles trouvés. '[0-9]+' veut dire n'importe laquelle.
    replace <élément> by <élément>

    Bon j'arrête le délire ici.

    Tel que je l'imagine, le système serait doté d'un moteur logique qui détecterait les ambiguité et demanderait à l'utilisateur de les lever.

    Merci pour vos intervention multiples qui m'ont fait beaucoup réfléchir , je crois qu'il va falloir que j'étudie la théorie des grammaires génératives de chomsky, ainsi que les types ayant essayé de concevoir un langage logique destiné à supprimer les sous entendus.

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • [^] # Re: Espéranto-Ido

    Posté par  (site web personnel) . En réponse au journal [annonce]Formalisation grammaticale d'un pidgin. Évalué à 1.

    Génial le basic english.

    Pour un tel langage, il faut rester dans quelques chose d'internationnal et connu, donc l'anglais.
    Un anglais avec une grammaire simplifiée à mort, où on enlève tout ce qui peut être ambigue, très intéressant...

    « 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  (site web personnel) . En réponse au journal [annonce]Formalisation grammaticale d'un pidgin. Évalué à 2.

    T'as de sources ou c'est une estimation a la louche? Ca me semble un peu surréaliste, quand on voit la qualité du code généré...
    Estimation à la louche d'un copain ingénieur à CapGemini.

    Sinon pour le reste, je suis plutôt pas d'accord avec toi :) Quand on programme une machine (que ce soit avec des schémas, des pouik pouik qui clignotent ou un langage presque "naturel"), on s'attend a un comportement déterministe, pas a un truc bourre d'heuristiques. Et c'est ça le problème des langues naturelles. Elles sont tellement basées sur les sous-entendus et l'implicite qu’elles sont beaucoup trop ambigüe pour pouvoir programmer une machine. Et j’insiste, par définition on devra toujours programmer une machine. C'est-à-dire lui dicter son « comportement », même s’il s’agit d’une IA.

    Pas d'accord non plus :)

    En particulier, je ne suis pas d'accord avec l'assertion "Entre la programmation opérationnelle ( http://fr.wikipedia.org/wiki/S%C3%A9mantique_op%C3%A9rationn(...) ) et le flou artistique du langage naturelle, il n'y a pas de solution".
    SQL c'est quoi ? Une expression régulière c'est quoi ?
    Un métalangage. Tu lui décris ce que tu veux, le système te renvoi la réponse.

    L'objectif est ici de généraliser ce concept.

    SI tu dis au système A={ qqsoit y ¤ B | y ¤ B et y > 15}, tu as quelques chose de déterministe...
    Mon propos n'est pas de vouloir mettre un langage "naturel" pour programmer, mais de dépasser le carcan de la grammaire classique formalisable en BNF.
    C'est juste l'idée de disposer après analyse de graphe grammaticaux relativement simple dont le sens va émmerger Et de la structure grammatical Et du sens des mots clé utilisé, donc du contexte.

    Avec une bonne IA, comprendre
    'Create file "toto.xml"' ou 'Create xml structure with' , c'est pas insurmontable !
    Bref, je ne cherche pas du côté de la logique flou, je cherche un formalisme souple et évolutif permettant de décrire avec précision une spécification précises, complète et sans ambiguités de ce que je veux obtenir.

    « 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  (site web personnel) . En réponse au journal [annonce]Formalisation grammaticale d'un pidgin. Évalué à 0.

    (Quand quelqu'un dit « Je veux un langage de programmation dans lequel j'aurai seulement besoin de dire ce que je souhaite qu'il soit fait », donnez-lui une sucette.)

    C'est pas parce que des grands pontes totalement coincé dans leur monde et peu intéressés d'avoir une approche transdisciplinaire, disent que c'est impossible qu'il ne faut pas essayer.
    Avec une mentalité pareil, la Science risque de ne guère avancer.

    Mais ça m'étonne pas. C'est dur à admettre pour un type ayant une culture mathématique, informatique théorique seule, de penser que ce genre de chose est possible. Mais c'est uniquement par manque de culture et d'intérêt (que je ne critique pas : les goûts et les couleurs....).
    J'ai des exemples personnels à l'appui.

    Faut pas se leurer, dans 30 on programmera plus les machines. Et ça commence : dans des grandes boites comme Cap Gemini, 97% du code est généré suite à des schémas, spécifications, design d'interface...

    En ce qui concerne la syntaxe plus « humaine », même si j'ai bien compris que tu veux aller beaucoup plus loin, les systèmes de mots-clefs de Smalltalk ou de Common Lisp permettent déjà pas mal de choses :
    créer :quoi 'répertoire :où ... :nommé ...
    (ordre indéfini).

    SI je présente ça comme la solution, on me répondra à raison
    "tu es gentil, mais c'est du sucre syntaxique"
    Et en ce qui me concerne, je trouve ça totalement insuffisant.

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

  • # Résolution télé

    Posté par  (site web personnel) . En réponse au message bureau X pour affichage sur télévision. Évalué à 2.

    Théoriquement une résolution PAL est 720 × 576

    Ici http://neuron2.net/LVG/ntscvspal.html on te dit 768 x 576
    Alors qu'on est censé avoir 650 lignes en sécam...

    Bref, peut être essayer de modifier la résolution en conséquence ?

    « 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  (site web personnel) . En réponse au journal [annonce]Formalisation grammaticale d'un pidgin. Évalué à 2.

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