IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Traduire automatiquement des algorithmes en langage Pascal


Sujet :

Algorithmes et structures de données

  1. #1
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut Traduire automatiquement des algorithmes en langage Pascal
    Salut tout le monde, je veux créer un programme permettant de
    traduire automatiquement des algorithmes en langage PASCAL.
    Est ce qu'il s'agit d'une traduction mots à mots ou bien y'a t’il d'autres stratégies pour ça ?

    Le langage que je vais utiliser pour le développement est le c #


    merci d'avance

  2. #2
    Membre très actif
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Par défaut
    Je pense qu une bonne partie (70%) consiste juste en le remplacement des mots clefs, ainsi que des simboles. Il y a ensuite un peu d ajout (terminaison d expression, ...). Malheureusement j ai jamais ecris une ligne de code en C#, le cas contraire j aurais volontier participé au projejt.
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  3. #3
    Membre Expert
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Par défaut
    Comment est écrit ton algorithme ? Pseudo-code, langage naturel, etc ?

  4. #4
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    voir : http://knol.google.com/k/conversion-...-c-c-c-and-php#

    et éventuellement.
    http://delphi2csharp.sourceforge.net/
    The Convert Delphi to C# project ("delphi2csharp") converts non-visual Delphi (Object Pascal) source code units to equivalent C# code.

  5. #5
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    salut et merci pour la réponse.

    Citation Envoyé par Franck Dernoncourt Voir le message
    Comment est écrit ton algorithme ? Pseudo-code, langage naturel, etc ?
    l'algorithme sera "standard" ; une sorte de pseudo_code utilisé pour la résolution des problèmes informatiques par les élèves (domaine de l'enseignement)
    voici un exemple :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    0)       Début permut_aff
      1)       Répéter
               Ecrire ("introduire une valeur")
               Lire(A)
            Jusqu'à A#0
      2)   Répéter
               Ecrire ("introduire une valeur")
               Lire(B)
            Jusqu'à B#0
      3)       C --> A
            A --> B
            B --> C
      4)       Ecrire (A)
      5)       ……………………….               
      6)       Ecrire (B)
      7)       ………………………. 
      8)       Fin Permut_aff

  6. #6
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    J'avais mal compris le sujet.
    Il s'agit bien d'une cross compilation mais de Pseudo-code à Pascal (et non de Pascal à C#).

    Le principe est :
    1. faire l'analyse syntaxique du Pseudo-code afin de le traduire en une représentation interne logique (instructions, boucles, déclarations, constantes, ...),
    2. réaliser le générateur de code de cette représentation vers le langage Pascal.
    L'étape 1 représente 80% de l'effort.

  7. #7
    Membre très actif
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Par défaut
    Voici ce que je vous propose comme syntaxe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    programme permutation
    inclure dos, user, crt
     
    variables
       entier a, b, c
       reel x, y, z
     
    constantes
       entier ca = 2
       entier cb = 3
     
    fonction test(entier a, reel z; sortie c, y) booleen
    variables
       entier va, vb
    Debut
       va <- 1
       vb <- va + 23
       si (vb < a) alors
           vb <- vb - 6
       sinon si (vb == z) alors
           vb <- vb * 2
       finsi
       retourner vb * a * z
     
     
     
    procedure permut_aff()
    Debut
       Repeter
          Ecrire ("introduire une valeur")
          Lire(A)
       Jusqu'a A!=0
       Repeter
          Ecrire ("introduire une valeur")
          Lire(B)
       Jusqu'a B!=0
       C <- A
       A <- B
       B <- C
       Ecrire (A)
       ………………………             
       Ecrire (B)
       ………………………. 
       Fin Permut_aff
    Fin
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  8. #8
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    Citation Envoyé par Graffito Voir le message

    Le principe est :
    1. faire l'analyse syntaxique du Pseudo-code afin de le traduire en une représentation interne logique (instructions, boucles, déclarations, constantes, ...),
    2. réaliser le générateur de code de cette représentation vers le langage Pascal.

    L'étape 1 représente 80% de l'effort.
    pouvais vous me donner des liens/documentations/algorithmes sur l'analyse syntaxique.

  9. #9
    Membre très actif
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Par défaut
    Ce cours/tuto m a beaucoup aide lorsque j ai essayé de mettre sur pied un pseudo langage qui devait etre interprete en C
    Analyse Lexicale - Semantique - ...
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  10. #10
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    Citation Envoyé par afranck64 Voir le message
    Ce cours/tuto m a beaucoup aide lorsque j ai essayé de mettre sur pied un pseudo langage qui devait etre interprete en C
    Analyse Lexicale - Semantique - ...
    merci

  11. #11
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2010
    Messages : 146
    Par défaut
    Bonsoir,
    j'ai presque le même problème à propos des analyseurs lexicales et syntaxiques.

    j'ai deux questions:

    1- comment on peut créer une grammaire pour un langage ?
    est ce qu'on l’écrit à la main ou bien on peut la générer automatiquement ?

    2- comment vérifier que cette grammaire est correcte?

    merci pour la réponse.

  12. #12
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Bonjour à tous!
    une sorte de pseudo_code utilisé pour la résolution des problèmes informatiques par les élèves
    Cette discussion me rappelle une question pour laquelle je n'ai jamais eu de réponse: à quoi sert un tel pseudo_code? En fait, on pourrait parfaitement utiliser un langage de bas niveau (Fortran, Basic, Pascal ou C) et ça aurait l'avantage de servir par la suite.
    Jean-Marc Blanc

  13. #13
    Membre très actif
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Par défaut
    Citation Envoyé par je viens du sud Voir le message
    1- comment on peut créer une grammaire pour un langage ?
    est ce qu'on l’écrit à la main ou bien on peut la générer automatiquement ?
    Je dirais "a la main" dans ce sens que l on la définit par soi-même. C est juste comme de définir tout les enchainement possible des symboles (variables incluses) de notre pseudo_code.
    VAR : une variable,
    EOE : le symbole de fin d expression
    TYPE : un type dans du pseudo_code
    LOGIC : un élément de logique
    CMP : un élément de comparaison si,..
    MCMP : un élément de comparaison multiple: ou, et
    AFF : le symbol d affectation
    OPE : un opérateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TYPE (VAR)+ EOE	#déclaration
     
    VAR AFF (VAL|VAR) (OPE (VAL|VAR))* EOE #Affectation 
     
    LOGIC (VAL|VAR) (CMP (VAL|VAR))* (MCMP (VAL|VAR) (CMP (VAL|VAR))*)* #Comparaison
    Il est tout de même possible d en générer automatiquement: cf lien "analyse syntaxique..." plus haut
    Citation Envoyé par je viens du sud Voir le message
    2- comment vérifier que cette grammaire est correcte?
    euh... par du brute force? Essayer tous les cas de figure possible

    Citation Envoyé par FR119492 Voir le message
    à quoi sert un tel pseudo_code?
    A gagner en expérience et compréhension. Au bout de 2 projets comme celui-là, on devient plus tendre avec son compilo
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/11/2013, 16h50
  2. Formalisation graphique des algorithmes
    Par David R. dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 08/12/2012, 10h21
  3. [BCB5] Défilement automatique des scroll bars
    Par Christophe Brun dans le forum C++Builder
    Réponses: 2
    Dernier message: 05/12/2004, 16h59
  4. Traitement automatique des mails.
    Par ourk dans le forum Linux
    Réponses: 2
    Dernier message: 23/09/2004, 18h14
  5. [TP] Gestion des bus PCI en pascal
    Par prodexys dans le forum Turbo Pascal
    Réponses: 12
    Dernier message: 18/04/2003, 22h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo