Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaCsenge Nemesné Megváltozta több, mint 9 éve
1
Paraméter továbbítás. (parameter passing) Paraméteres specifikációk: Pl.: string(spec) : hasonló specifikációk családja; string(nat); string(data); string(integer); string(alphabet);... A paraméteres specifikáció előnye: formális paraméterekkel felírt specifikáció [formal spec.]; általános mechanizmus segítségével aktuális paraméterekkel felírt specifikáció; [érték specifikáció (value spec.)] Mechanizmus: paraméter továbbítás. Egyszerű paraméter passing: "spec" egyszerű adattípus; Iterált paraméter passing: "spec" paraméteres adattípus;
2
Paraméter továbbítás. (parameter passing) Adva: PSPEC paraméter-specifikáció: p SPECSPEC1 SPEC = (S,OP,E); formális paraméterek specifikációja. p: benne foglaltatás; SPEC1 = SPEC (S1,OP1,E1); Például: p datastring(data) Adva: h: SPEC SPEC' morfizmus; ahol SPEC' = (S',OP',E') : aktuális paraméterek specifikációja;
3
A paraméter továbbítás diagramja: p SPECSPEC1 h = h1 SPEC'SPEC1' p' SPEC1' : érték specifikáció; h: SPEC SPEC' :specifikáció morfizmus; p': benne foglaltatás; h1: h1(s); s S S1: if s S1 then s else h(s) fi. (N:s 1...s n s) OP OP': h1(N:s 1...s n s) = if N:s 1...s n s OP1 then N:h1(s 1 )...h 1 (sn) h1(s) else h(N):h(s 1 )...h(s n ) h(s) fi. SPEC1'= SPEC' (S1',OP1',E1'); S1'= S1, OP1'= h1(op1), E1'= h1 (E1),
4
Példa: p data string(data) h = h1 nat string(nat) p'
5
string(data) is a type specification = parameters = data+ exports = type sort: string oprs: empty: string make: data string concat: string string string ladd: data string string radd: string data string eqns: d data, s,s 1,s 2,s 3 string; concat(s,empty) = s concat(empty,s) = s ladd(d,s)= concat(make(d),s) radd(s,d)= concat(s,make(d)) end string;
6
Paramétereket tartalmazó paraméter továbbítás. (Parameterized parameter passing.) Adva PSPEC = (SPEC, SPEC1); SPEC1= SPEC + (S1,OP1,E1); p SPEC SPEC1 PSPEC paraméteres formális specifikáció; p: tartalmazás; Pl.: PELEM = (ELEM, SET);p ELEMSET Adva: PSPEC' = (SPEC', SPEC1'); SPEC1'= SPEC' + (S1',OP1',E1'); Paraméteres aktuális specifikáció. Pl.: PELEM' = (NAT, SET ' );
7
Paraméter átadás morfizmusa: h: SPEC SPEC1'; Paraméteres paraméter-átadás szintaxisa: p SPECSPEC1 h = h1 SPEC'SPEC1'SPEC2' p' q p, p' : tartalmazás; Paraméteres érték specifikáció: (SPEC', SPEC2'); Jelölés: (SPEC', SPEC2') = PSPEC h PSPEC' table(data) h set(data) = (table h set)(data) = table(set(data)).
8
Példa: Paraméter átadás morfizmusa: h: data set(data); Paraméteres paraméter-átadás szintaxisa: p PS(data nat) PS(table a (data)) h = h1 PS(set(nat)) PS(set(nat) nat)PStable(set(nat)) p' q p, p' : tartalmazás; Paraméteres érték specifikáció: (set(nat), PStable(set(nat))); Jelölés: (SPEC', SPEC2') = PSPEC h PSPEC' table(data) h set(nat) = (table h set)(nat) = table(set(nat)).
9
Modul specifikációkon értelmezett alapvető operációk: Kompozíció. Adva M 1 = (PAR 1, EXP 1, IMP 1, BOD 1, e 1, i 1, eb 1,ib 1 ); M 2 = (PAR 2, EXP 2, IMP 2, BOD 2, e 2, i 2, eb 2,ib 2 ); Felmerülő igény: M 1 import interfészének és M 2 export interfészének az összeillesztésével hozzunk létre egy új M 3 modulspecifikációt. Kompozíció. h: = M 1 M 2 ; h=(h 1,h 2 ); h 1 : IMP 1 EXP 2 ; h 2 : PAR 1 PAR 2 ; M3 = M1 h M2;
10
M 1 = (PAR 1, EXP 1, IMP 1, BOD 1, e 1, i 1, eb 1,ib 1 ); M 2 = (PAR 2, EXP 2, IMP 2, BOD 2, e 2, i 2, eb 2,ib 2 ); M3 = M1 h M2; Eredmény: M 3 = (PAR 3, EXP 3, IMP 3, BOD 3, e 3, i 3, eb 3,ib 3 ); PAR 3 = PAR 1 ; EXP 3 = EXP 1 ; IMP 3 = IMP 2 ; e 3 = e 1 ;
11
e 1 PAR 1 EXP 1 i 1 = eb 1 ib 1 IMP 1 BOD 1 e 2 PAR 2 EXP 2 i 2 = eb 2 ib 2 IMP 2 BOD 2 BOD 3 h2h2 h1h1 b1b1
12
Megvalósítás: reprezentáció (ábrázolás) + implementáció. Reprezentáció: : C A;
13
Interfész megvalósításai. e PAREXP i = eb IMPBOD ib Interfész: ( PAR, EXP, IMP, e, i ) body rész jelölése az osztály morfizmus diagramjában. body = oprs: rep : C A eqns: c C; f 0 : g 0 f c (c): g c (c) A jelölés jelentése: f 0 = rep(g 0 ); (f 0 = (g 0 )); f c (c): rep(g c (c)); f c (c): (g c (c))
14
Kettős specifikáció: e par exp i = eb imp bod ib absztrakt specifikáció reprezentáció + tartalmazás konkrét specifikáció Tartalmazás: exp=body = typesort: atypesort: (c) oprs: f i :a, p 1,...,p k a oprs: f i : (c), p 1,...,p k (c). eqns: eqns: f s (f c (a)) = h(a) f s (f c ( (c))) = h( (c))
15
Az interfész megvalósítása a diagram kommutációját fejezi ki: e PAREXP i IMP e' PAR'EXP' i' = eb' IMP'BOD' ib' i' r P = r I i; és e' r P = r E e; Ha r P = r E = r I = identitás, akkor egzakt megvalósítás. rPrP rErE rIrI
16
Interfész egzakt megvalósítása (realizációja): Adott INT = (PAR 1, EXP 1, IMP 1, e 1, i 1 ) interfész specifikáció. MOD = (PAR, EXP, IMP, BOD, e, eb, i, ib); modulspecifikációt az INT interfész egzakt megvalósításának nevezzük, ha I(MOD) = INT. I(MOD) = (PAR, EXP, IMP, e, i ). MOD' = ( PAR', EXP', IMP', BOD', e', eb', i', ib'); modulspecifikációt az INT interfész specifikáció megvalósításának nevezzük, ha létezik olyan (r P : PAR 1 PAR, r E :EXP 1 EXP, r I :IMP 1 IMP) specifikáció morfizmus-hármas, amelyikre i' r P = r I i; és e' r P = r E e;
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.