Retour au menu principal


  1. Introduction
  2. Pourquoi un nouveau langage de programmation alors qu'il en existe déjà de nombreux de très bonne qualité? Tout simplement parceque ce langage permet de programmer avec une facilité certaine ce que d'autres sont incapables de faire. Inversement, ce langage est incapable de faire ce que d'autres font très bien: calculs, opérations de lectures/écritures etc...Ce qui fait l'originalité de ce nouveau langage c'est que les lignes de codes ne décrivent pas un cheminement itératif: fait ceci, puis fait cela mais un cheminement intégratif. La meilleure façon de me faire comprendre est de prendre un exemple.

    Je veux calculer une intégrale analytiquement. Si la forme de l'intégrale le permet je peux faire une intégration par partie où bien faire un changement de variable. Le résultat de ces deux opérations me donnera deux intégrales de forme très différentes. A partir de ces deux formes les calculs que je pourrai faire seront différents. Un tel schéma ne peut se décrire par un cheminement itératif puisqu'il n'existe pas un seul chemin possible. L'ordinateur doit tester chaque chemin pour savoir lequel conduira à la bonne réponse.

    Un autre exemple et celui d'un jeu d'échec. Quand le joueur à la main, il a plusieurs possibilités. Chaque possibilité influera différemment sur l'issue de la partie. Si nous voulons qu'un ordinateur sache quel coup jouer, il lui faut tester une par une toutes les possibilités. C'est l'ambition de mon langage de programmation: tester toutes les possibilités et dire celle qui répond le mieux au problème posé.

    Ne perdons pas de temps en des discours inutiles. Pour vous montrer toute la puissance de mon programme, prenons un exemple et voyons comment mon programme résout le problème.

  3. Une petite histoire
  4. En fait ce n'est pas une mais deux histoires qui ce déroulent parallèlement. D'abord il y a l'histoire d'un chien qui à fin et qui est loin d'un chat. Le chat est en éveil car il craint que le chien ne le dévore. La solution pour le chien est d'attendre que le chat dorme, de ce rapprocher du chat et de l'attaquer. Alors il n'aura plus faim et son besoin sera satisfait. Et puis il y a moi, je m'ennuie et je veux aller me promener sur les crêtes (dans les Vosges pour ceux qui connaissent) avec Nadia. Ne voyer là aucune analogie avec l'histoire du chat... Pour réaliser mon voeu, il faut que j'aille chercher Nadia que nous allions sur les crêtes et que nous nous promenions.
    On voit dans ces deux histoires que le chat tout comme moi doit accomplir une suite ordonnée d'actions qui mènent à la réalisation d'une volonté. Besoin bassement physique pour le chien et hautement spirituel pour moi!
    Mon programme va lui même trouver la suite d'actions minimale pour accomplir ma volonté ou celle du chien


    Pour que mon programme puisse donner la réponse il faut lui donner:
    Un état sera une suite de vérités définie par des phrases.
    exemple: 'le chien à faim' 'Nadia n'est pas là'... Une action est possible si une série de vérités est vérifiée.
    exemple: si Nadia est là je peux aller la chercher mais si elle est déjà là ce n'est pas la peine d'envisager cette action.
    Une action modifie l'état ou on se trouve.
    exemple: dans l'action précédente la vérité 'Nadia n'est pas là' est remplacé par la nouvelle vérité 'Nadia est là' après l'action 'Aller chercher Nadia'.
    Dans cet exemple ce peut être celle que le chien n'a plus faim ou que je me promène avec Nadia.

    Donnons le programme dans le langage de programmation que j'ai inventé qui décrit le problème:

  5. Programme

  6. Les mots clés du langage sont en italic.
    start
    le chat est éveillé
    le chien est loin du chat
    le chien a faim
    nadia n'est pas là
    être à la maison
    possibility
    status
    être à la maison
    nadia est là
    action
    aller sur les crêtes
    status
    change
    être à la maison
    into
    être sur les cretes
    status
    être sur les cretes
    action
    se promener
    status
    add
    je me promène avec nadia
    stop add
    status
    le chat est éveillé
    action
    attendre que le chat dorme
    status
    change
    le chat est éveillé
    into
    le chat dort
    status
    le chien est loin du chat
    action
    se raprocher du chat
    status
    change
    le chien est loin du chat
    into
    le chien est près du chat
    status
    nadia n'est pas là
    action
    aller chercher nadia
    status
    change
    nadia n'est pas là
    into
    nadia est là
    status
    le chien est près du chat
    le chat dort
    action
    attaquer le chat
    status
    delete
    le chat dort
    le chien est près du chat
    le chien a faim
    stop delete
    add
    le chien n'a plus faim
    le chat est mort
    stop add
    end
    will
    je me promène avec nadia
    end.

    En faisant tourner mon programme, celui-ci me renvoie à l'écran:

    aller chercher nadia
    aller sur les crêtes
    je me promène avec nadia

    Cette suite d'action est bien celle qui conduit à la réalisation de la volonté:je me promène avec nadia.

    Si j'avais mis comme volonté "le chien n'a plus fain" , mon programme aurait renvoyé:

    attendre que le chat dorme
    se raprocher du chat
    attaquer le chat

    Vous pouvez voir combien ce langage est simple. Il est presque naturel.
    Je vais maintenant vous donner le programme qui interprète ce language. Ce programme est d'une grande complexité (relative). Je pense qu'il n'y a pas grand intérêt à ce que je l'explique ici. Nous dirons simplement qu'il est construit un peu comme celui qui donne la solution d'un labyrinthe. On peut noter que mon programme n'utilise pas la notion de récursivité qu'autorise la language Turbo Pascal. Mon interpeteur serait en fait capable de faire une récursivité d'ordre supérieur (à choix multiple, ou à arbre de décision).
  7. Le programme d'intelligence artificiel à télécharger
  8. Description des fichiers fichier à télécharger type
    Interpréteur expert97 texte
    Exemple de fichier à interpréter expert5.txt texte
    Fichier exécutable exper97b.exe executable pour PC
    Si vous voulez faire fonctionner ce programme à partir des fichiers textes, il vous faut le TURBO PASCAL. En exécutant le programme il suffit d'entrer le nom du fichier à interpréter.

    Vous pouvez aussi charger directement l'exécutable. Lancez le, et entrer le nom du fichier à interpréter.

    Pour plus d'information :mes coordonnées
    Où tout de suite par E-mail