[Java] Traduction automatique : algorithme → langage C
Fermé
Gevi2013
Messages postés
5
Date d'inscription
samedi 29 juin 2013
Statut
Membre
Dernière intervention
2 juillet 2013
-
Modifié par Gevi2013 le 30/06/2013 à 00:36
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 6 juil. 2013 à 21:53
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 6 juil. 2013 à 21:53
A voir également:
- Comment traduire un algorithme en langage c
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Traduction photo gratuit - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Java apk - Télécharger - Langages
3 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
30 juin 2013 à 00:55
30 juin 2013 à 00:55
Bonjour,
Ok pour t'aider. Commence par nous préciser ce que tu as commencé à faire, à nous faire part de tes réflexions et nous dire là où tu bloques.
On pourra mieux t'orienter.
Ok pour t'aider. Commence par nous préciser ce que tu as commencé à faire, à nous faire part de tes réflexions et nous dire là où tu bloques.
On pourra mieux t'orienter.
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
2 juil. 2013 à 05:51
2 juil. 2013 à 05:51
Pour que je comprennes bien à mon tour ce que tu cherches à faire merci de préciser un peu ce que tu veux, parce que ce n'est toujours pas très clair.
Est-ce que ton programme Java aura :
1) en entrée : un algorithme, en sortie : un code C.
2) en entrée : un code C, en sortie : un code Java.
Ce n'est pas tout à fait la même chose... (le 1 parait plus facile que le 2)
Au passage, précises le périmètre de ton projet, par exemple est-ce que tu peux utiliser des bibliothèques existantes (genre JFlex et Cup) ?
Et pour le 1 : quel formalisme tu utilises pour représenter ton algorithme, quelles sont les fonctionnalités dont ils disposent exhaustivement, etc.
Pour le 2 : à quelques fonctionnalités du C en particulier tu vas te limiter, parce qu'il est évident que tu ne pourras pas recréer toute la grammaire du C en quelques jours...
Est-ce que ton programme Java aura :
1) en entrée : un algorithme, en sortie : un code C.
2) en entrée : un code C, en sortie : un code Java.
Ce n'est pas tout à fait la même chose... (le 1 parait plus facile que le 2)
Au passage, précises le périmètre de ton projet, par exemple est-ce que tu peux utiliser des bibliothèques existantes (genre JFlex et Cup) ?
Et pour le 1 : quel formalisme tu utilises pour représenter ton algorithme, quelles sont les fonctionnalités dont ils disposent exhaustivement, etc.
Pour le 2 : à quelques fonctionnalités du C en particulier tu vas te limiter, parce qu'il est évident que tu ne pourras pas recréer toute la grammaire du C en quelques jours...
Gevi2013
Messages postés
5
Date d'inscription
samedi 29 juin 2013
Statut
Membre
Dernière intervention
2 juillet 2013
2 juil. 2013 à 17:02
2 juil. 2013 à 17:02
Merci;
mon programme java aura en entrée un algorithme,en sortie un code C.
Mon algorithme a la forme classique c'est à dire :
Algorithme <nom_algorithme>;
étiquette;
const //mot clé désignant la déclaration d'une constante ;
types et structures(tableaux, enregistrement,...)
fonctions
procédures
var pour déclarer des variables;
début (début du programme principale)
---------------//instructions avec l'utilisation éventuelle des opérations de lecture(lire) et d'écriture(écrire) et les structures de contrôle(
si (condition) alors instructions ;
sinon instructions
finsi
Tant que (condition) faire
instructions;
fintq
repéter
instructions
jusqu'à(condition)
pour(i allant de <valeur initiale> à <valeur final>) faire
instructions
finpour
Selon (choix) faire
cas1:'instructions;
------------------//
cas n:instructions
sinon :instructions
finselon
-------------------
Fin
S'il vous plait c'est l'idée que j'ai pour l'instant;si vous avez mieux dites le moi.
mon programme java aura en entrée un algorithme,en sortie un code C.
Mon algorithme a la forme classique c'est à dire :
Algorithme <nom_algorithme>;
étiquette;
const //mot clé désignant la déclaration d'une constante ;
types et structures(tableaux, enregistrement,...)
fonctions
procédures
var pour déclarer des variables;
début (début du programme principale)
---------------//instructions avec l'utilisation éventuelle des opérations de lecture(lire) et d'écriture(écrire) et les structures de contrôle(
si (condition) alors instructions ;
sinon instructions
finsi
Tant que (condition) faire
instructions;
fintq
repéter
instructions
jusqu'à(condition)
pour(i allant de <valeur initiale> à <valeur final>) faire
instructions
finpour
Selon (choix) faire
cas1:'instructions;
------------------//
cas n:instructions
sinon :instructions
finselon
-------------------
Fin
S'il vous plait c'est l'idée que j'ai pour l'instant;si vous avez mieux dites le moi.
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
>
Gevi2013
Messages postés
5
Date d'inscription
samedi 29 juin 2013
Statut
Membre
Dernière intervention
2 juillet 2013
2 juil. 2013 à 19:17
2 juil. 2013 à 19:17
"Mon algorithme a la forme classique"
Je ne crois pas qu'il existe vraiment une "forme classique", un algorithme étant destiné à être lu par un être humain on peut faire ça n'importe comment.
Disons donc que ta "forme classique" tu en fixes la syntaxe et que ça devienne un langage formel. Il faut ensuite que tu lises ton fichier source contenant ton algorithme, et que tu remplaces les différentes instructions par leur équivalent en C, afin de créer en sortie le code correspondant.
Par exemple :
Deviens :
De manière grossière on pourrait donc faire un remplacement systématique :
Evidemment, il y a des cas particuliers à gérer, mais le cas général devrait être plus ou moins comme ça, sachant que bien sûr "condition" et "instructions" devront eux aussi être traduits en langage C au moment de leurs lectures respectives.
Je ne crois pas qu'il existe vraiment une "forme classique", un algorithme étant destiné à être lu par un être humain on peut faire ça n'importe comment.
Disons donc que ta "forme classique" tu en fixes la syntaxe et que ça devienne un langage formel. Il faut ensuite que tu lises ton fichier source contenant ton algorithme, et que tu remplaces les différentes instructions par leur équivalent en C, afin de créer en sortie le code correspondant.
Par exemple :
si (condition) alors instructions sinon instructions finsi
Deviens :
if (condition) { instructions } else { instructions }
De manière grossière on pourrait donc faire un remplacement systématique :
"si (" --> "if (" ") alors" --> ") {" "sinon" --> "} else {" "finsi" --> "}"
Evidemment, il y a des cas particuliers à gérer, mais le cas général devrait être plus ou moins comme ça, sachant que bien sûr "condition" et "instructions" devront eux aussi être traduits en langage C au moment de leurs lectures respectives.
salut;
S'il vous plait j'ai du mal à écrire la grammaire des instructions d'écriture et de lecture c'est à dire: lire(a);
ecrire(a) où a est une variable de type donné; entier par exemple.
Aidez-moi. Merci
S'il vous plait j'ai du mal à écrire la grammaire des instructions d'écriture et de lecture c'est à dire: lire(a);
ecrire(a) où a est une variable de type donné; entier par exemple.
Aidez-moi. Merci
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
Modifié par KX le 6/07/2013 à 21:54
Modifié par KX le 6/07/2013 à 21:54
Pour être le plus simple possible tu pourrais préciser le type de la donnée dans le nom de l'opération dans l'instruction :
Pour faire cela vraiment bien (mais c'est plus dur), il faudrait conserver le type de la donnée en mémoire lors de sa déclaration pour l'adapter au mieux.
lire_entier(a); --> scanf("%d",&a); ecrire_entier(a); --> printf("%d\n",a); lire_chaine(a); --> scanf("%s",a); ecrire_chaine(a); --> printf("%s\n",a);
Pour faire cela vraiment bien (mais c'est plus dur), il faudrait conserver le type de la donnée en mémoire lors de sa déclaration pour l'adapter au mieux.
30 juin 2013 à 19:12
j'ai commencé par avoir la forme générale et complète que peut avoir un algorithme (mots clés, structures et boucles,etc...) puis je vais cherché leur syntaxe et sémantique en langage C afin de pouvoir générer la grammaire .je rappelle que mon programme doit être écrit en JAVA. Merci
30 juin 2013 à 19:25
Euh, ce n'est pas un rappel, tu ne l'as jamais mentionné. Depuis le début tu ne parles que de C et tu as posté dans la catégorie C... Donc, ton programme doit être écrit en C ou en Java ?
1 juil. 2013 à 13:08
Au fait je n'avais pas bien compris le travail. Après explication que j'ai su que mon programme doit être écrit en Java et qu'il doit être capable de traduire un algorithme en C.Donc le langage que je dois utilisé pour programmer est Java. Merci
1 juil. 2013 à 23:17
1 juil. 2013 à 23:37