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

 .NET Discussion :

Traitement de code APL


Sujet :

.NET

  1. #1
    Membre actif

    Homme Profil pro
    autodidacte
    Inscrit en
    Mars 2011
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Mars 2011
    Messages : 95
    Points : 207
    Points
    207
    Par défaut Traitement de code APL
    Bonjour,

    Notre société dispose d'un code d'un dizaine de milliers de lignes d'APL, dont le développeur principal est décédé il y a quelques années . Comme il n'avait pas l'habitude de bien documenter ses programmes, nous nous retrouvons avec un énorme code stratégique écrit dans un style ubuesque.

    J'ai entendu parler d'un traducteur de APL vers C#. Est-ce que quelqu'un en a déjà utilisé ? Si oui, qu'en penser ?

    Voyez-vous d'autres solutions pour nous éviter de passer des années à comprendre, maintenir ou réécrire ce code dans un langage plus utilisable ?

    D'avance merci,
    Toujours à adapter le problème à la structure de la machine, mais se soigne pour faire l'inverse.

  2. #2
    Membre habitué Avatar de LeCygne
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2010
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2010
    Messages : 91
    Points : 159
    Points
    159
    Par défaut
    Bonjour,

    C'est un langage qui date des années 60, et qui possède la réputation d'être fait pour être écrit... Mais pas lu... Je comprends vôtre désappointement. Savez-vous de quelle version d'APL il s'agit (APL / APL2 / APL360 / MACAPL) ?

    Je ne connais pas de traducteur mais le langage ne comporte pas énormément d'opérateurs et il semble possible, à taille humaine, d'écrire un traducteur vers C#. Je vous recommande l'utilisation de GPLEX pour faciliter l'analyse lexicale. Pour la partie grammaire, il y a GPPG qui est fait pour aller avec.

    Un cas d'école et un beau projet de théorie de la compilation en perspective
    perspective.

  3. #3
    Membre actif

    Homme Profil pro
    autodidacte
    Inscrit en
    Mars 2011
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Mars 2011
    Messages : 95
    Points : 207
    Points
    207
    Par défaut
    Merci de votre réponse.

    Il existe un convertisseur de code APL vers C# qui coute 1000 livres (cfr http://www.causeway.co.uk/products/index.htm) et aussi un convertisseur APL vers C en freeware (APL2C).
    Mon travail consiste à faire l'analyse de 250 pages d'APL. Je ne décide en rien d'une migration éventuelle, si ce n'est que mon expérience éventuelle fera l'objet d'un feedback en haut lieu dans ce cadre.

    Mon job premier se fait avec SAS, donc je suis libre d'utiliser .NET ou tout autre environnement de programmation adapté.

    Quels seraient les avantages selon vous de la solution APL-->C# et de la solution APL-->C++ documenté par Doxygen (via le C) ?

    D'avance merci !
    Toujours à adapter le problème à la structure de la machine, mais se soigne pour faire l'inverse.

  4. #4
    Membre habitué Avatar de LeCygne
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2010
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2010
    Messages : 91
    Points : 159
    Points
    159
    Par défaut
    Citation Envoyé par lautrec1 Voir le message
    Quels seraient les avantages selon vous de la solution APL-->C# et de la solution APL-->C++ documenté par Doxygen (via le C) ?
    J'avoue que là, je ne saurais répondre pour vous: Tout dépend de l'orientation que souhaite prendre votre société C# ou C++, du temps dont vous disposez, du budget et de la fiabilité de ces deux outils. Tout au plus, je peux vous indiquer la manière dont je procèderais :
    - D'abord, tester la solution gratuite me semble une évidence.
    - Ensuite, si le résultat ne me convennais pas, je verifierais si la solution payante est adaptée.
    - Si elle ne l'est pas, je le ferais moi même.

    Cela me semble être le meilleur ordre, autant en terme de temps, qu'en terme de budget (car à moins de le réaliser sois même en moins d'une semaine, il sera plus économique de payer 1.000 livres)

    Pour répondre à la question que vous me posiez en message privé :
    Citation Envoyé par lautrec1
    Pouvez-vous définir ce que vous entendez par "analyse lexicale" et "analyse de la grammaire"
    L'analyse lexicale, consiste à identifier au sein du texte les "lexemes". Lorsqu'en C# vous écrivez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for (int i = debut; i < fin; i++)
    Les lexemes sont: for, (, int, i, =, debut, ;, i, <, fin, i, ++ et ). Le travail de l'analyseur lexycal (lexer en anglais) est de les identifer. Le travail de l'analyseur grammatical (parser en anglais) est de comprendre le sens qu'ils prennent lorsqu'ils sont ecrits dans cet ordre.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    A mon avis c'est largement plus rentable de payer 1000 £ un convertisseur qui fonctionne, plutôt que de passer des mois à en écrire un... surtout si vous n'avez pas de connaissances sur l'écriture d'un compilateur, ce qui semble être le cas.

  6. #6
    Membre actif

    Homme Profil pro
    autodidacte
    Inscrit en
    Mars 2011
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Mars 2011
    Messages : 95
    Points : 207
    Points
    207
    Par défaut Presque résolu
    Hola les amis vous emballez pas: loin de moi l'idée de programmer un compiler, ca serait écraser une mouche avec une enclume !!! Mon but est juste de documenter du code APL.

    @LeCygne: en effet, je crois qu'il vaut mieux attaquer avec le gratuit et, au cas où il y aurait des imperfections et un besoin stratégique de passer le code en .NET, alors envisager le payant.
    Payer 1000£ serait plus rentable que d'y consacrer une semaine ??
    Mon Dieu, j'aurais du faire développeur .NET !

    @tomlev: +1, j'aime bien programmer d'accord, mais programmer en solo un compilateur et être de surcroît responsable de ses résultats dans le cadre de mon emploi de salarié non-IT, ca serait chaud pour du hors-piste... Alors non vraiment loin de moi l'idée, no worry!!!

    En tous cas j'ai testé cet après-midi Doxygen sur 5000 lignes non commentées de C. Et ca va m'aider grandement! Comme Doxygen peut s'appliquer à C,C++ et C#, il n'y a plus qu'à voir si APL2C "tourne" de façon satisfaisante pour avoir la traduction gratuite en C. Peut-être à bientôt sur le forum Visual Studio . En attendant le feebdack sur les capacités de APL2C, je laisse le topic en non résolu.
    Toujours à adapter le problème à la structure de la machine, mais se soigne pour faire l'inverse.

  7. #7
    Membre actif

    Homme Profil pro
    autodidacte
    Inscrit en
    Mars 2011
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Mars 2011
    Messages : 95
    Points : 207
    Points
    207
    Par défaut
    Bonjour,

    Finalement, nous avons trouvé un très bon (apparemment) traducteur d'APL vers C en open-source. Développé par Sam Sirlin.
    Solution trouvée donc, car l'open source est très bien documenté et a l'air puissant, malgré quelques limites qui ne devraient pas trop nous déranger (par exemple, les overflows ne sont pas gérés par le code C généré, alors qu'APL le fait par défaut...).

    Merci encore pour votre aide!
    Toujours à adapter le problème à la structure de la machine, mais se soigne pour faire l'inverse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET/SQL SERVER] Problème traitement de code.
    Par tssi555 dans le forum VB.NET
    Réponses: 3
    Dernier message: 08/10/2008, 00h15
  2. [VBA-E] Boucle de traitement de codes sources de pages web
    Par Currahee dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/09/2007, 10h11
  3. Exemple de code de traitement d'images d'une webcam
    Par ZJP972 dans le forum OpenCV
    Réponses: 8
    Dernier message: 14/09/2007, 21h59
  4. Réponses: 8
    Dernier message: 14/09/2006, 17h43
  5. Réponses: 1
    Dernier message: 28/01/2006, 15h03

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