|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : septembre 2009 Messages : 11 ![]() |
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 |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Nicolas ValléeIngénieur d'études Inscription : décembre 2005 Messages : 9 979 ![]() |
montres nous tes essais, on t'aidera à corriger
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : septembre 2009 Messages : 11 ![]() |
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 |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Nicolas ValléeIngénieur d'études Inscription : décembre 2005 Messages : 9 979 ![]() |
essaies d'adapter cet exemple
http://www.developpez.net/forums/d38...s/#post2356271 |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : septembre 2009 Messages : 11 ![]() |
Merci je vais essayer cet exemple
|
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : septembre 2009 Messages : 11 ![]() |
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 |
|
|
00
|
|
|
#7 |
![]() ![]() ![]() Nicolas ValléeIngénieur d'études Inscription : décembre 2005 Messages : 9 979 ![]() |
avec visual studio impossible, il faut générer des fichiers fs avec le fsy puis le fsl, et ensuite compiler via fsc
|
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : septembre 2009 Messages : 11 ![]() |
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 |
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() Inscription : mars 2002 Messages : 962 ![]() |
Qu'est-ce qui te pose problème exactement ?
As-tu déjà réussi à créer le type représentant tes données ? |
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : septembre 2009 Messages : 11 ![]() |
non j'ai pas réussir à le faire
|
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() Inscription : avril 2007 Messages : 829 ![]() |
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. |
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : septembre 2009 Messages : 11 ![]() |
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 |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com