Académique Documents
Professionnel Documents
Culture Documents
2|Page
DSL qui reconnait un programme écrit en langage C
Introduction
3|Page
DSL qui reconnait un programme écrit en langage C
Pour la mise sur pied de notre DSL nous utiliserons plusieurs outils mais l’outil par
excellence sera XTEXT.
XTEXT
Xtext est un framework développé sur Eclipse et permettant d'implémenter votre propre
DSL textuel ou même de mettre sur pied un langage de programmation générique (un GPL). Il
fonctionne sur une JVM (Machine Virtuelle Java) et est constitué de plusieurs API qui vous
permettent de décrire les différents aspects du langage que vous voulez créer et propose une
implémentation complète de ce langage. Notons que le langage développé sera alors un langage
qui s'appuie et qui surcouche le langage Java. C'est-à-dire que les objets offerts par ce framework
sont complètement des objets Java et le développement du compilateur de votre langage sera
alors écrit en Java.
Notons aussi que les langages développés via Xtext peuvent selon son tutoriel être définis
non seulement avec le langage Java, mais aussi d'autres langages tels que C, C++, C# objective
C, Python et Ruby. De plus, une fois que le DSL est mis en œuvre, son utilisation devient
indépendante de la JVM.
GEMOC
Le studio Eclipse GEMOC offre un cadre pour la conception et l'intégration des langages
de modélisation EMF. Le cadre fournit une interface générique pour brancher différents moteurs
d'exécution associés à leurs métalangages spécifiques utilisés pour définir la sémantique
opérationnelle des événements discrets et la coordination comportementale des DSL. Il intègre
également des services d'exécution génériques qui sont partagés entre les approches utilisées
pour implémenter la sémantique d'exécution, telles que l'animation graphique ou le débogage
omniscient.
Basé sur une API commune, GEMOC propose un framework pour intégrer tout type d'approche
de métaprogrammation utilisée pour définir la sémantique opérationnelle des événements
discrets dans un moteur d’exécution. Un moteur est développé en utilisant le framework
d'exécution et est spécifique à une approche de métaprogrammation. Le projet propose
différentes implémentations de moteurs. Puisqu'une partie importante de la logique est commune
4|Page
DSL qui reconnait un programme écrit en langage C
à tous les moteurs d'exécution, le framework fournit un moteur d'exécution abstrait de base qui
peut être étendu en un moteur concret pour toute nouvelle approche de métaprogrammation.
Une fois téléchargé, ouvrez le setup, scrollez et sélectionnez «Eclipse IDE for Java and
DSL Developers»
Poursuivez juste l’installation, c’est prêt ! Eclipse Xtext est installé ! Il est nécessaire de
téléchargez ANTLR generator téléchargeable à l’adresse :
http://www.java2s.com/Code/Jar/a/Downloadantlrgenerator320jar.htm
5|Page
DSL qui reconnait un programme écrit en langage C
3. Implémentation de la grammaire de notre DSL
Le projet consiste à concevoir un langage spécifique (DSL) utilisant Xtext, un outil de
développement de langages intégré à Eclipse, pour la reconnaissance et l'analyse de programmes écrits en
langage C. L'objectif est de créer un outil qui permettra aux développeurs de travailler avec des
programmes C de manière plus efficace et avec une syntaxe spécifique au domaine.
Présentation du projet :
Le projet vise à développer un DSL capable de reconnaître et d'analyser des programmes C à l'aide de
Xtext. L'outil permettra de créer des fichiers source C valides, de les éditer et de générer des informations
utiles à partir du code. Il offrira également des fonctionnalités d'analyse statique pour détecter les erreurs
potentielles, les incohérences et les problèmes de qualité du code.
En utilisant Xtext, nous pourrons définir une grammaire spécifique au langage C qui permettra de
décrire la syntaxe valide et les règles de structure du code C. Nous créerons également des règles
sémantiques pour vérifier la cohérence du code et identifier les erreurs courantes.
Ensemble des règles recensées :
6|Page
DSL qui reconnait un programme écrit en langage C
Figure 2 Règles de notre DSL1/4
7|Page
DSL qui reconnait un programme écrit en langage C
Figure 4 Regles de notre DSL3/4
Notre démarche :
8|Page
DSL qui reconnait un programme écrit en langage C
Définir une grammaire pour la syntaxe du langage C en utilisant Xtext.
Définir les règles lexicales pour les jetons du langage C (mots-clés, identificateurs, opérateurs,
etc.).
Définir les règles syntaxiques pour les différentes constructions du langage C (déclarations,
fonctions, structures de contrôle.
9|Page
DSL qui reconnait un programme écrit en langage C
Conclusion
Dans le cadre de cet exposé, nous avons exploré le thème de la conception d'un langage
spécifique (DSL) capable de reconnaître et d'analyser des programmes écrits en langage C. À
l'aide de l'outil Xtext, nous avons pu définir une grammaire spécifique au langage C, des règles
lexicales et syntaxiques, ainsi que des règles sémantiques pour garantir la validité et la cohérence
du code.
La création d'un DSL pour le langage C présente de nombreux avantages. Tout d'abord,
cela permet aux développeurs de travailler avec une syntaxe spécifique au domaine, simplifiant
ainsi la compréhension et la rédaction du code. De plus, un DSL peut offrir des fonctionnalités
d'analyse statique avancées, permettant de détecter les erreurs potentielles, d'améliorer la qualité
du code et de faciliter la maintenance.
L'utilisation de Xtext s'est révélée être une approche efficace pour le développement de
notre DSL. Xtext fournit une infrastructure solide pour la création de langages spécifiques en
offrant des fonctionnalités telles que la validation syntaxique, l'édition assistée par l'IDE et la
génération de code. Grâce à ces fonctionnalités, nous avons pu concevoir un DSL pour le
langage C qui offre une expérience de développement améliorée.
En conclusion, la conception d'un DSL pour la reconnaissance de programmes écrits en
langage C avec Xtext présente un potentiel significatif pour les développeurs. Cela leur permet
de bénéficier d'un langage spécifique au domaine, de fonctionnalités d'analyse avancées et d'une
expérience de développement plus efficace. Le DSL offre ainsi une approche innovante pour
améliorer la productivité, la qualité et la maintenabilité des projets logiciels basés sur le langage
C.
10 | P a g e
DSL qui reconnait un programme écrit en langage C