|
|
Outils et Logiciels pour la Communication |
de Recherche |
|
|
specification medium_example[iu_d] : noexit type natural is sorts nat opns + :nat,nat->nat - :nat,nat->nat endtype behaviour hide iu_s in stream_sender [iu_s] (30) |[iu_s]| medium [iu_s, iu_d] (14,20) where process stream_sender [iu_s] (period:nat) : noexit := iu_s{0} !1 !2; delay(period) stream_sender [iu_s] (period) endproc process medium [iu_s,iu_d] (dmin, dmax : nat) : noexit := iu_s ?n1:nat ?n2:nat; delay(dmin,dmax) iu_d; medium [iu_s, iu_d] (dmin, dmax) endproc endspec
State 0: 1 clocks State 1: 2 clocks State 2: 1 clocks Memory = 1184/1524 kbytes Execution time: 0:0s Speed in lotos machine: 4 states/s (4 states) Speed in graph generation: 3 states/s (3 states) 3 states, 3 arcs ( 0, i(iu_s<1,2>) K={0<=c1<=0} U={0<=c1<=0} C={1,2}, 1 ) ( 1, iu_d K={14<=c2} U={20<=c2} theta={(1,1)}, 2 ) ( 2, i(iu_s<1,2>) K={30<=c1<=30} U={30<=c1<=30} C={1,2}, 1 ) State 0: 1 clocks State 1: 2 clocks State 2: 1 clocks Memory = 1204/1556 kbytes END step 1, 6 marked nodes, 10 nodes END OK Memory = 1212/1564 kbytes END in level 4, 21 marked nodes, 27 nodes 0-(0) URG c1=0 1-(14 14) 0<=c1<30 c2>=14 c2-c1>-16 1-(0 0) 0<=c1<30 0<=c2<14 -16<c2-c1<14 2-(30) URG c1=30 2-(14) 0<=c1<30 ( 0-(0), i(iu_s<1,2>), 1-(0 0) ) ( 1-(14 14), iu_d, 2-(14) ) ( 1-(0 0), t, 1-(14 14) ) ( 2-(30), i(iu_s<1,2>), 1-(0 0) ) ( 2-(14), t, 2-(30) ) st0=1 st1=2 st2=2 5 classes 3 reachable DTA states 1cl(2st) 2cl(1st) 1s (0:1min) Memory = 1232/1572 kbytesmedium.dta medium.rg
medium.dta.daVinci medium.rg.daVinchi
medium.dta.dot medium.rg.dot
medium.dta.atg medium.rg.atg
L'outil aldebaran permet de réaliser un certain nombre de manipulations sur un graphe et notamment de faire des projections en ne considérant que les arcs que l'on souhaite observer :
medium.dta.bcg medium.rg.bcg
#!/usr/local/bin/perl
$autfile = $ARGV[0];
$obsfile = $ARGV[1];
if ( open(OBS,$obsfile) ) {
while (<OBS>) {
/^([^ ]*)\s*(.*)?$/;
push(@obsactions,$1);
push(@map,$2);
}
}
if ( open(AUT,$autfile) ) {
while (<AUT>) {
if (/^\((\d+),"(w-)?i",(\d+)\)$/)
{ print "($1,i,$3)\n"}
elsif (/^\((\d+),"t",(\d+)\)$/)
{ &compare ($1,"t",$2,$_);}
elsif (/^\((\d+),"(w-)?i\(([\w\W\d]*)\)",(\d+)\)$/)
{ &compare ($1,$3,$4,$_); }
elsif (/^\((\d+),"(w-)*(\w+)",(\d+)\)$/)
{ &compare ($1,$3,$4,$_); }
else{print}
}
}
sub compare {
local($arg1,$arg3,$arg5,$line)=@_;
local($found)= 0;
local($i)=0;
foreach $obsact (@obsactions) {
if ($arg3 eq $obsact)
{ $found = 1 }
elsif ($line eq $obsact)
{ $found = 1 }
if($found == 0)
{ $i++ }
}
if ($found == 1) {
$action=$map[$i];
print "($arg1,\"$action\",$arg5)\n"
}
else
{ print "($arg1,i,$arg5)\n" }
}
|
| pre-proj.perl |
des(0,6,7) (0,"a",1) (1,"b",2) (2,"c",3) (2,"d",4) (3,"e",5) (4,"e",6) |
a a c c e e |
des(0,6,7) (0,"a",1) (1,i,2) (2,"c",3) (2,i,4) (3,"e",5) (4,"e",6) |
| medium.proj.aut | medium.obs | medium.lot.rg0.aut |
![]() |
![]() |
![]() |
| graphe.aut | graphe.imin.aut | graphe.omin.aut |
![]()
![]()
Ce document a été traduit de LATEX par HEVEA.