Példa: Dinteger = {..., -1,0,1,...}; Dboolean = {true, false};

Slides:



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

A digitális számítás elmélete
Definíciók: Algoritmus: bármely véges sok lépéssel leírható tevékenység. Olyan pontos előírás, amely megmondja, hogy egy adott típushoz tartozó feladat.
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.
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
Lambda kalkulus.
Determinisztikus programok. Szintaxis: X : Pvalt program változók E : Kifkifejezések B : Lkiflogikai kifejezések C : Utsutasítások.
Dijkstra-féle leggyengébbelőfeltétel-kalkulus
Kötelező alapkérdések
3. előadás (2005. március 1.) Utasítások, tömbök
1.) A programfejlesztés hagyományos életciklus modellje és adattípus.
Kocsisné Dr. Szilágyi Gyöngyi. Elérehet ő ség: aszt.inf.elte.hu/~szilagyi/ aszt.inf.elte.hu/~szilagyi Fogadó óra: hétf ő
Programozás alapjai.
Programozáselmélet Logikák és módszerek a programhelyesség bizonyításához.
C A C nyelv utasításai. Ismétlés Utasítások csoportosítása.
Halmazok, relációk, függvények
Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 1 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.
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
A digitális számítás elmélete
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:
C nyelv utasításai.
Ismétlés A pascal program szerkezete: program programnev; Programfej
PHP nyelv. PHP Interpreteres nyelv → parancsértelmező szükséges hozzá Rasmus Lerdorf 1995 → személyes felhasználás (internetes önéletrajzának megtekintésének.
Algoritmusok.
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.
Az informatika logikai alapjai
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ő.
Programozás, programtervezés
Török Katalin és Marosi Nóra 11/c. Pascal: Az es években megjelent magas szintű programozási nyelv, közel áll az emberi gondolkodáshoz. Nevét.
C Programozási alapok.
előadások, konzultációk
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.
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.
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.
Adatszerkezetek és algoritmusok 2008/ Algoritmus Az algoritmus szó eredete a középkori arab matematikáig nyúlik vissza, egy a i.sz. IX. században.
Példa. Az ábrázolás szemléltetése.  = ({stack, elem },{ create :  stack; push : stack elem  stack}),  = ( {vector, nat, elem}, { create c :  vector.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Utasítás és blokk. Elágazás típusai, alkalmazása Kovács.
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.
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.
Programozási nyelvek csoportosítása.
Informatikai gyakorlatok 11. évfolyam
Excel programozás (makró)
II. konzultáció Analízis Sorozatok Egyváltozós valós függvények I.
Compiler illetve interpreter nyelvek
Programozás C# -ban Elágazások.
A CLIPS keretrendszer
Bevezetés a programozásba Algoritmikus gondolkodás
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Változók.
ITERÁCIÓ.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
2-3-fák A 2-3-fa egy gyökeres fa az alábbi tulajdonságokkal:
Informatikai gyakorlatok 11. évfolyam
Algoritmus készítés.
Előadás másolata:

Példa: Dinteger = {..., -1,0,1,...}; Dboolean = {true, false}; DT1...Tn T = DT1...DTn  DT ; Az összes függvény halmaza, amelyek a DT1,...,DTn halmazokból DT 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.

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 | S1; S2 | if B then S1 else S2 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,S1,S2 programok változói: egyszerű, vagy indexes változók.

Az S determinisztikus program jelentése: M[S] A megfelelő (kezdő) állapotok halmazáról megfelelő (vég-)állapotok halmazára történő leképezés. Divergencia végállapotának jele: . Szemantika definiálása. Detoná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):  konf1  konf2 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.

A nyelvi szerkezetek szemantikája: Axiómák: 1. Üres utasítás: 2. Értékadás:  skip,    E, ;  u := t,     E, (u := (t)) ; Következtetési szabályok: 1. Szekvencia: S1;S2. S1,   S2,  S1;S,   S2;S,  2. Feltételes elágazás: if  then S1 else S2 fi,  if  then S1 else S2 fi,   S1,  ha () = T;  if  then S1 else S2 fi,   S2,  ha () = F;

Bool kifejezés kiértékelése. 3.) iteráció: while B do S od;  while B do S od,    S; while B do S od,  ; ha (B) = T;  while B do S od,    E,  ; ha (B) = F; Megszakítás nélkül végrehajtódnak: Skip; Értékadás; Bool kifejezés kiértékelése.

Definíciók: a) b) c) d) Az S program  állapottal kezdődő tranzakciós sorozata: Si,i, (i  0) konfigurációk véges, vagy végtelen sorozata. S, = S0,0  S1,1  . . .  Si,i  ... Az S program  állapottal kezdődő kiszámítása egy olyan tranzakciós sorozat, amely nem bővíthető. Az S program  állapottal kezdődő kiszámítása  állapotban befejeződik, ha a sorozat véges és annak utolsó konfigurációja: Ü,; Ü: üres program. Az S program  kezdő állapottal kezdődő kiszámítása divergens, ha a sorozat végtelen.

Az S program kiszámítása egy adott  kezdő állapottal: :  S,     S1,1   ...   Sn-1,n-1    Sn,n ; Ha a program végrehajtása véges és eredményesen befejeződik: :  S,     S1,1   ...   Sn-1,n-1    Sn,n ; val() = n, n, és Sn = T : üres program. Rövid jelölés: :  S,    *  Sn,n ; Ha a program végrehajtása véges, Sn = E üres program, de E = T, akkor a program végrehajtása hibás: :  S,   *  E,fail ; val() = fail , Sn = E: üres program, E = T.

Az S program kiszámítása egy adott  kezdő állapottal: :  S,     S1,1   ...   Sn-1,n-1    Sn,n ; Ha a program végrehajtása véges és eredményesen befejeződik: :  S,    *  Sn,n ; val() = n, n, és Sn = T : üres program. Ha a program végrehajtása véges, Sn = E üres program, de E = T, akkor a program végrehajtása hibás: :  S,    *  E,fail ; val() = fail , Sn = E: üres program, E = T.

Lemma. Minden S determinisztikus programhoz adott  megfelelő állapot mellett pontosan egy kiszámítás tartozik. Indoklás: Minden konfigurációnak pontosan egy rákövetkezője van a sorozatban. Definíció. Blokkolás mentesség: ha S  E, és minden  esetén létezik olyan S1, konfiguráció, melyre S,  S1,; akkor a programot blokkolás mentesnek nevezzük. Lemma. Minden determinisztikus program blokkolás mentes. Indoklás: Ha S  E, akkor minden S, konfigurációra létezik egy rákövetkező konfiguráció a  reláció szerint.

A determinisztikus program szemantikája. Parciális helyességi szemantika: M[S] :   P(); M[s]() = {|S,  *E,}. Teljes helyességi szemantika: Mtot[S] :   P(  {}); Mtot[s]()= M[s]()  {  | S divergálhat  kezdeti értékkel }.

  x:= x+1; while a[x]0 do x:= x+1 od, '  Példa. S a[1]:=1; a[1]:=0; while a[x]0 do x:= x+1 od; Legyen , amelyben x=0; Determinizmus alapján egy kiszámítás létezik S, kezdőértékkel. { x=0}  a[0]:=1; a[1]:=0; while a[x]0 do x:= x+1 od, ; {x=0a[0]=1}   a[1]:=0; while a[x]0 do x:= x+1 od, [a[0]:=1]    while a[x]0 do x:= x+1 od, '  (': [a[0]:=1][a[1]:=0]; ami a  ismételt aktualizálását jelenti),   x:= x+1; while a[x]0 do x:= x+1 od, '    while a[x]0 do x:= x+1 od, '[x:=1]   E, '[x:= 1] . M[S]() = Mtot[S]() = { '[x:= 1] } ;

Példa. Legyen  olyan állapot, amelynél x=2 és i = 2,3,..., a[i]=1; S a[0]:=1; a[1]:=0; while a[x]0 do x:= x+1 od; Induláskor: S,   a[1]:=0; while a[x]0 do x:= x+1 od, [a[0]:=1]    while a[x]0 do x:= x+1 od, '  (': [a[0]:=1][a[1]:=0]; ami a  ismételt aktualizálását jelenti).   x:= x+1; while a[x]0 do x:= x+1 od, '    while a[x]0 do x:= x+1 od, '[x:= (x)+1]  . . .   while a[x]0 do x:= x+1 od, '[x:= (x)+k]  ... S végrehajtása divergens: M[S]() = ; Mtot[S]() = {  } ;

A szemantika tulajdonságai: Legyen  az üres determinisztikus program: ()M[]() = ; Pl. while true do skip od. Az iteráció induktív definíciója: (while B do S od)0 = , (while B do S od)k+1 = if B then S; (while B do S od)k else skip fi; M[S]() = ; Mtot[S]() = {}; és X    {} esetén, Jelölés: N[S]: M[S], Mtot[S]; N[S](X) =  N[S](); X

1. 2. 3. 4. 5. N[S] monoton: Tekintsük az adott program utasításainak halmazát: ha X  Y    {}, akkor N[S](X)  N[S](Y); N[S1; S2](X) = N[S2](N[S1](X)); N[(S1; S2); S3](X) = N[(S1; (S2; S3)](X); N[if B then S1 else S2 fi)](X) = N[S1](X  {B})  N[S2](X  {~B})  { X and N = Mtot); k= M[while B do S od] = k=0M[(while B do S od)k].

k= 5. M[while B do S od] = k=0M[(while B do S od)k]. Mtot szemantika esetére ez nem igaz. Tegyük fel hogy igaz. Mivel minden  esetén Mtot[]() = {}; Ezért k=  k=0Mtot[(while B do S od)k](), minden while B do S od program esetén. Ámde van olyan while B do S od amelyre  Mtot[while B do S od]() ! Ellentmondás!

Szekvenciális tranzakciós diagram: a program vezérlési szerkezetét írja le. A szerkezet: A program végrehajtási pontjait és a pontok közötti átmeneteket (transitions) tartalmazza. Végrehajtási hely: a program számlálónak (counter) a helyzetét mutatja. Átmenet: a tranzakció az utasítás végrehajtásának a hatását adja meg a programszámláló új értékének a formájában. Egy utasítás végrehajtása: állapot transzformáció formájában valósul meg: állapot a memória tartalmát fejezi ki; állapot transzformációk a memória cellákhoz a végrehajtott operációk eredményeit rendelik.

A program vezérlési szerkezete: címkékkel ellátott irányított gráf. A gráf csomópontjai: végrehajtási helyeket fejeznek ki. Az irányított élek ezeket a csomópontokat kötik össze. Az entry csomópont egy kitüntetett csomópont ahol a végrehajtás kezdődik. Címkéje s. Az exit csomópont olyan kitüntetett csomópont, amelyből nem mutat kifelé él. Címkéje t. A gráfban minden élhez egy utasítás tartozik címkeként: c  f; c: bool feltétel; f: állapot transzformáció.

Definíció. (bool feltétel, állapot transzformáció). Adott , és . Bool feltétel egy bool függvény, amely a szóban forgó állapothoz az igaz értéket rendeli:  bool. Az f állapot transzformáció a  leképezések egy eleme. Szemantika hozzárendelése a változókhoz. Adva a program változóinak egy sorozata: x=(x1,...,xn); és a megfelelő d =(d1,...,dn); értékek egy sorozata. A megfeleltetés: di ha y = xi, (:xd)(y) = (y) ha y = xi; i = 1,...,n; Szemantikailag az állapot hozzárendelése a változókhoz: : x d;

A program vezérlési szerkezete: címkékkel ellátott irányított gráf. A gráf csomópontjai a program állapotai, amelyeket címkék azonosítanak. l Az élek az állapotátmenetek, amelyekhez a leképezések tartoznak: c  f l l' A tranzakciós diagram: T = (L,T,s,t); L: állapotokat azonosító címkék halmaza: lL. (l, c  f, l') T; állapotátmenetek halmaza. s: Az indulási állapotot azonosító címke. t: A befejező állapotot azonosító címke.

Adva P =(L,T,s,t); A P tranzakciós diagram egy végrehajtása (kiszámítása)  a 0 kezdőértékkel a kezdő l0 címkétől: li,i ; konfigurációk egy sorozata: : l0,0   l1,1   l2,2   ... ahol l0=s. Minden tranzakcióhoz c  f úgy, hogy c(i) = true; és i+1= f(i); l l' A sorozat nem bővíthető: ha véges, akkor az utolsó konfigurációnak nincs rákövetkezője.

utolsó konfiguráció: t, ; val() = ; ; 1.) Ha a sorozat véges: utolsó konfiguráció: t, ; val() = ; ; 2.) Ha a sorozat véges: utolsó konfiguráció: ln, ; ln t; val() = fail; 3.) Ha a sorozat végtelen: val() = ; , fail ; comp(P)(): az olyan kiszámítások halmaza, amelyeknek kiindulási állapota . A P tranzakciós diagram jelentése: M[p]() = {val()|comp[P]()};