Voilà j'ai pensé depuis longtemps à réaliser un projet pour les cours qui à pour objectif de programmer en C mais avec son propre lanage de programmation plus ou moins évolué et suivant ses propres régles.
En faite le but du programme sera dans un premier temps de traduire les instructions personnalisé (si, tant que...) en instructions pour le lanage C puis à l'avenir de transformer des phrase en instructions pour le C du genre (afficher texte bonjour en 20x 50y).
Le but de ce programme et de permettre au débutant de commencer à proagrmmer sans avoir de notiosn de programmation...
Pensez-vous que ce projet est interessant? Et si c'est le cas, essayer de trouver un langage standard pour les débutants.
A savoir que je pense réaliser une gestion de fichiers qui contienderont le langage de programmation et peut être les phrases avec les instructions qui vont avec.
en gros, tu veux faire un traducteur langage perso -> C, c'est ça ?
si c'est du mot à mot, ça devrait pas être trop dur à faire (faut coder une fonction remplacer dans un texte)
si c'est pas du mot à mot, ça reviendrait plus ou moins à faire un compilateur, sauf qu'il faudrait compiler le C obtenu. Ca serait pas plus simple de faire un compilateur directement ? mais peut-être que j'ai rien compris au truc

<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)
<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant
Au déburt en effet je vais traduire du mot à mot mais je pense plus tard réaliser des phrases qui donneront une série d'instructions....
Pour l'instant je réalise ce programme dans l'objectif des cours mais peut être que si ça intresse du monde, j'adapterais ça sur TI.
Personnelement je pense que ça ne pourras qu'attirer beaucoup de débutant et permettre la réalisationd e programmes assez puissant même si ça sera limité.
Comment ça, c'est pour les cours ?
En gros tu veux faire un langage comme celui qu'on utilise pour décrire des algorithmes par exemple ?
Par exemple, celui qu'on utilise à l'IUT :
Déclaration d'une variable :
<nom>[,<nom2>,...]:entiers ou (<nom>:entier)<-<val>
Déclaration d'une contante :
(<nom>:constante)<-<val>
Conditions :
si <condition> alors
<instructions>
fsi
etc...

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
Si tu comptes uniquement remplacer des mots du C par d'autres mots plus accessibles, cela n'aura pas vraiment d'intéret, puisque l'utilisateur devra déja connaitre le C pour utiliser son langage. Sinon, tu devra carrément écrire un compilateur en fait, dans ce cas bonne chance.
Voilà comment je compte procéder:
Le fichier de données des instructions à traduire contiendera un mini-langage qui permettera de dire au compilateur comment ce comporter en fonctiion d'un mot ou d'ensemble de mots.
Exemple:
Ajouter 5 avec x dans x
Dans le fichier de données ça donnera un truc de ce genre, pas encore définie, il faut que je réflechisse.
dans->data&=;ajouter->data&+;avec->data;/fin
Dans la phrase finbal ce comportera de cette ordre, le traducteur analysera dans l'odre ce qui est spécifié par le fichier de donné, pour que la traduction soit correct, chaque mot (dans,ajouter,avec) devront êtrre validé et donc appartenir à la phrase, les surplus de mot autre que les variable, chiffres... seront ignoré.
Avec ce genre de méthode il sera possible de combiner dans une phrase plusieurs instructions du genre:
Ajouter 5 avec x puis ajouter 4 avec y dans z.
Ici la phrase sera validé car tout les mots de traduction existe dans la phrase sauf 'puis' qui est inutile mais permet de donner un sens à la phrase et la phrase sera traduite correctement:
z=x+5+y+4;
Reste un problème, si je remplace un mot clef ajouter par multiplier, la phrase sera validé mais le mot multiplier sera inconnus donc je doit trouver une méthode pour améliorer le langage du fichier de données....

Zeph Le 23/09/2003 à 23:03 Je vois mal comment tu pourrais faire quelque chose qui pourrait être capable de comprendre un langage "personalisé". Au mieux en traiter quelques uns, mais rien qu'en observant les langages connus et/ou utilisés, il y a trop de différences.
Ecrire un compilateur serait bien sûr bien plus utile je pense, mais ce n'est pas vraiment le sujet (et peut-être pas non plus dans les cordes de geogeo, si je me trompe, chapeau).
[edit] post croisé, je n'ai pas lu le #9 avant de poster le mien.

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
Ce qui serait interressant, ce serait de faire un interpréteur de TI-BASIC plus rapide que celui d'AMS, ce qui permettrait aux utilisateurs qui n'ont pas le courage d'apprendre le C ou l'asm d'avoir un TI-BASIC offrant une vitesse d'éxecution proche de ces deux langages.
BiHi Le 24/09/2003 à 12:51Edité par BiHi le 24/09/2003 à 15:31 liquid> Tiens j'avais prévu de faire l'exercice de prologin sur un mini interpréteur lisp (il y a très peu d'opérations à coder +, *, -, /, <, <=, >, >=, car, cdr, c??r) par contre je vais sûrement le coder en C++ (je suis en train d'apprendre) donc pour le porter sur ti, ça sera pas facile. :/
Mais d'abord, faut que je finisse l'interpréteur de RPL que j'ai commencé le WE dernier en C++. ^^
[Edit: interpréteur RPL en C++, pas C]

;)
Le RPL resemble à quoi?
Je pense que mon interpreteur aura 2 processus de tracution, le premier sera du mot à mot, le deuxième sera une traduction plus avancé en fonction de phrase et de l'ordre des mots désiré.
Par exemple:
b->a sera interprété naturellement en a=b.
Donc l'interpreteur sera quoi faire dès qu'il tombe sur l'instrcution ->...
Je vais déjà faire du mot à mot et voir ce que ça donne puis j'attaquerais le langage de l'interpreteur qui pourra s'occuper de convertir correctement des phrases....
natto Le 24/09/2003 à 13:33 BiHi> tu comptes utiliser des classes ? perso je pense que c'est largement faisable en C tout court, si j'ai du temps libre je vais sans doute le faire

納 豆パワー!
I becamed a natto!!!1!one!