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

Langages de programmation Discussion :

AKDL & Visual AKDL Editor


Sujet :

Langages de programmation

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2022
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2022
    Messages : 7
    Points : 11
    Points
    11
    Par défaut AKDL & Visual AKDL Editor
    Tout part de CLApp, un langage original que j’ai voulu créer il y a longtemps (et dont je parlerai dans un autre post).
    Au début (je suis de la vieille école), j’ai commencé avec la création de mon propre analyseur lexical (ce qu’aujourd’hui on appelle tokenizer), puis l’analyseur syntaxique (parser) avant d’en arriver au générateur de code (java), quand un collègue me suggéra d’utiliser ANTLR, beaucoup plus pratique où le gros du boulot est fait à ma place. Autre avantage : si je modifie quelque chose dans la définition de mon langage, je n’ai pas besoin de trifouiller dans mon code pour l’adapter à ce changement ; ANTLR me re-génère le tout.
    Seulement voilà : ma syntaxe n’entre pas dans les cases ; je suis obligé de faire plein des concessions à l’originalité de CLApp pour l’adapter aux exigences d’ANTLR. Et à un moment, c’était trop. C’est là que j’ai décidé d’écrire mon propre générateur de parser et runtime. Et AKDL est né.
    AKDL c’est Another Keyword Definition Language. Il a les particularités suivantes :

    1. Il génère du code java
    2. Le code généré, aussi bien pour le parser que pour le runtime, apparaît dans des classes représentant les mots-clé définis et ce dans les packages qu’on spécifie. Autrement dit, tu peux structurer le code qu’AKDL doit générer.
    3. Avoir une classe par mot-clé dans le parser te permet d’avoir autant de points d’entrée pour ton source. Tu peux donc générer du code pour une partie du source seulement et ainsi faire des snippets que tu peux déployer dans le reste de ton appli, par exemple.


    Habituellement, pour définir des mots-clé, on se base sur la bonne vieille notation EBNF (Extended Bachus-Naur Form), celle où :

    1. les crochets [] sont utilisés pour l’option ; on a, par exemple, [a b c] pour dire que le groupe (a b c) est optionnel
    2. les accolades {} sont utilisées pour la quantification ; on a, par exemple, {a b c} pour dire que le groupe (a b c) apparaît un nombre n indéfini de fois (n pouvant être nul)
    3. le symbole | est utilisé pour l’alternative ; on a, par exemple, a | b | c pour dire que l’un des éléments du groupe (a b c) sera sélectionné aux détriments des autres


    Il m’est apparu assez vite que cette bonne vieille notation ne me conviendrait pas. Le 1er truc qui m’a gêné, et qui saute aux yeux, c’est que le point 3 n’est pas consistant avec les 2 autres. Ensuite, les accolades autant que les crochets sont des symboles qui jouent 2 rôles à la fois : ils regroupent des éléments et un opérateur est appliqué au groupe. Et quand le groupe n’est constitué que d’un élément, on a [a] ou {a}, ce qui n’est pas grave mais pas trop joli non plus.
    Pour moi, c’était un problème parce que je voulais absolument ajouter un ou deux autres opérateurs et, du coup, j’ai voulu rendre le tout cohérent. J’ai donc à la fois simplifié la notation (en séparant le regroupement et l’opérateur) tout en l’enrichissant de nouveaux opérateurs.
    Ça donne:

    1. au lieu de [a b c] j’ai ^(a b c) ainsi que, au lieu de [a] j’ai ^a
    2. au lieu de {a b c} j’ai *(a b c) ainsi que, au lieu de {a} j’ai *a
    3. au lieu de a | b | c j’ai +(a b c)


    ce qui m’a permis d’ajouter de nouveaux opérateurs sur le même modèle, dont un qui me plait particulièrement : l’opérateur dans n’importe quel ordre, symbolisé par &.
    Ainsi, &(a b c) signifie: (a b c) | (a c b) | (b a c) | (b c a) | (c a b) | (c b a)
    En plus, on peut combiner. Par exemple :
    &(^a *b c) pour dire que a est optionnel, b apparaît un certain nombre de fois, c exactement une fois et le tout dans l’ordre que tu veux.
    Il existe des cas concrets dans java avec les modificateurs synchronized, public, static
    Cette notation simplifiée et enrichie, je l’ai appelée seeBNF (simplified and enhanced EBNF). Elle permet de définir simplement un langage sous forme d’arborescence partant d’un symbole distingué (racine de l’arbre). C’est sous cette forme que le Visual AKDL Editor te propose de construire ta syntaxe.

    A présent que tu sais presque tout sur AKDL, je te propose de découvrir l’éditeur avec les tutos suivants :





    Tu peux également télécharger le tout :

    AKDL : https://github.com/dragan-clapp-creator/akdl
    Visual AKDL Editor : https://github.com/dragan-clapp-crea...al-AKDL-Editor

    N’hésite pas à me dire ce que tu en penses. Ton avis m’intéresse.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2022
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2022
    Messages : 7
    Points : 11
    Points
    11
    Par défaut
    nouveau lien pour la 3e partie:


Discussions similaires

  1. Exécuter Visual Basic Editor à partir d'un bouton de commande
    Par Lorenzole+bo dans le forum VBA Access
    Réponses: 1
    Dernier message: 10/01/2008, 04h59
  2. Erreur lors de l'ouverture de Visual Basic Editor
    Par snoopy69 dans le forum Access
    Réponses: 8
    Dernier message: 09/05/2006, 11h39
  3. Bug de visual basic editor
    Par Ps4 dans le forum Access
    Réponses: 7
    Dernier message: 12/01/2006, 11h49
  4. visual basic editor d'outlook disparu
    Par thcrt dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 27/12/2005, 16h09
  5. [Plugin][VE]Bug sur Eclipse Visual Project Editor
    Par capitaine_choc dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 31/05/2005, 14h51

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