newbies en lex/yacc [Aide Lex] - C - Programmation
Marsh Posté le 04-01-2005 à 17:59:23
ton prof de TD de compilation il sert à quoi?
Marsh Posté le 04-01-2005 à 18:01:08
il est en deplacement à barcelone et injoignable par mail pendant 15 jours.
Marsh Posté le 04-01-2005 à 18:30:48
T'as suivi les cours magistraux au moins?
Dans la négative, je ne peux rien pour toi car:
1/ c'est hors charte et j'ai déjà fait ma BA de l'année aujourd'hui
2/ j'ai pas envie de me substituer à un prof pour t'appendre ce qu'est la phase d'analyse lexicale dans un processus de compilation
(NB: aide inside quand même )
Marsh Posté le 04-01-2005 à 18:53:42
reponse a la premiere question : oui
deuxiemement, il devait nous filler de la doc qu'il a oublier avant les vacances de noel...
troisièment je suis dans une filiere competences complementaire en informatique (commence depuis 3mois) qui fait que nous avons eut des cours de programmations en c uniquement. et des cours generalistes sur unix, histoire de pouvoir se depatouiller un peu.
Hors pour ce projet, je ne vois pas du tout comment le prendre.
Quatriement : merci pour l'aide inside.
Marsh Posté le 04-01-2005 à 21:53:43
starseb a écrit : bonjour à tous ! |
les concepts sous-jacents à lex et yacc sont beaucoup plus complexes qu'un problème de programmation ou de C. Si les termes analyse lexicale, syntaxique et sémantique, n'évoque rien pour toi, tu vas en chier...
Marsh Posté le 04-01-2005 à 22:06:44
oups.
bah je vais en chier alors. je vais de ce pas faire une recherche sur google avec ces criteres.
c'est deja un debut.
mais je sais pas si vu notre niveau, il faut se pencher vers quelque chose d'aussi complexe ?
merci en tout cas. je suis preneur de toute autre info.
Marsh Posté le 04-01-2005 à 22:47:15
Pour le truc de base (une calculette en lex et yacc) il y a des exemple dans les docs lex et yacc (ou bison & flex) dont tu peux t'inspirer.
A+,
Marsh Posté le 04-01-2005 à 22:49:19
j'ai vu ca sur le forum dans mes recherches bison et flex c'est la meme chose que lex et yacc ?
je me trompe ou il va falloir que j'installe un linux sur mon pc pour faire ca ? si oui, je crois qu il existe des versions bootable sur cd qui m'eviterais d'avoir tout sur le pc, vous en connaissez une ?
Marsh Posté le 04-01-2005 à 22:54:18
flex et bison sont les versions gnu de lex et yacc.
Trouver un exemple de calculette n'est pas tres dur car c'est celui qui est repris partout (la page info de flex sous linux par exemple).
Developper ca sous win c'est chiant et tu peux effectivement utiliser un livecd linux (http://www.knoppix.org)
Sinon te plains pas trop, moi j'ai un compilateur de pseudo langage à faire (faudrait peut etre que je m'y mette d'ailleurs )
Marsh Posté le 04-01-2005 à 23:16:54
suis aller sur knoppix, bon je me depatouiller de l'allemand et j'ai trouve plusieur version de lnoppix chacune faisant dans les 696mo. je suis en train de telecharger ca : KNOPPIX_V3.7-2004-12-08-EN.iso. c'est la seule que j'ai besoin de graver pour booter sur le cd apres ?
Marsh Posté le 04-01-2005 à 23:34:40
Knoppix c'est bien mais cygwin c'est mieux surtout si t'est sous windowz. Sinon regarde la def des termes token, lexer, parser, analyse LR(1), automate à pile ... et SURTOUT refait des exemples de petits parsers, google en est blindé.
Bonne chance.
Marsh Posté le 05-01-2005 à 02:58:09
Tiens, j'ai écris 2-3 conneries là:
http://forum.hardware.fr/hardwaref [...] 2242-1.htm
Marsh Posté le 05-01-2005 à 06:41:42
merci à tous, ca va me permettre de déja bien commencé et attaqué, mais je pense revenir à la recharge d'ici quelques jours (ou heures )
Marsh Posté le 08-01-2005 à 21:37:49
bon j'ai un peu avance la calculatrice est faite:
voici le code au passage :
fichier global.h
Code :
|
voici mon fichier lex
Code :
|
et mon fichier yacc
Code :
|
mon hic c'est que j'arrive pas a faire l'extension du projet avec une variable definit par l'utilisateur qui contient une somme que la calculatrice peut calculer. il faut que cette variable puisse etre reutiliser par ce dernier dans un autre calcul sans avoir a rentrer sa valeur.
Marsh Posté le 04-01-2005 à 17:57:15
bonjour à tous !
je me permet de poster ici car j'ai un mini projet à faire pour la fac, je dois faire une calculatrice en lex. le hic c'est que je sais meme pas ce que c'est. j'ai chercher sur ggogle et je pense avoir compris qu'il s'agit en partie de programmation en C et que ca se passe principalement sous linux. est ce qu'il y a moyen de bosser ca sous windows ?
Sinon je suis completement paumé et je ne vois pas par quel bout prendre ce petit projet. voici le descriptif du sujet si certains pouvait m'aiguiller un peu ca m'arrangerait bien.
Le but de ce mini projet est la réalisation d'une petite calculatrice décrite par l'exemple ci-dessous :
$ calcu
> 2 + 3
5
> (2+3) * 7 - 3
32
> 2 + 3 * 7 - 3
20
> fin
bye.
$
Vous utiliserez lex pour reconnaître les unités lexicales et yacc pour définir l'analyseur syntaxique.
Extensions du projet
Attention, je vous conseille fortement de terminer complètement les premières étapes avant de vous engager dans une extension. Je vous propose pour ce projet l'extension suivante :
Faites en sorte que votre calculatrice prenne en compte la notion de variable comme dans l'exemple ci-dessous :
$ calcu
> affect cinq = 2 + 3
> affect six = cinq + 1
> (cinq * 7) - 3
32
> var
cinq = 5
six = 6
>
...
Une autre extension consiste à pouvoir définir des fonctions réutilisables comme le montre l'exemple ci-dessous :
$ calcu
> fonction fois10(p,q) = (p * q) - 10
> fois10(5,6)
20
...
Dans ce cas, il est nécessaire de représenter une formule dans une tableau pour la ré-évaluer plus tard. Ce tableau pourrait avoir la forme suivante (c'est une notation post-fixée facile à évaluer) :
$1 $2 * 10 -
j'espere que vous allez m'aider a avance. par avance merci
PS : etant novice sur le sujet je m'excuse aupres des modos si j'ai mal placé le topic, j'ai pensé que C etait plus aproprié.