[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Pb de chargement d'environnement
Bonjour,
Je n'arrive pas a` exe'cuter mon fichier de se'mantique (se'mantique Exp
du tutorial) en mode debug.
Merci d'avance pour votre aide,
Philippe.
%%%% message de centaur %%%%
1/eval_exp$init_eval_exp$($PSP$cons($PSP$sint(153), $PSP$sint(-4960)))
eval_exp
REDISPLAY_RULE failed
%%%%%% Fichier de se'mantique %%%%
program eval_exp is
use Exp;
use Assignments;
import
add(_,_,_), sub(_,_,_),
mult(_,_,_), neg(_,_),diff(_,_) from expfunc;
judgement ASSIGNS |- Exp: LITTERALINT, ASSIGNS;
export
assign_s[assign(ident "RESULT", litteralint "0")]
|- exp : litteralint n, env &
UPDATE(env |- variable "RESULT", litteralint n : env')
as init_eval_exp(exp) = env';
export
env |- exp: litteralint n, env' &
UPDATE(env' |- variable "RESULT", litteralint n: env'')
as full_eval_exp(exp,env) = env'';
env |- litteralint N: litteralint N, env;
env |- EXP1: litteralint x1, env' &
env' |- EXP2: litteralint x2, env'' &
EVALUATE(|- BINOP, litteralint x1, litteralint x2 -> litteralint x)
-------------------------------------------------------------------
env |- bexp(EXP1,BINOP,EXP2) : litteralint x, env'';
env |- EXP: litteralint x1, env' &
EVALUATE(|- UNOP, litteralint x1 -> litteralint x)
--------------------------------------------------
env|- unexp(UNOP, EXP): litteralint x, env';
env |- EXP1: v,env'
-------------------
env |- exp_s[EXP1]: v,env';
env |- EXP1: v1, env' &
env' |- EXPS:v, env''
---------------------
env |- exp_s[EXP1.EXPS]:v, env'';
env |- EXP: v, env' &
UPDATE(env' |- variable V, v:env'')
-----------------------------------
env |- assign(variable V,EXP):v, env'';
GETVALUE(env |- variable V: v, anv')
------------------------------------
env |- variable V: v, env';
set UPDATE is
judgement ASSIGNS |- VAR, LITTERALINT: ASSIGNS;
assign_s[] |- variable V, litteralint N:
assign_s[assign(ident V, litteralint N)];
assign_s[assign(ident V, _).env] |- variable V, litteralint N:
assign_s[assign(ident V, litteralint N).env];
env |- variable V, n : env'
---------------------------
assign_s[assign(ident V', EXP).env]
|- variable V', n: assign_s[assign(ident V', EXP).env'];
provided diff(V,V');
end UPDATE;
set GETVALUE is
judgement ASSIGNS |- VAR: LITTERALINT, ASSIGNS;
assign_s[] |- variable V: litteralint "0",
assign_s[assign(ident V, litteralint "0")];
assign_s[assign(ident V, litteralint N).env] |- variable V: litteralint N,
assign_s[assign(ident V, litteralint N).env];
env |- variable V:n, env'
-------------------------
assign_s[assign(ident V', EXP).env]
|- variable V: N, assign_s[assign(ident V',EXP).env'];
provided diff(V,V');
end GETVALUE;
set EVALUATE is
judgement |- BINOP, LITTERALINT, LITTERALINT ->
LITTERALINT;
judgement |- UNOP, LITTERALINT ->
LITTERALINT;
add(X1,X2,x)
------------
|- binop "+", litteralint X1, litteralint X2 -> litteralint x;
sub(X1,X2,x)
------------
|- binop "-", litteralint X1, litteralint X2 -> litteralint x;
mult(X1,X2,x)
-------------
|- binop "*", litteralint X1, litteralint X2 -> litteralint x;
neg(X1,x)
---------
|- unop "-", litteralint X1 -> litteralint x;
end EVALUATE;
end eval_exp;