Példa. Az ábrázolás szemléltetése.  = ({stack, elem },{ create :  stack; push : stack elem  stack}),  = ( {vector, nat, elem}, { create c :  vector.

Slides:



Advertisements
Hasonló előadás
C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Advertisements

Osztály leszármaztatás
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
PL/SQL folytatás Kurzorok Alprogramok Tárolt eljárások ADATBÁZIS ALAPÚ RENDSZEREK.
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
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
Lambda kalkulus.
Determinisztikus programok. Szintaxis: X : Pvalt program változók E : Kifkifejezések B : Lkiflogikai kifejezések C : Utsutasítások.
MI 2003/9 - 1 Alakfelismerés alapproblémája: adott objektumok egy halmaza, továbbá osztályok (kategóriák) egy halmaza. Feladatunk: az objektumokat - valamilyen.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Kötelező alapkérdések
1.) A programfejlesztés hagyományos életciklus modellje és adattípus.
JavaScript.
5. előadás (2005. március 22.) Függvények definíciója, deklarációja, hívása Enumerációs adattípus 1.
Osztályok Garbage collection.  általában minden osztálynak vannak adattagjai és/vagy metódusai ◦ adattagok megadása:  [láthatóság] [static] [final]
Programozás II. 3. Gyakorlat C++ alapok.
Tömbök ismétlés Osztályok Java-ban Garbage collection
IPPI ÁLTALÁNOS ISKOLA SZILÁGY MEGYE
Java programozási nyelv 3. rész – Osztályok I.
C# tagfüggvények.
C# tagfüggvények.
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,...,
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
6. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.
5. előadás Parametrikus polimorfizmus. Generikus programozás
6. előadás Hatókör, láthatóság, élettartam. Változók leképzése a memóriára. Blokkszerkezetes nyelvek. Kivételkezelés.
5. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.
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;
Matematika III. előadások MINB083, MILB083
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:
DML. Új rekord beszúrása: INSERT INTO tábla (oszlop1,oszlop2,…) VALUES (érték1,érték2,…); Rekord módosítása: UPDATE tábla SET oszlop = érték WHERE feltétel;
Alprogramok deklarációja, definíciója és meghívása Páll Boglárka.
Karakterláncok Páll Boglárka.
Karakterláncok Páll Éva Boglárka. Ismétlés Deklaráció var s:string; Length(karlánc) Concat(karlánc1,...,karláncn) Copy(miből,honnan,hányat) Delete(miből,honnan,hányat)
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele a minimum elégséges érdemjegynek!
Objektum orientált programozás a gyakorlatban
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
Analitikus geometria gyorstalpaló
Fák.
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
Adatbázis rendszerek II
1 Mivel foglalkozunk a laborokon? 7. hét: Do-Loop-Until Do-Until-Looptömbök Function 7. hét: Do-Loop-Until és Do-Until-Loop ciklusok. Egy indexes tömbök,
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ő.
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,
Tervminták megvalósítása B formális nyelven Papp Olga Vadász Péter Témavezető: Fóthi Ákos.
A 2. géptermi beszámoló VBA anyagának összefoglalása
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.
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);
5. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.
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.
Krizsán Zoltán, iit C# osztályok 2 Adattagok  Osztály hatáskörben definiált változó.  Formája: [attribútum] [módosító] típus azonosító [=kezdő érték][,
Script nyelvek előadás
Gépészeti informatika (BMEGEMIBXGI)
Excel programozás (makró)
Példa: Dinteger = {..., -1,0,1,...}; Dboolean = {true, false};
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Függvénysablonok használata
Előadás másolata:

Példa. Az ábrázolás szemléltetése.  = ({stack, elem },{ create :  stack; push : stack elem  stack}),  = ( {vector, nat, elem}, { create c :  vector nat; push c : vector nat elem  vector nat; pop c : vector nat  vector nat elem }); Legyen a h =  ' morfizmus egy ábrázolás: h s (stack) = vector nat; h s (elem) = elem; h OP (create :  stack) = create c :  vector nat; (h OP (create) = create c ); h OP (push : stack elem  stack) = push c : vector nat elem  vector nat; (h OP (push) = push c ); Reprezentáció. Reprezentációs függvény: rep: vector nat  stack; s = rep(v,n); s  stack, v  vector, n  nat; s =  (v,n);

Paraméterátadás. Standard paraméterátadás: spec(spec 1 )  spec(spec 2 ) spec 1 formális, spec 2 aktuális paraméterek, (értékadással történő paraméterátadás). Ismételt paraméterátadás: spec(spec 1 (spec A ))  spec(spec 2 (spec B ));

SPEC = (S,OP,E); SPEC = ( ,E); Szignatúra morfizmus:   '; Szignatúra morfizmus. Adott:  = (S,OP),  ' =(S',OP'), mellett a h  :  ', leképezést Szignatúra morfizmusnak nevezzük, ha h  = (h s : S  S', h OP : OP  OP'); úgy, hogy (  N: s 1... s n  s  OP)(h OP (N): h s (s 1 )... h s (s n )  h s (s)  OP').

A h:   ' szignatúra morfizmus kiterjesztése változókra: Legyenek X, X' rendre a ,  ' változói. h = h  ; h(s) = h s ; h(N) = h OP (N); h X : (  X s )  (  X' s' ) s  S s'  S' ha x  X s, s  S, akkor h X (x)  X' h(s) = s'; A h:   ' szignatúra morfizmus kiterjesztése termekre: Legyenek T  (X), T  (X') rendre a ,  ' termeknek halmazai. Minden t  T  (X) -hez tartozó h T (t)  T  '(X') definíciója: (  x  X)(h T (x) = h(x)); (  (N:  s)  OP)(h T (N:  s) = (h(N):  h(s))); (  N: s 1... s n  s)  OP)( h T (N(t 1,...,t n )) = h(N)(h(t 1 ),...,h(t n )));  ';  = (null..., succ..., plusz...);  '= (0..., _ +1...,_+_...;) h(plusz(succ(x),null) = (X+1) + 0

A h:   ' szignatúra morfizmus kiterjesztése egyenletek formájában adott axiómákra. Legyen e = (X,L,R)  E, akkor e helyettesítendő h  (e) = (X , h  (L), h  (R)) egyenlettel  E', ahol  x  X s  S változó helyettesítendő x   X  h(s) = s'  S' változóval, L, és R képzésénél pedig  N: s 1... s n  s  OP, esetén N(t 1,...,t n )  T OP(X), helyettesítendő h(N)(h  (t 1 ),...,h  (t n )) operációval. Specifikáció morfizmus. Adva: SPEC = ( ,OP,E), SPEC' = (  ',OP', E'), h SPEC : SPEC  SPEC'; h SPEC =(h , h E ); h  :  '; h E : E  E'; E' = h E (E) = { h  (e)  (  e = (X,L,R)  E)}.

data = sorts: data end data; nat = data + sorts: nat = data oprs: 0  nat succ: nat  nat add: nat nat  nat eqns : n,m  nat; add(n,m)=add(m,n) add(n,0) = n add(n,succ(m))= succ(add(n,m)) end nat; p data string(data) h = h 1 nat string(nat) p'

Definíció: Adva paraméteres típusspecifikáció: PAR SPEC = (SPEC, SPEC 1 ): ahol SPEC = (S,OP,E),SPEC 1 = SPEC + (S 1,OP 1,E 1 ). Adva továbbá h : SPEC  SPEC' specifikáció morfizmus, ahol SPEC' = (S', OP', E'). Paraméterátadó-morfizmus diagramja: p: tartalmazás SPEC SPEC 1 = SPEC + (S 1,OP 1,E 1 ) h : SPEC  SPEC' h 1 : SPEC 1  SPEC 1 ' SPEC' SPEC 1 ' p': tartalmazás

A paraméterátadás jelentése: Ha p és p' tartalmazás az összes rész-specifikáció esetén: h 1 : (  s  S + S 1 )(h 1 (s) = if s  S 1 then s else h(s) fi); (  (N: s 1... s n )  OP+OP', n  0)(h 1 (N: s 1... s n ) = if (N: s 1... s n )  OP then N: h 1 (s 1 )... h1(s n )  h 1 (s) else h(N): h(s 1 )... h(s n )  h(s) fi; SPEC 1 ' = SPEC' + (S',OP',E 1 '), ahol S 1 ' = S 1, OP 1 '=h 1 (OP 1 ), E 1 ' = h 1  (E 1 ).

Adva h 1 : SPEC A  SPEC B, h 2 : SPEC A  SPEC C, h 3 : SPEC B  SPEC D ; és h 4 : SPEC C  SPEC D morfizmusok. Ha h 3  h 1 = h 2  h 4 ; akkor a morfizmus diagrammot kommutatívnak nevezzük. h 1 SPEC A SPEC B h 2 = h 3 SPEC C SPEC D h 4 = jelentése: h 3  h 1 = h 2  h 4 ;

Adattípus osztály specifikációja: e PAREXP i = eb IMPBOD ib PAR : formális paraméterek specifikációja; EXP = PAR+(S 1,OP 1, E 1 ) : export felület specifikációja; IMP = PAR' + (S 2, OP 2, E 2 ) : import felület specifikációja; BOD = IMP + eb(EXP) : megvalósítás specifikációja; Specifikáció: PAR, IMP; Kitüntetett sortú specifikáció: EXP = ( S EXP,OP EXP,E EXP ); BOD = (S BOD, OP BOD, E BOD ); Tartalmazás: e, ib; Tartalmazás, vagy tartalmazás és átnevezés i; eb: EXP  BOD; kitüntetett sortú morfizmus, reprezentáció;

 osztálynév(  paraméterek ,  korlátozás  )  is a class specification = parameters = sorts: oprs : eqns: exports = classsort: oprs : eqns: imports = sorts: oprs : eqns: body = oprs : rep: pt(  bod )  pt(  exp ); eqns :

A megoldás. set(data, n : nat ) is a class specification = parameters = bool + nat + sorts : data oprs :  :  data = : data data  bool [infix] eqns: a, b, c  data; a = b  b = a a = b  b = c  a = c

exports = class sorts : set oprs : empty :  set insert : set data  set delete : set data  set has : set data  bool size : set  nat eqns : s  set; a, b  data delete(empty, a) = empty has(empty, a) = "false" size(empty) = zerus delete(insert(s, a), b) = if a=b then delete(s, b) else insert(delete (s, b), a) has(insert(s, a), b) = if a=b then "true" else has(s, b) fi size(insert(s, a)) = if has(s, a) then size(s) else succ(size(s )) fi size(insert(s, a))  n  insert(s,a) = "undefined"

imports = sorts : vector oprs : nil :  vector put : vector nat data  vector access : vector nat  data eqns : v  vector, i,j  nat, a  data access(nil, a) =  access(put ( v, i, a), j) = if i=j then a else access(v,j) fi; body = oprs : rep : vector nat  set eqns : v  vector, m  nat, a  data empty = (nil, zerus) insert((v, m), a) = if (  /, 1  /  m)(access(v, /) = a then (v, m) else (put(v, succ(m), a), succ(m)) fi; end set;