|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : mars 2011 Messages : 16 ![]() |
Bonjour à tous
Voilà, je vous expose mon problème. Je souhaite créer un programme ADA qui permette de traduire du pseudo-code (un langage algorithmique "en français") en un programme ADA. Pour cela, j'ai déjà un fichier "algo.txt" qui comporte mon algo, ainsi qu'un fichier "prog.adb" qui va contenir le code source de mon programme. Voilà le comportement que je souhaite reproduire : ex : Contenu de algo.txt : "" et voilà ce que je souhaite obtenir au final dans mon fichier "prog.adb" : (Note : je me limite pour l'instant à cette partie du travail, l'inclusion des bibliothèques et l' "enrobage du code" viendra par après). J'ai déjà quelques idées, fondées sur un code comme celui-ci : Code :
En gros "Si je rencontre le mot "si" dans mon fichier TXT, alors j'écris à la même position le mot "if" dans mon fichier ADB. Je compte faire pareil en extension mais pour des mots genre "pour" (for), "tantque" (while), etc. Sachant que les autres mots (ex, nom des variables, opérateurs de comparaisons) ne seront pas remplacés. En réalité, je ne sais pas comment m'y prendre pour faire ça (je débute en ADA). Et j'ai bien du mal à trouver de la documentation qui traite concrètement de ce genre de problématique. |
||
|
|
00
|
|
|
#2 |
|
Futur Membre du Club
![]() Inscription : avril 2011 Messages : 9 ![]() |
Le langage utilisé pour le pseudo-code doit avoir une grammaire relativement simple. Il faudrait en écrire (en Ada) l'analyseur lexical et le parser pour générer l'arbre syntaxique du code à traduire et ensuite le parcourir pour l'interpréter et générer le code Ada correspondant.
Tout cela est abordé dans les principes dans les cours de compilation. La page Web "AdaGOOP Home Page" adresse ce sujet du point de vue d'Ada avec fourniture d'un générateur de programmes Parser. Une question plus prosaique : pourquoi ne pas utiliser un sous-ensemble réduit d'Ada comme langage de pseudo-code ? |
|
|
10
|
|
|
#3 |
|
Membre confirmé
![]() |
Sinon, tu peux aussi tenter de t'attaquer aux versions Ada de Lex et Yacc que tu pourras trouver chez M. Obry ou encore regarder OpenToken.
Il y en a encore d'autres dont tu trouveras un petit référencement là |
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : mars 2011 Messages : 16 ![]() |
Merci, mais n'y a t-il pas un moyen plus simple que Lexx et Yacc (par exemple, avec de simples structures conditionnelles IF... THEN ... ELSEIF) ?
Je suis vraiment débutant en langage ADA, et je m'étais déjà aventuré sur Lexx et Yacc ... en C, mais sans succès ... |
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : mars 2011 Messages : 21 ![]() |
Une façon pour passer d'une manière pas trop compliquée d'un pseudo code à un code Ada pourrait consister en :
Mais la meilleure approche reste tout de même celle préconisée par Blacknight et RedBlackTree qui, bien comprise et menée à bien, serait un excellent investissement (au moins sur le plan de la culture informatique). |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com