begin process at 2012 02 09 06:09:22
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > MINI-COMPILATEUR

MINI-COMPILATEUR


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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é :19 456 / 3 569

Auteur : Bel0

Ecrire un message privé
Commentaire sur cette source (10)
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

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture GRAPHE ORIENTÉ ET DIJKSTRA

 Sources de la même categorie

Source avec Zip Source avec une capture [J2ME] MAILXPRESS, UNE PETITE APPLICATION D'ENVOI DE MAIL ÉC... par doderic
Source avec Zip CLIENT ET SERVEUR DE MESSAGERIES par lemout
Source avec Zip Source avec une capture NAVIGATEUR HTTP par lemout
Source avec Zip Source avec une capture PROGRAMME DE PARTAGE DE FICHIER EN RESEAUX par billatosco
Source avec Zip JET SPRING JSF PRIMEFACES par mendjijet

 Sources en rapport avec celle ci

Source avec Zip COMPILATEUR PASCAL par youma85
Source avec Zip Source avec une capture ARBRE BALANCÉ ( BTREE PLUS ) par Alain Proviste
Source avec Zip ANALYSEUR XML GÉNÉRIQUE ET PROGRAMMATION REFLÉXIVE par AlexN
Source avec Zip TRI DE LIST EN UTILISANT LES ABR par bad_smi
Source avec Zip Source avec une capture MINI EVALUATEUR D'EXPRESSION ARITHMÉTIQUES par tucobouch

Commentaires et avis

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...

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 :)

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

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.

Commentaire de tULIPOs le 13/03/2006 17:28:28

salut comment le faire marché stp

Commentaire de cum3inf le 17/01/2008 11:26:26

slt oui, comment le faire marché stp.

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;

Commentaire de 001386 le 05/06/2010 16:53:26

<var> ::= 'id' | 'lambda'
cad var peut etre representer par rien

Commentaire de Bel0 le 05/06/2010 17:06:16

Par exemple, prenons 2 définitions:
# <FULLNAME> ::= 'identifier' <FULLNAME-S>
# <FULLNAME-S> ::= 'lambda' | '#' 'cst'

Ca veut dire qu'une grammaire correcte pour "FULLNAME" est:
'identifier'#cst
'identifier'

En prenant la grammaire, le premier cas est simple à comprendre. Le 2ème cas signifie 'identifier' suivi de rien. Le rien est symbolisé par 'lambda'. En espérant que ce soit plus clair.

Commentaire de nihed0nadou le 01/12/2010 21:52:18

slt..
merci cé un très bon travaille
j'ai exactement que te fait comme un mini projet d'étude ..svp comment on a ajout le package a l'éclipce ?? et si tu peut et tu veut je veut te qstioné sure qlq point ..j'attends

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Organigramme [ par hoymille ] &nbsp;&nbsp;Bonjour,Je voudrais pouvoir ex&#233;cuter l'organigramme, donc je veux cr&#233;er un compilateur avec javacc. Pour cr&#233;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 theorie des langages [ par marooh ] Bonjour, je veux ecrire un programme qui permet de transformer n'importe quelle grammaire en sa forme normale de chomsky,en passant bien sur par les e [BAR]Conception d'un programme qui fait l'analyse lexicale [ par cameroon ] soit le programme suivant: ::=DEBPGMFINPGM ::=DEBINSFININS ::=DEBDECLFINDECL ::=,| ::=: ::=#X|,#X ::= [clos] analyseur de detection de signal avec java j2ee [ par Souhayla91 ] Bonjour je suis débutant en Java et J2ee.. et j ai un projet de fin d'etudes a réalisé il s agit de developer une application avec j2ee 1.7 qui nous [clos] Parcours particulier d'un arbre avec java [ par allouli2010 ] Bonjour et merci d'avance de votre aide! Je vous faire le parcours d'un arbre qui possède des numéros sur ses arcs. Si j'entre dans un noeud par le nu 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 affichage de fichier XML en arbre avec jbuilder [ par iskes ] Bonjour j'ai un fichier XML que je veux l'afficher dans une interface (ou avec un composant) sous forme d'arbre (arborescence)comme l'explorateur de


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,337 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales