.
on-line . , , . Model Checking.
. , , :
, .
. .
. , , . . .
SPIN
, . SPIN. Promela, , , LTL. , . , , , .
Promela
Promela C. :
;
;
;
;
init.
, , , . active, . run. Promela : bit, bool, byte, short, int. . . . , . , . , X < 7 X . , . , , .
|
|
Promela , . 1.1.
1.1
if :: guard1 → S1 :: guard2 → S2 :: else → Sk fi | do :: guard1 → S1 :: guard2 → S2 :: else → Sk od |
: guard Si. , . , Sk, else. else . , .
AP . M = (S, S0, R, L),
S ;
S0 Í S ;
R Í S×S ;
L: S → 2AP .
LTL
LTL (Linear-Time Logic) p1, p2, Î AP, Ø, /\, \/, →, . φ .
Xφ ( φ neXt);
Gφ (φ Globally);
Fφ (φ - Finally);
ψUφ (ψ , φ Until)
.
G F . U:
Fφ º 1Uφ;
Gφ º Ø F Ø φ.
LTL . φ, , φ.
1.2 SPIN. X neXt) , SPIN .
1.2 , SPIN, .
[] | G |
<> | F |
! | Ø |
U | U |
&& /\ | /\ |
|| \/ | \/ |
-> | → |
<-> | ↔ |
AP .
2AP A = (Q, q0, d, F),
Q ;
q0 ;
d Í Q´2AP´Q ;
FÍ Q .
, LTL- , . , .
. LTL- [](p U q). ,
, p , ,
, q. SPIN
never claim:
never { /* [](p U q) */
T0_init:
if
|
|
:: ((q)) -> goto accept_S9
:: ((p)) -> goto T0_init
fi;
accept_S9:
if
:: ((((p)) || ((q)))) -> goto T0_init
fi;
}
, 1.1. .
1.1 G(p U q)
. , .
MVC
MVC - , , . MVC -, (, , ), .
( HTTP, GET POST, ). , , . .
- , , . , . ? , ( , e-mail , , ). , (, , , ). , , . . , , , (, , , ). ( ).
, . , . , , .
, . , .
MVC 1.2.
1.2 MVC
MVC , . , :
, . , ;
, ;
. , , , , .
- . , - . , . .
|
|
:
1. ;
2. ;
3. ;
4. Promela;
5. Promela.
Promela, SPIN.
PHP, JavaScript/JQuery. PHP- Yii2.
PHP -. :
. C Perl. PHP C Pascal. PHP , C Perl, , , .
. PHP . . PHP -.
. PHP . PHP (<?) (?>). , . PHP html- , PHP-. .
. PHP 2 : . (safe mode), . . , PHP .
. . PHP , JavaScript, HTML, XML . , PHP, . , . - -.
. Open Source, PHP , .
-, JavaScript/JQuery.
JQuery , JavaScript HTML. JavaScript . JQuery JavaScript , , . JQuery , Microsoft, Google, , .