Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

MINI-COMPILATEUR


Information sur la source

Catégorie :Application Classé sous : grammaire, compilateur, analyseur, lexical, grammaire, larbre, arbre Niveau : Expert Date de création : 03/06/2005 Vu / téléchargé: 11 979 / 2 672

Note :
7,75 / 10 - par 4 personnes
7,75 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

Ce code a été écrit dans le cadre d'un cours sur les langagues et compilateur. Il contient un analyseur lexical qui lit dans un fichier d'entrée et renvoit une suite d'unité lexical représentant le fichier source. Il y a ensuite une analyseur syntaxique qui lit une grammaire LL(1) dans le fichier grammar.txt dans le dossier syntax et qui génère un arbre syntaxique. Cette arbre syntaxique est ensuite traduit dans une représentation intermédiaire du code à l'aide de la classe SLIPGenerator. Enfin, à partir de l'arbre en représentation, on génère le code final, code qui ressemble assez à de l'assembleur. En fait, ce code s'exécute sur une petite machine virtuelle programmée en java mais, étant donné que ce n'est pas moi qui l'ai codée, je ne l'inclus pas dans le code. Le projet contient aussi une classe qui permet de vérifier qu'une grammaire est bien LL(1).

Le langage en lui même est assez basique avec un syntaxe proche de Java (très proche meme :)). Il permet quand même de faire des appels de fonctions, des boucles, des tests (imbriquées éventuellement), des fonctions récursives. Il permet aussi de gérer des objets très basiques qui fonctionne en utilisant un niveau (Pour avoir une meilleur idée de ce qu'on peut faire avec des objets, voir le dossier testSLIP).

Ce projet est fonctionnel mais il doit encore y avoir quelques problèmes à gauche et à droite surtout dans la partie de la traduction de l'arbre syntaxique en arbre en représentation interne (la génération de code est loin d'être optimale).

Enfin, pour ceux qui se demanderait ce qui signifie 'SLIP', c'est l'abbréviation pour "Simple Language with Integer and Pointer".

Si vous avez des questions -> commentaires :)
 

Conclusion

BUG: aucun ( en espérant ne pas avoir à mettre à jour cette partie :p )
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de gulamh le 06/06/2005 04:29:14

Slt !
Je n'ai pas checke ton programme, mais je dis deja bravo !
J'ai fais un cours sur les lang de prog et la compilation, et je sais que c'est pas facil de coder un compilateur(performant) en java.
En Prolog ce serait simple par contre...

signaler à un administrateur
Commentaire de Bel0 le 06/06/2005 19:01:00

Merci :)

Ce n'est peut-être pas le plus mauvais (à vous de juger) mais ce n'est certainement pas le plus optimisés non plus. Il faut se rappeler qu'il a été fait pendant les cours (juste avant le blocus) et  que les optimisations ne faisaient pas du tout partie de mes priotités. Ceci étant dit, si tu as des questions à propos du compilateur ... je suis ouvert :)

signaler à un administrateur
Commentaire de scaryman le 10/06/2005 18:17:27

slt
ne pourrais-tu pas essayer de poster la machine virtuelle pr éxécuter le code?
merci

signaler à un administrateur
Commentaire de isert le 27/02/2006 20:09:15

salut,
j'aimerai bien savoir à quoi ca sert lambda dans le fichier grammar.txt
Merci.

signaler à un administrateur
Commentaire de tULIPOs le 13/03/2006 17:28:28

salut comment le faire marché stp

signaler à un administrateur
Commentaire de cum3inf le 17/01/2008 11:26:26

slt oui, comment le faire marché stp.

signaler à un administrateur
Commentaire de khletoshi le 12/04/2008 21:59:09

creer un projet vide , et metter tout les repertoires dedans(decompresser le zip)
et ouvrer avec eclipse;

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Organigramme [ par hoymille ]   Bonjour,Je voudrais pouvoir exécuter l'organigramme, donc je veux créer un compilateur avec javacc. Pour créer ce compilate algorithme sur les grammaire et les automates en java [ par bijourass ] jai un tp a faire en java conçernnant le sujet voici le contenu:ecrire un programme qui donne pour toute grammaire à droite un automate généralisé équ Arbres [ par jerfr ] Salut à tous, Je suis en train de créer une classe qui permet de construire un arbre à lettres. L'idée est de regrouper tous les mots en un arbre dont [BAR]ordre dans un B-arbre [ par dide90 ] Bonjour,Que signifie l'ordre dans un B-arbre ?merci Compilateur Java avec javacc [ par hoymille ] Bonjour,Je recherche des tutoriaux en français pour javacc et des exemples de compilateurs créés avec javacc.Je ne trouve pas d'ex problème de compilateur [ par ketchupy45 ] Bonjour j'ai un problème avec mon compilateur (enfin je suppose que c'est ça) voila un screenshotEst ce que quelqu'un pourrait m'aider ? Arbre ou Liste liees?? [ par Delamour ] Slut !J ai un gros problem ke je n arrive pas a resoudre depuis deja plus de 2 semaines et je sollicite ici votre aide. Voila j ai une classe Arbre (v arbre avl [ par leray24na ] Bonsoir à tous,J'ai implementé un arbre en java.Maintenant je souhaiterai avoir la possibilité de demander l'ajout, la suppre


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


LG KP501

Entre 9€ et 159€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,484 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.