Aller au menu - Aller au contenu

Calcul d'une expression mathématique


Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page 1 
Pseudo Commentaire
Page 1 
Hors ligne miky-mike01 # Posté le 21/12/2008 à 11:53:17
Avatar

Ville : Saint-georges sur meuse
Pays : Belgique

Je met un 19/20

Attention cette note est bien pour ton travaille et n'est a cause que je te connaisse.

tu développe bien les concepts, les buts, énonce clairement les solutions, en gros du très bon boulot.

.:: miky-mike ::.
Image utilisateur
 
Hors ligne nuKs_ # Posté le 21/12/2008 à 15:54:38

Ville : Spa
Pays : Belgique

Je n'ai pas lus le tutoriel mais comme dit dans l'introduction, le terme compilation ne me semble avoir aucun rapport.

Par ailleurs, le sujet me semble bien choisis. C'est une bonne chose d'avoir un sujet de ce type sur le sdz quand on sait que les tutoriels sur Lex et Yacc sont principalement en anglais.
Hors ligne robocop # Posté le 21/12/2008 à 18:22:38
Avatar

Tout à fait, le titre est un peu fort pour le contenu du tutoriel mais il se veut accrocheur : introduction à l'interprétation, ça le fait moins déjà :p.
M'enfin, si un jour j'ai une idée lumineuse, je le changerais.
 
Hors ligne zulon # Posté le 21/12/2008 à 18:34:20
Avatar

En fait on compile bien d'un langage (les maths) vers un arbre syntaxique abstrait, qu'on exécute ensuite. M'enfin c'est vraiment introduction-introduction.

Sinon je reposte ici les remarques faites sur IRC : faire des vrais paragraphes, et "où est passée la règle pow ?".
Ce passage me semble factorisable facilement (cétacé secondaire) :
Code : OCaml
1
2
3
4
5
6
match r with
    | "+" -> gauche + droite
    | "-" -> gauche - droite
    | "*" -> gauche * droite
    | "/" -> gauche / droite
    | _ -> failwith "Fonction non connue."
Hors ligne robocop # Posté le 21/12/2008 à 19:07:50
Avatar

On peut faire un truc comme ça si c'est de ça dont tu veux parler :
Code : OCaml
1
2
3
4
5
let be_op  = function | "+" -> (+) | "-" -> (-) | "*" -> ( * ) | "/" -> (/) | _ -> failwith "Fonction non connue."
let rec execute tree = match tree with
| Nb n -> n
| Op(fg, r, fd) -> let gauche, droite = execute fg, execute fd in
                   (be_op r) gauche droite

Sinon, pour les corrections, je l'ai renvoyé à la validation, j'attends mon heure :-°.
 
Hors ligne programLyrique # Posté le 21/12/2008 à 20:30:37
"Veniam, vedibo, vincam !"
Avatar

Je mettrai 18 : un sujet intéressant, traité de façon intéressante, et pluôt bien expliqué !

la conscience n'est pas ce qu'elle est ; elle est ce qu'elle n'est pas ; elle veut être tout ce qu'elle n'est pas mais elle ne veut pas être ce qu'elle est.
Le site d'une connaissance : dioxyde de titane
 
Hors ligne zulon # Posté le 22/12/2008 à 11:05:59
Avatar

robocop : Oui c'est bien de ça dont je parlais, même si tout mettre sur une ligne comme ça c'est pas beau :-° .
Hors ligne iNaKoll # Posté le 22/12/2008 à 16:27:35
Grosso merdo
Avatar

Ville : Le pecq
Pays : France métropolitaine

Bonjour robocop,

Tout d'abord, je tiens à te féliciter pour ce tuto de qualité !

J'aurais préféré pouvoir t'envoyer la suite de ce message en privé mais tu as dépassé ton quota de MP (impossible de t'en envoyer).

Si j'avais un reproche à faire à ce tuto c'est qu'il se trouve dans la catégorie "algorithmique". Je t'avouerais que même en connaissant bien le sujet de l'interprétation des expressions mathématiques, je n'ai pas compris la partie implémentation en OCaml. Tu dis dans ton introduction que tu essayeras par la suite d'expliquer le code OCaml.. M'en veut pas, mais même avec les quelques explications je n'arrive toujours pas à comprendre le code qui reste obscure pour moi. ^^
AMHA ce tutoriel en l'état aurait plus sa place dans une catégorie OCaml (inexistante pour l'instant?).

De mon côté, si je trouve le temps, j'essayerais de faire un tutoriel équivalent dans la catégorie C++ en m'appuyant éventuellement sur le tien (en reprenant les mêmes règles). Si tout vas bien, je devrais traiter la gestion de l'opérateur puissance et factoriel ainsi que le parsage des expressions matricielles avec les crochets '[' et ']' (ceci correspond à l'état actuel de développement de mon programme C++).
Quand ca sera terminé, je te demanderais certainement ton avis avant publication!

"La constante de couplage est fonction d'une certaine valeur constante que prend le champ scalaire des dilatations dans le vide quantique."
 
Hors ligne Narchie # Posté le 22/12/2008 à 18:24:44

Ça serait quand même plus simple d'apprendre OCaml :D . Il est tellement plus adapté pour ça :) .

“Perl is obfuscated by design, Haskell is designed by obfuscation.”
 
Hors ligne robocop # Posté le 23/12/2008 à 11:46:56
Avatar

iNaKoll => Je suis totalement conscient du problème. Si tu ne fais pas ton tutoriel en c++, pourrait-tu m'envoyer pas mp (j'ai vidé mes messages :-°) la version du mon code en c++ ?
De cette façon, les concepts du tutoriel seraient présentés sous deux langages différents, ce qui aiderait le lecteur certainement.

Sinon, peux-tu me dire à partir de quel moment tu décroches dans la lecture du code ocaml opur que je renforce mes explications ?
Ce n'est pas facile quand on connais la syntaxe de l'ocaml de voir quels sont les points **difficile** du langage.
Merci d'avance.
 
Hors ligne cgizmo # Posté le 23/12/2008 à 13:36:54
Avatar

Tres bon tutoriel, intéressant a lire, qui explique bien le concept de Lexer / Parser .
Par contre, ton code manque de (* commentaires *) , parce que pour quelqu'un qui, comme moi, n'as pas vue plus que les bases de l'OCaml, il est très dur a comprendre.
Hors ligne PierroLaLune # Posté le 18/01/2009 à 16:58:33
Ramène des Ramens
Avatar

Bon tutoriel dans le fond mais l'OCaml est un language mal choisi :( .

14 parce que j'ai du mal à comprendre .
Hors ligne iNaKoll # Posté le 18/01/2009 à 17:02:07
Grosso merdo
Avatar

Ville : Le pecq
Pays : France métropolitaine

Dés que j'ai le temps, j'ajoute les exemples en C++ ... Le code est prêt, j'ai juste besoin d'un peu de temps devant moi ! Patience ;)

"La constante de couplage est fonction d'une certaine valeur constante que prend le champ scalaire des dilatations dans le vide quantique."
 
Hors ligne shareman # Posté le 03/03/2009 à 03:34:06
charlotte <3
Avatar

Ville : Mertzwiller
Pays : France métropolitaine

Très bon tuto. La compilation est un domaine qui m'intéresse grandement. Mais je ne sais pas ce que ça donne chez vous mais chez moi, le code OCaml contient une erreur de syntax (dans la fonction parseur, il n'y a pas plus de précision). Sinon, je bosse depuis un bon bout de temps sur un tel interpréteur en C++. Je l'ai fini récemment et je vais pas tarder à le mettre en bêta-test sur le forum C++ (pour info : je gère les fonctions et les types (int, float, bool), avec erreurs et warnings). Si cela vous intéresse, n'hésitez pas à me contacter.

Nouvel atelier : Codez votre propre petit préprocesseur pour langage C !
Citation : Woody Allen
Si l'au-delà existe, c'est à quelle distance du centre ville, et c'est ouvert jusqu'à quelle heure ?
 
Hors ligne iNaKoll # Posté le 03/03/2009 à 11:31:53
Grosso merdo
Avatar

Ville : Le pecq
Pays : France métropolitaine

Merci !

Sinon, j'attends la bêta avec impatience... Jva peut-être aussi mettre mon interpréteur en bêta qui sait ! :p

"La constante de couplage est fonction d'une certaine valeur constante que prend le champ scalaire des dilatations dans le vide quantique."
 
Hors ligne robocop # Posté le 03/03/2009 à 17:38:51
Avatar

crys' > As-tu bien pensé à rajouter la lib camlp4o quand tu interprètes le code ? (ocaml camlp4o.cma code.ml)
 
Hors ligne ChaussonGratuit # Posté le 21/03/2009 à 12:46:33
Avatar

Plutôt que des détails dont on a rien à péter comme rajouter une implémentation en C++ (franchement, autant utiliser Caml), pourquoi ne pas rajouter une partie compilation vers une quelconque architecture, par exemple celle de Parrot, assez simple à prendre en main ?

"Les chaussons, c'est comme le logiciel : c'est moins cher quand c'est gratuit !"
 
Hors ligne neamar # Posté le 31/05/2009 à 22:11:06
Just know the rules
Avatar
Flux RSS

études : INSA Lyon

Marrant, je m'étais amusé dans ma jeunesse à réaliser une architecture de calcul similaire en partant d'un langage "simple" (le basic :p ) et en ajoutant moi même les fonctions nécessaires.

Si certains curieux veulent jeter un coup d'œil : http://neamar.fr/Res/Calc/


De toute façon personne ne lit les signatures. Ah si toi ? Bon bah personne d'autre que toi alors ;) .
 
Hors ligne M@thias+ # Posté le 01/06/2009 à 08:31:55
Avatar

Sympa le tuto!

Mais y a pas une faute d'orthographe dans le titre ?

A+




 
Hors ligne uaip # Posté le 02/06/2009 à 15:19:10

Salut,
Il reste en effet quelques fautes d'orthographe (ou plutot de frappe).
Par contre, je suis pas d'accord avec certains, les termes de "compilation" et "d'algorithmique" sont très bien choisis. La preuve, c'est grace à ces mots clés que je suis tombé par hasard sur ce tuto.
Assez bien fait, d'ailleurs, mais les exemples non commentés sont inutiles (pour la plupart d'entre nous). Tu aurais du plus t'orienter vers les algos.
Bon, je vais tenter de réutiliser cette méthode avec Flex/Bison.
Enjoy '-_-
Hors ligne Stifii # Posté le 01/10/2009 à 15:12:04

études : Epitech

J'aurais bien aimé avoir ce tuto pendant ma piscine de première année à Epitech. Ca m'aurait permis de mieux m'en sortir avec la bistromatique :p
Hors ligne crazy_inf # Posté le 18/11/2009 à 10:33:21
I hate you "fish"
Avatar

Salut!
Un bon tuto pour débuter à faire un simple compilo, mais le fait d'avoir choisi le OCaml ça a compliqué un peu la tâche pour certains y compris moi, mais les principes étaient bien expliqués.
Merci
NB: Pas de note car je ne suis pas le mieux placé pour t'en donner ^^

C'est la Vie et non pas le Pradis :ange:
Système d'exploitation en nuage (EyeOS)

GOOGLE da best friend ! :-°
 
Pour accéder à cette section
Connectez-vous !
connexion_rpx