Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.

Slides:



Advertisements
Hasonló előadás
Deduktív adatbázisok.
Advertisements

A digitális számítás elmélete
C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Osztott rendszer: (kommunikáció csatornán keresztül). Osztott rendszer informális definíciója. • Egymástól elkülönülten létező program-komponensek egy.
Probléma formálisan specifikált: valós világ (domai) (hibás eredmény) ködös határ (félreértés, hiba) formális világ (megoldás) A specifikáció csak nagyvonalakban.
Összefoglalás 1. Pascal program szerkezete 2. Pascal típusai
Függvények Egyenlőre csak valós-valós függvényekkel foglalkozunk.
Lambda kalkulus.
Determinisztikus programok. Szintaxis: X : Pvalt program változók E : Kifkifejezések B : Lkiflogikai kifejezések C : Utsutasítások.
Kötelező alapkérdések
1.) A programfejlesztés hagyományos életciklus modellje és adattípus.
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Kocsisné Dr. Szilágyi Gyöngyi. Elérehet ő ség: aszt.inf.elte.hu/~szilagyi/ aszt.inf.elte.hu/~szilagyi Fogadó óra: hétf ő
Turbo Pascal Változók.
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
Programozáselmélet Logikák és módszerek a programhelyesség bizonyításához.
A CLIPS keretrendszer CLIPS "C" Language Integration Production System.
Halmazok, relációk, függvények
Programozáselmélet Logikák és módszerek a programhelyesség bizonyításához.
Programozó matematikus szak 2003/2004-es tanév II. félév
Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 1.5 Programozó matematikus szak 2003/2004-es tanév II. félév.
A digitális számítás elmélete
A digitális számítás elmélete
Determinisztikus véges automaták csukva nyitva m s kbsm csukva nyitva csukva nyitva csukvanyitva 1. Példa: Fotocellás ajtó s b m m= mindkét helyen k= kint.
Differenciál számítás
Reprezentációs függvény. Adva egy adattípus absztrakt és konkrét specifikációja: d a = ( A, F, E a ); d c = ( C, G, E c ); A = {A 0,..., A n };C = {C 0,...,
1. előadás. 1.) Szoftverfejlesztés, mint mérnöki tevékenység. Számítási eszközfejlődés. Számítási eszközfejlődés: hazai viszonyok. Mérföldkő: Simula 67.Klasszikus.
1. előadás. 1.) Szoftverfejlesztés, mint mérnöki tevékenység. Számítási eszközfejlődés. Számítási eszközfejlődés: hazai viszonyok. Mérföldkő: Simula 67.Klasszikus.
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Alphabet is a type specification = sorts: alphabet oprs: a:  alphabet,...,z:  alphabet end alphabet; nat is a type specification = sorts:nat oprs:zerus:
Nem determinisztikusság és párhuzamosság. A nem determinisztikusság a párhuzamosságban gyökeredzik. Példa: S par  parbegin x:=0   x:=1   x:=2 parend;
A számfogalom bővítése
ISZAM III.évf. részére Bunkóczi László
Operációs rendszerek gyakorlat 4. Gyakorlat Vakulya Gergely.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Alapszint 2.  Készíts makrót, ami a kijelölt cellákat egybenyitja, a tartalmat vízszintesen és függőlegesen középre igazítja és 12 pontos betűméretűre.
Alprogramok deklarációja, definíciója és meghívása Páll Boglárka.
Természetes és formális nyelvek Jellemzők, szintaxis definiálása, Montague, extenzió - intenzió, kategóriákon alapuló gramatika, alkalmazások.
Összetett adattípusok
Ábrahám Gábor Radnóti Miklós Kísérleti Gimnázium Szeged
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Termelő-fogysztó modell. A probléma absztrakt megfogalmazása: informális leírás. Adott egy N elemű közösen használt tároló, N  1. Adott a folyamatoknak.
Koncepció: Specifikáció: e par exp i = eb imp bod ib Specifikáció elemzése: tulajdonságok felírása a koncepció alapján + tulajdonságok bizonyítása.
Egyenesvonalú (lineáris) adatszerkezetek
1. MATEMATIKA ELŐADÁS Halmazok, Függvények.
Az informatika logikai alapjai
Hozzárendelések, függvények
1 Mivel foglalkoz(t)unk a laborokon? 1.hét: Word dokumentumok 1.hét: Word dokumentumok tagolása, tartalomjegyzék, ábrák számozása, hivatkozások, egyenlet-szerkesztő.
MI 2003/6 - 1 Elsőrendű predikátumkalkulus (elsőrendű logika) - alapvető különbség a kijelentéslogikához képest: alaphalmaz. Objektumok, relációk, tulajdonságok,
Mintapélda Készítsünk programot, amely beolvas egy egész számot, és eldönti arról, hogy prímszám-e. Készítsünk programot, amely beolvas egy egész számot,
1 Mivel foglalkoz(t)unk a laborokon? 1.Labor: Word alapok Excel alapok: Excel alapok: Cellahivatkozás, munkalapfüggvény, diagram varázsló, trendvonal 2.
Adva S  parbegin S 1 ...  S n parend; Párhuzamos programszerkezet két vagy több olyan folyamatot tartalmaz, amelyek egymással közös változó segítségével.
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);
1 Relációs kalkulusok Tartománykalkulus (DRC) Sorkalkulus (TRC) - deklaratív lekérdezőnyelvek - elsőrendű logikát használnak - relációs algebra kifejezhető.
Excel programozás (makró)
Félcsoport (semigroup) = ({s},{ *: s s  s [infix]}. semigroup is a type specification = sorts: s oprs: *: s s  s [infix] eqns: m 1, m 2, m 3  s (m 1.
Paraméterátadó-morfizmus diagramja: p: tartalmazás SPEC SPEC 1 h : SPEC  SPEC' h 1 : SPEC 1  SPEC 1 ' SPEC' SPEC 1 ' p': tartalmazás SPEC: paraméter.
1 Függvények használata – az első függvénynél a formulát háromszor be kell írni, rendre az x, x+h, x-h argumentumokkal, – a második függvénynél az új (feltételes.
Az 5,6,7 laborok VBA anyagának összefoglalása
Példa. Az ábrázolás szemléltetése.  = ({stack, elem },{ create :  stack; push : stack elem  stack}),  = ( {vector, nat, elem}, { create c :  vector.
Függvények, mutatók Csernoch Mária. Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési.
2. gyakorlat INCK401 Előadó: Dr. Mihálydeák Tamás Sándor Gyakorlatvezető: Kovács Zita 2015/2016. I. félév AZ INFORMATIKA LOGIKAI ALAPJAI.
Excel programozás (makró)
II. konzultáció Analízis Sorozatok Egyváltozós valós függvények I.
Programozás C# -ban Elágazások.
A CLIPS keretrendszer
Példa: Dinteger = {..., -1,0,1,...}; Dboolean = {true, false};
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Előadás másolata:

Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy eleme: d  D. Értelmezés (interpretáció): A D tartomány konstans elemeinek értelmezése egy l(c) leképezés, amely minden c konstanshoz hozzárendeli az l(c) értéket. Azt mondjuk a c jelentése, szemantikája: l(c). Egy rendszer szemantikai tartománya általában: D =  D T ; T : típus

Példa: D integer = {..., -1,0,1,...}; D boolean = {true, false}; D T1 ...  Tn  T = D T1 ...  D Tn  D T ; Az összes függvény halmaza, amelyek a D T1,...,D Tn halmazokból D T halmazra képeznek le. l(c) értelmezés: Az alaptípusok minden konstansa saját magának az értelmezett értéke: ha c alaptípusú, akkor l(c) = c. Példa: Az 1 integer konstans értelmezi az 1 integer számot. A true boolean konstans értelmezi a true boolean értéket.

Minden magasabb típusú konstansnak, amelyet op operációval előállítunk az értelmezése l(op). Példa:Boolean alaptípus. Legyen op: .  (true) = false;  (false) = true;

Állapotok. A konstans állapota annak értéke. A változó állapota annak mindenkori értéke. A változó mindenkori értékeit egy a szóba jöhető mindenkori értékeket tartalmazó halmazból veszi: set of proper states. Minden T típusú egyszerű és array változóhoz hozzárendelt értékek halmaza a mindenkori értékek: set of proper states. Jelölése: . Példa. Legyen  egy tömb. Típusa: integer  boolean  boolean; Legyen x egy integer típusú változó.

Példa. Legyen  egy tömb. Típusa: integer  boolean  boolean; Legyen x egy integer típusú változó.  (  ) : {...,-1,0,1,...}  {true, false}  {true, false}; x értékei: {...,-1,0,1,...}. Pl.:  (  )(1, true)  {true, false};  (  )(5,false)  {true, false}; (  x  {...,-1,0,1,...})(  (  )(  (x),false)  {true, false});

Szemantika definíciója. Egy T típusú s kifejezés szemantikája az S struktúrában (s  S) egy leképezés: S[  s  ] ;   D T ; ( s-hez rendeli az S[  s  ](  ) értéket D T halmazon belül). S[  s  ](  ) induktív definíciója. Ha s egyszerű változó: S[  s  ](  ) =  (s); Ha s egy alaptípusú konstans, amelynek értéke d. S[  s  ](  ) = d; Ha s  op(s 1,...,s n ), amelynek értékét f függvény adja: S[  s  ](  ) = f(S[  s 1  ](  ),...,S[  s n  ](  )); Ha s   [s 1,...,s n ], egy tömbváltozó: S[  s  ](  ) =  (  )(S[  s 1  ](  ),...,S[  s n  ](  ));

Ha s  if B then s 1 else s 2 fi egy feltételes elágazás: S[  s 1  ](  ) ha S[  B  ](  ) =T; S[  s  ](  ) = S[  s 2  ](  ) ha S[  B  ](  ) =T; Rövid jelölés: S[  s  ](  ) =  (s); Példa: (Ha s  op(s 1,...,s n ), amelynek értékét f függvény adja: S[  s  ](  ) = f(S[  s 1  ](  )),...,S[  s n  ](  )); Legyen a függvény: s  add(a,b); a,b  integer; S[  s  ](  ) = add(S[  a  ](  ),S[  b  ](  )) = add(a,b); s=a+b; S[  s  ](  ) = S[  a  ](  )+S[  b  ](  )) = (a+b);

Állapotok aktualizálása. Adva  állapot. Az állapot aktualizálása:  [u:=d]; u egy T típusú egyszerű változó, vagy indexes változó; d egy T típusú elem. Ha u egyszerű változó, akkor az eredmény d ha u  v,  [u:=d](v) =  (v) különben. Példa: x egy integer típusú változó,  megfelelő állapot.  [x:=1](x) = 1, Minden y =x esetén:  [x:=1](y) =  (y),

Ha indexes változókról van szó: u  A[t1,...,tn], akkor Egyszerű, vagy indexes: d; ha u  v  [u:=d](v) =  (v); ha u  v A-ra és az argumentum értékeire alkalmazandó. Jelölés: d =  (A), d i =  (t i ); minden i  {1,...,n};  [u:=d](A)(d 1,...,d n ) = d,ha d i =  (t i ); minden i  {1,...,n};  (A)(d 1,...,d n ); különben. Tehát a hatás az A tömb változónak az aktualizálása az argumentum változóknak az aktuálisa révén.

Példa. x  integer;  ;  [x:=1](x) =1; y=x:  [x:=1](y) =  (y); Hasonlóan: , amelynek típusa: T 1 ...  T n  T; és d i  D Ti, i  {1,...,n};  [x:=1](a)(d 1,...,d n ) =  (a)(d 1,...,d n );

Állítás, (assertion). Minden bool kifejezés állítás. Ha p,q állítás akkor  p, p  q, p  q, p  q, p  q szintén állítás. Ha x egyszerű változó és p(x) egy állítás, akkor  x:p(x);  x:p(x); szintén állítások. Relációk: , =, , , , . Relációkkal képezett kifejezések állítások. Error állapotok is állítások: , , fail; Benne foglaltatás, része, stb. is állítás: , , ,...

Példa. Legyen A bool típusú tömb: A : integer bool  bool; Legyen j,k  integer, b  bool, és  bool kifejezés. Ekkor logikai kifejezések a következők:   A[j+1, b];   A[ 2  j, A[k,~b]]; Alaphalmazok: (integer = {..., -1, 0, 1,2,...}; bool = {"true", "false"}, Az alaphalmazokon értelmezett szokásos kifejezések rekurzív definíciója: kifejezés e::= c  x  (e1 + e2)  (e1-e2)  (e1  e2); bool kifejezés b ::= (e1 = e2)  (e1  e2)  ~b  (e1  e2),

A p állítás szemantikája S[p] :   {true, false}; Jelölés: S[p](  ) : adott  mellett S[p] = true; {  p(  )  }; Röviden: {p(  )}; {p}; , , fail  {p}; Állítások szemantikája: {~p}=  \ {p}; {p  q}= {p}  {q}; {p  q}= {p}  {q}; p  q = true akkor és csak akkor, ha {p}  {q}; p  q = true akkor és csak akkor, ha {p} = {q}; S[p](  ) = true; helyett néha röviden:   p;

Behelyettesítés (substition). A behelyettesítés egy függvény, amely kifejezésről kifejezésre, állításról állításra képez le: Behelyettesítés: expression  expression; Legyen u egy egyszerű, vagy indexes változó, amely egy s kifejezés része. Az s kifejezésben az u helyettesítését a t kifejezéssel a következő jelöli: s[u:=t]. Példák: max(x,y)[x:=x+1]  max(x+1,y); max(a[1],y)[a[1]:=2]  max(2,y); max(a[x],y)[a[1]:=2]  if x=1 then max(2,y) else max(a[x],y) fi;

s[u:=t] formális definíciója. s  x, x egyszerű változó: t ha s  u; s[u:=t]  s különben; s  c, ahol c alaptípusú konstans: s[u:=t]  s; s  op(s 1,...,s n ): s[u:=t]  op(s 1 [u:=t],...,s n [u:=t]); s   [s 1,...,s n ]; ahol  tömb, u egyszerű, vagy indexes változó: s[u:=t]   [s 1 [u:=t],...,s n [u:=t]]; s  if B then s 1 else s 2 fi: s[u:=t]  if B[u:=t] then s 1 [u:=t] else s 2 [u:=t] fi;

Minden s, t kifejezésre, minden x egyszerű változóra és minden  (t 1,...,t n ) indexes változóra s[x :=t]  s ha s nem tartalmazza x-et; s[  (t 1,...,t n ) := t]  s ha s nem tartalmazza  -át; Példa. a,b integer  típusú tömbök és x integer típusú változó. a[b[x]][b[1]:=2] (def. s[u:=t] ha a=b) : a[b[x]][b[1]:=2]  (def. s[u:=t] alapján) a[if x[b[1]:=2] =1then 2 else b[x[b[1]:=2]] fi]  (x[b[1]:=2]  x szerint)  a[if x=1then 2 else b[x] fi];

A determinisztikus program: egy szimbólumokból képezett string. Kulcsszavak: if, then, else, fi, while, do, od. A programot generáló grammatika: S::= skip | u:= t | S 1 ; S 2 | if B then S 1 else S 2 fi | while B do S od. u: egyszerű, vagy indexes változó; t: kifejezés; u és t típusa megegyezik. B: kvantor-független logikai kifejezés; if B then S fi  if B then S else skip fi; Az S,S 1,S 2 programok változói: egyszerű, vagy indexes változók.

Az S determinisztikus program jelentése: A megfelelő (kezdő) állapotok halmazáról megfelelő (vég-)állapotok halmazára történő leképezés: M[S]. Hogyan definiáljuk? Denotációs szemantika-definíciós módszer. Operációs szemantika-definíciós módszer. (minden programtípusra kézenfekvő) Adva az absztrakt gép. Adva a program: S. Adva a megfelelő állapothalmaz: . Az absztrakt gép konfigurációja:  S,   ;  ; A program végrehajtása konfigurációk közötti átmenetek sorozata.

Konfigurációk közötti átmeneti reláció ( transition relation ):  Konfigurációk közötti átmenet: konf 1  konf 2  S,    R,  ; ,   ; R: maradék program; Befejeződés: A program végrehajtásának befejeződésének eredménye:  R,  ; R  E : üres program; A program befejeződik a  állapotban.