Précédent   Forum du club des développeurs et IT Pro > Autres langages > Langages fonctionnels
Langages fonctionnels Forum d'entraide sur la programmation en langages fonctionnels : Lisp, Scheme, Caml, Haskell, Erlang, Oz, Anubis, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 25/09/2009, 20h59   #1
aymen.selmi
Invité de passage
 
Inscription : septembre 2009
Messages : 11
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 11
Points : 0
Points : 0
Par défaut programmation fonctionnelle avec f#

Je travail sur un projet avec f# (programmation fonctionnelle) pour qui consiste à développer une approche algébrique appelée PBA*.
Voici ci-dessous son syntaxe et sa sémantique:
syntaxe de PBA: x, y ::= 0 | 1 | a | x + y | x.y | x*.y
sémantique de PBA:

•0 c'est à dire que le processus est dans l'état mort.
• 1 c'est à dire que le processus a fini normalement son exécution
• x + y c'est le choix entre x et y.
• x.y c'est x puis y.
• x*y est équivalent à x.(x*.y) + y.

j'ai essayé d'utiliser Fslex et Fsyacc pour l'analyse syntaxique et sémantique de PBA* mais j'ai pas réussir à le faire
Je veux savoir comment je procède pour faire ce travail
Merci d'avance
aymen.selmi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2009, 21h08   #2
gorgonite
Rédacteur/Modérateur

 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur d'études
Inscription : décembre 2005
Messages : 9 979
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 979
Points : 18 180
Points : 18 180
montres nous tes essais, on t'aidera à corriger
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2009, 21h18   #3
aymen.selmi
Invité de passage
 
Inscription : septembre 2009
Messages : 11
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 11
Points : 0
Points : 0
Je suis débutant avec la programmation fonctionnelle du coup j'ai pas fait une grande chose.
J'ai pas compris comment je procède
aymen.selmi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2009, 21h21   #4
gorgonite
Rédacteur/Modérateur

 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur d'études
Inscription : décembre 2005
Messages : 9 979
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 979
Points : 18 180
Points : 18 180
essaies d'adapter cet exemple
http://www.developpez.net/forums/d38...s/#post2356271
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2009, 21h41   #5
aymen.selmi
Invité de passage
 
Inscription : septembre 2009
Messages : 11
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 11
Points : 0
Points : 0
Merci je vais essayer cet exemple
aymen.selmi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2009, 21h48   #6
aymen.selmi
Invité de passage
 
Inscription : septembre 2009
Messages : 11
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 11
Points : 0
Points : 0
avez vous un tuto pour m'explique comment je peux exécuter les fichiers lexer.fsl parser.fsy et eval.fs sur Microsoft visual studio
Merci
aymen.selmi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2009, 21h59   #7
gorgonite
Rédacteur/Modérateur

 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur d'études
Inscription : décembre 2005
Messages : 9 979
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 979
Points : 18 180
Points : 18 180
avec visual studio impossible, il faut générer des fichiers fs avec le fsy puis le fsl, et ensuite compiler via fsc
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2009, 18h00   #8
aymen.selmi
Invité de passage
 
Inscription : septembre 2009
Messages : 11
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 11
Points : 0
Points : 0
J'ai réussi à faire un analyseur syntaxique et sémantique en utilisant les outils fsyacc et fslex mais ce n'est pas ça mon problème.
il faut implémenter les fonctions suivantes:
@a(0) = 0
@a(1) = 0
@a(a) = 1
@a(b) = 0
@a(x*y) = @a(x).x*y + @a(y)
@a(x + y) = @a(x) + @a(y)
@a(x.y) = @a(x).y + o(x)@a(y)
avec @a(x) = {x' | x -> x' en exécutant l'action a}.

Propriété de BPA*:

x + (y + z) ~ (x + y) + z
x + x ~ x
x.(y.z) ~ (x.y).z (B7)
x.1 ~ x ~ 1.x
x + y ~ y + x
x.0 ~ x
(x + y).z ~ x.z + y.z
x + 0 = x
x.(y + z) ~ x.y + x.z
x*y ~ y + x.x*.y

Merci
aymen.selmi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2009, 23h09   #9
LLB
Membre Expert
 
Inscription : mars 2002
Messages : 962
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 962
Points : 1 149
Points : 1 149
Qu'est-ce qui te pose problème exactement ?
As-tu déjà réussi à créer le type représentant tes données ?
LLB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2009, 02h51   #10
aymen.selmi
Invité de passage
 
Inscription : septembre 2009
Messages : 11
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 11
Points : 0
Points : 0
non j'ai pas réussir à le faire
aymen.selmi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2009, 08h41   #11
gasche
Membre Expert
 
Inscription : avril 2007
Messages : 829
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 829
Points : 1 007
Points : 1 007
On est là pour t'aider, pas pour faire le travail à ta place. Nous donner l'énoncé de ton devoir c'est bien, mais si tu ne montres pas que tu as un poil travaillé, on ne va pas tout faire pour toi.

C'est le sens des questions de gorgonite ("montre nous tes essais") et LLB ("qu'est-ce qui te pose problème"). Montre nous que tu as vraiment travaillé, ce que tu as essayé de faire, pourquoi ça n'a pas marché, et ils feront des efforts pour te permettre de terminer.
gasche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2009, 15h26   #12
aymen.selmi
Invité de passage
 
Inscription : septembre 2009
Messages : 11
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 11
Points : 0
Points : 0
J'ai utilisé pattern matching de f# comme suit

let (+?) x y= x * y

type Expr =
| Num of int
| Add of Expr * Expr
| Mul of Expr * Expr
| Var of string
| Var1 of string

let rec deriv a exp=
match exp with
| Num n -> 0
| Add (x,y) -> deriv a x + deriv a y
| Mul (x,y) -> y +? deriv a x + x +? deriv a y
| Var a -> 1
| Var1 b -> 0
let expT1 = Add(Var "a", Mul (Var "a",Var "b"))
let a = "a"

a l'execution
> deriv a exprT1 ;;

Program.fs(21,20): error FS0001: This expression has type
Expr
but is here used with type
int
Je sais pas comment corriger cette erreur

Merci
aymen.selmi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 13h28.


 
 
 
 
Partenaires

Hébergement Web