Algebrai specifikációk

Slides:



Advertisements
Hasonló előadás
Számvitel S ZÁMVITEL. Számvitel Ormos Mihály, Budapesti Műszaki és Gazdaságtudományi Egyetem, Hol tartunk... Hiányzik egy jól strukturált rendszer.
Advertisements

ADATSZERZÉS, INFORMÁCIÓ HASZNOSULÁS Biztonságtudatos vállalati kultúra Készítette: Jasenszky Nándor egyetemi szakoktató NKE NBI TEH tanszék.
Különadók 2011, Ágazati különadók 2010.december 4-től hatályos 2010.december 4-től hatályos Adókötelezettséggel érintett tevékenység kör: Adókötelezettséggel.
A villamosenergia–ipari sportmozgalom eredményei és aktuális kérdései - A szociális partnerek együttműködése az iparági sportmozgalomban EVDSZ II. Taggyűlés.
Gazdasági jog IV. Előadás Egyes társasági formák Közkeresleti társaság, betéti társaság.
Kockázat és megbízhatóság
Palotás József elnök Felnőttképzési Szakértők Országos Egyesülete
Dobrik-Lupták Sára szeptember 19.
Számítógépes szimuláció
TÁJÉKOZTATÓ BÁCS-KISKUN MEGYEI CIGÁNYSÁGRÓL
Az „első lépés” TÁMOP
Megjegyzések Dinya László vitaindító tanulmányához
SmartCard protokoll formális verifikációja
Adatbázis normalizálás
WE PROVIDE SOLUTIONS.
Becslés gyakorlat november 3.
6. rész: Otthoni vérnyomásmérés
Mezőgazdasági kisüzemek fejlesztése
TESZTSOR.HU REGISZTRÁCIÓ, VÁSÁRLÁS ÉS TESZTKITÖLTÉS ELKEZDÉSE
AWK ismétlés AWK: adatvezérelt nyelv:
Scilab programozás alapjai
A magyar társadalom a népszámlálás tükrében
SZÁMVITEL.
Caracalla udvarában Kalandjáték 1.
Kockázat és megbízhatóság
RÁDIÓRENDSZEREK Képi jelek Győr.
Downstream Power Back Off (DPBO)
SZÁMVITEL.
CSOPORT - A minőségellenőrök egy megfelelő csoportja
Struktúra predikció ápr. 6.
Konszolidáció Guzmics Zsuzsanna
Az Országos Egészségfejlesztési Intézet fejlesztési projektjei az iskolai egészségfejlesztés területén DR. TÖRÖK KRISZTINA.
A mozgási elektromágneses indukció
VEREM.
Portia ládikái (ld. A velencei kalmár)
A Nemzeti Szakképzési és Felnőttképzési Intézet Konferenciája
NE LÁZADJ, MOST AZ A COOL PRESENTATION TITLE 2012.
INFOÉRA 2006 Véletlenszámok
A PDCA elv alkalmazása az információvédelmi irányítási rendszerekben 1
2. Bevezetés A programozásba
VB ADATTÍPUSOK.
Downstream Power Back Off (DPBO)
Business Mathematics
középfokú felvételi eljárás
A évi pályázati felhívás legfontosabb szabályai
Számítógépes Hálózatok
A Dunához kapcsolódó lehetőségek Budapest közlekedésfejlesztésében
AVL fák.
Aritmetikai kifejezések lengyelformára hozása
iOT eszközök által rögzített adatok feldolgozása, megjelenítése
Kifejezések kiértékelése * Lengyel-forma
A villamos installáció problémái a tűzvédelem szempontjából
Új pályainformációs eszközök - filmek
TÁRGYI ESZKÖZÖK ELSZÁMOLÁSA
Ez az előadás alcíme vagy a tárgy neve vagy a konferencia neve
Járműtelepi rendszermodell 2.
A szállítási probléma.
I. HELYZETFELMÉRÉSI SZINT FOLYAMATA 3. FEJLESZTÉSI FÁZIS 10. előadás
Foglalkoztatási és Szociális Hivatal
Binomiális fák elmélete
Matematika II. 5. előadás Geodézia szakmérnöki szak 2015/2016. tanév
Műveletek, függvények és tulajdonságaik Mátrix struktúrák:
Mintaillesztés Knuth-Morris-Pratt (KMP) algoritmus
Dél-dunántúli Regionális Munkaügyi Központ
Tájékoztató az EPER pályázati folyamatáról
LIA Alapítványi Ált. Isk. és Szki. Piliscsabai Tagintézménye
Algoritmusok.
A T-spline felületreprezentáció
Név: Pókó Róbert Neptun: OYJPVP
Stratégiai gondolkodás
Előadás másolata:

Algebrai specifikációk 99.03.04. Algebrai specifikációk Szlávi Péter ELTE IK Média- és Oktatásinformatikai Tanszék szlavip@elte.hu http://people.inf.elte.hu/szlavi Copyright, 1999 © Szlávi Péter

Programozásmódszertan 99.03.04. Tartalomjegyzék 1 A lista algebrai specifikációja 1.1 Lista-műveletek 1.2 Lista-axiómák 2 A verem algebrai specifikációja 2.1 Verem-műveletek 2.2 Verem-axiómák 3 A sor algebrai specifikációja 3.1 Sor-műveletek 3.2 Sor-axiómák 4 A prioritási sor algebrai specifikációja 4.1 Prioritási sor-műveletek 4.2 Prioritási sor-axiómák Programozásmódszertan 2018.09.11.

1 A lista algebrai specifikációja 1.1 Lista-műveletek 99.03.04. 1 A lista algebrai specifikációja 1.1 Lista-műveletek Típus Lista(Elem): Asszociált műveletek: Üres: Lista Üres?(Lista): Logikai Tele?(Lista): Logikai ElemÉrték(Lista): Elem  {NemDef} ElemMódosít(Lista,Elem): Lista  {NemDef} Elsőre(Lista): Lista  {NemDef} Következőre(Lista): Lista  {NemDef} BeszúrMögé(Lista,Elem): Lista  {NemDef} BeszúrElejére(Lista,Elem): Lista  {NemDef} A Tele? függvény erősen reprezentáció-függő (platform-függő). Programozásmódszertan 2018.09.11.

1.1 Lista-műveletek (folytatás) 99.03.04. 1.1 Lista-műveletek (folytatás) Kihagy(Lista): Lista  {NemDef} Utolsó?(Lista): Logikai  {NemDef} Kiegészítő műveletek: BeszúrElé(Lista,Elem): Lista  {NemDef} ElemSzám(Lista): Egész A kétirányú lista további műveletei: Utolsóra(Lista): Lista  {NemDef} Előzőre(Lista): Lista  {NemDef} Első?(Lista): Logikai  {NemDef} Programozásmódszertan 2018.09.11.

1.1 Lista-műveletek (folytatás) 99.03.04. 1.1 Lista-műveletek (folytatás) A ciklikus lista: olyan egy- vagy kétirányú lista, amelynek az utolsó elemét az első követi, az elsőt pe-dig az utolsó előzi meg. Így kevesebb mű-veletre van szükség a megvalósításához. A gyűrű: olyan ciklikus lista, amelynek nincs kitünte-tett első, ill. utolsó eleme. Programozásmódszertan 2018.09.11.

1.1 Lista-műveletek (folytatás) 99.03.04. 1.1 Lista-műveletek (folytatás) További lehetséges műveletek: Első(Lista): (Lista  Elem)  {NemDef} Következő(Lista): (Lista  Elem)  {NemDef} Utolsó(Lista): (Lista  Elem)  {NemDef} Előző(Lista): (Lista  Elem)  {NemDef} Egymásután(Lista,Lista): Lista Axiómák: l,l’,l”:Lista(Elem) e,f:Elem h,h’:Egész Programozásmódszertan 2018.09.11.

Programozásmódszertan 99.03.04. 1.2 Lista-axiómák Üres-axiómák 1o Az Üres lista üres. l=Üres  Üres?(l) 2o Üres listának nincs eleme. Üres?(l)  ElemSzám(l)=0 3o Az üres listának nincs aktuális, első, ... utolsó eleme. ElemÉrték(Üres)=NemDef  Első?(Üres)=NemDef  Első(Üres)=NemDef  Következő(Üres)=NemDef  Előző(Üres)=NemDef  Utolsó(Üres)=NemDef  Utolsó?(Üres)=NemDef Programozásmódszertan 2018.09.11.

1.2 Lista-axiómák (folytatás) 99.03.04. 1.2 Lista-axiómák (folytatás) Mozgás+érték hiba-axiómák 4ao Nincs elsőt megelőző és nincs utolsót követő eleme a listának. Előző(Elsőre(l))=NemDef  Következő(Utolsóra(l))=NemDef 4bo A ciklikus listában az elsőt megelőző az utolsó, az utolsót követő pedig az első. Előző(Elsőre(l))=Utolsó(l)  Következő(Utolsóra(l))=Első(l) Programozásmódszertan 8/24 2018.09.11. 8

1.2 Lista-axiómák (folytatás) 99.03.04. 1.2 Lista-axiómák (folytatás) Végek+értékek axióma 5o A lista Utolsóra művelettel kiválasztott eleme az ElemSzám-adik, az 1. elemét az Elsőre művelet választja ki. Utolsó?(Utolsóra(l))  Első?(Elsőre(l))  h=ElemSzám(l)-1  Következőreh(Elsőre(l))=Utolsóra(l)  0h<ElemSzám(l)-1   Utolsó?(Következőreh(Elsőre(l)))  0<hElemSzám(l)-1   Első?(Következőreh(Elsőre(l))) Programozásmódszertan 2018.09.11.

1.2 Lista-axiómák (folytatás) 99.03.04. 1.2 Lista-axiómák (folytatás) Bővítés axiómája 6o A BeszúrMögé művelet bővíti a listát az adott elemmel. Az új elem az ‘aktuális’ mögé kerül. Üres listába elsőként kerül be az új elem. Az új válik aktuálissá. Ha nincs ‘aktuális’ elem vagy nincs több szabad hely, akkor a művelet eredménye nem definiált. f=ElemÉrték(l)   Tele?(l)  l'=BeszúrMögé(l,e): ElemSzám(l')=ElemSzám(l)+1  ElemÉrték(l')=e  ElemÉrték(Előzőre(l'))=f  Üres?(l)   Tele?(l)  ElemSzám(BeszúrMögé(l,e))=1  ElemÉrték(BeszúrMögé(l,e))=e  Üres?(l)  ElemÉrték(l)=NemDef  Tele?(l)  BeszúrMögé(l,e)=NemDef A BeszúrElé művelet ennek analógiájára fogalmazható meg. Az axiómák egyikében-másikában előbukkanó „  Tele?(l)  …” implikáció feltétel része utal arra az elméletileg előforduló jelenségre, hogy az axióma lényegi (következmény) részében a sor egy elemmel bővül. Programozásmódszertan 2018.09.11.

1.2 Lista-axiómák (folytatás) 99.03.04. 1.2 Lista-axiómák (folytatás) Kihagyás axiómája 7o Kihagyni az ‘aktuális’ elemet lehet, az ‘aktuális’ a következő lesz (ha van ilyen). Ha nincs ‘aktuális’ elem, akkor nem lehet kihagyni sem. ElemÉrték(l)  l'=Kihagy(l): ElemSzám(l')=ElemSzám(l)-1  (Üres?(l')  ElemÉrték(l')=ElemÉrték(Következőre(l))) ElemÉrték(l)=NemDef  Kihagy(l)=NemDef Állítás: ha az utolsó az ‘aktuális’, akkor a kihagyás után nem definiált lesz az ‘aktuális’. Utolsó?(l)  ElemÉrték(Kihagy(l))=NemDef Biz.: Utolsó?(l)  ElemÉrték(l) 7o  l'=Kihagy(l):(Üres?(l')  ElemÉrték(l')=ElemÉrték(Következőre(l))) (1) Üres?(l')  3o  ElemÉrték(l')=NemDef (2) ElemÉrték(l')=ElemÉrték(Következőre(l))  9o  4ao  ElemÉrték(l')=NemDef Programozásmódszertan 2018.09.11.

1.2 Lista-axiómák (folytatás) 99.03.04. 1.2 Lista-axiómák (folytatás) Illesztés-axióma 8o Két egymásután illesztett lista listát alkot. Elemei az eredeti kettő elemei lesznek, az eredeti sorrendben. h=ElemSzám(l)  h'=ElemSzám(l')  l"=Egymásután(l,l')  k[0,h): ElemÉrték(Következőrek(Elsőre(l")))= =ElemÉrték(Következőrek(Elsőre(l)))  k[0,h'): ElemÉrték(Következőrek+h(Elsőre(l")))= =ElemÉrték(Következőrek(Elsőre(l'))) Programozásmódszertan 2018.09.11.

1.2 Lista-axiómák (folytatás) 99.03.04. 1.2 Lista-axiómák (folytatás) Pozícionálás+érték axióma 9o A következő elem az, amelyet a következőre lépés után aktuá-lisként érzékelünk, az előző az, amelyet az előzőre lépés után aktuálisként érzékelünk, ... ElemÉrték(l)NemDef  Következő(l).Elem=ElemÉrték(Következőre(l))  Előző(l).Elem=ElemÉrték(Előzőre(l))  Első(l).Elem=ElemÉrték(Elsőre(l))  Utolsó(l).Elem=ElemÉrték(Utolsóra(l)) Programozásmódszertan 2018.09.11.

2 A verem algebrai specifikációja 2.1 Verem-műveletek 99.03.04. 2 A verem algebrai specifikációja 2.1 Verem-műveletek Típus Verem(Elem): Asszociált műveletek: Üres: Verem Üres?(Verem): Logikai Tele?(Verem): Logikai Tető(Verem): Elem  {NemDef} Verembe(Verem,Elem): Verem  {NemDef} Veremből(Verem): (Verem  Elem)  {NemDef} VeremMélység(Verem): Egész A Tele? függvény erősen reprezentáció-függő (platform-függő). Programozásmódszertan 14/24 2018.09.11. Verem típuskonstrukció

Programozásmódszertan 99.03.04. 2.2 Verem-axiómák Axiómák: 1o Az Üres verem üres. v=Üres  Üres?(v)  VeremMélység(v)=0 2o Az a verem, amelyben legalább egy elem van, az nem üres; a verembe tétel során a veremmélysége eggyel nő.  Tele?(v)   Üres?(Verembe(v,e))  VeremMélység(Verembe(v,e))=VeremMélység(v)+1 3ao Az üres veremnek nincs legfelső eleme. Tető(Üres)=NemDef 3bo Az Üres veremből nem lehet kivenni elemet. Veremből(Üres)=NemDef 3co A tele verembe nem lehet további elemet betenni. Tele?(v)  Verembe(v,e)=NemDef Az axiómák egyikében-másikában előbukkanó „  Tele?(s)  …” implikáció feltétel része utal arra az elméletileg előforduló jelenségre, hogy az axióma lényegi (következmény) részében a verem egy elemmel bővül. Programozásmódszertan 15/24 2018.09.11. Verem típuskonstrukció

2.2 Verem-axiómák (folytatás) 99.03.04. 2.2 Verem-axiómák (folytatás) 4o A verem legfelső eleme az utoljára betett elem.  Tele?(v)  Tető(Verembe(v,e))=e 5o A veremből a legfelső elemet lehet kivenni (a többi nem változik).  Tele?(v)  Veremből(Verembe(v,e))=(v,e) Állítás: a Veremből művelet eggyel csökkenti a verem mélységét.  Tele?(v)  VeremMélység(Veremből(v).Verem))= VeremMélység(v)-1 Biz.: 2o & 5o-ből következik. Programozásmódszertan 16/24 2018.09.11. Verem típuskonstrukció

3 A sor algebrai specifikációja 3.1 Sor-műveletek 99.03.04. 3 A sor algebrai specifikációja 3.1 Sor-műveletek Típus Sor(Elem): Asszociált műveletek: Üres: Sor Üres?(Sor): Logikai Tele?(Sor): Logikai Első(Sor): Elem  {NemDef} Sorba(Sor,Elem): Sor  {NemDef} Sorból(Sor): (Sor  Elem)  {NemDef} SorHossz(Sor): Egész A Tele? függvény erősen reprezentáció-függő (platform-függő). Programozásmódszertan 17/24 2018.09.11. Sor típuskonstrukció

Programozásmódszertan 99.03.04. 3.2 Sor-axiómák Axiómák: 1o Az Üres sor üres. s=Üres  Üres?(s)  SorHossz(s)=0 2o Az a sor, amelyben legalább egy elem van, az nem üres; a sorba tétel során a sor hossza eggyel nő.  Tele?(s)   Üres?(Sorba(s,e))  SorHossz(Sorba(s,e))=SorHossz(s)+1 3ao Az üres sornak nincs első eleme. Első(Üres)=NemDef 3bo Az Üres sorból nem lehet kivenni elemet. Sorból(Üres)=NemDef 3co A tele sorba nem lehet további elemet betenni. Tele?(s)  Sorba(s,e)=NemDef Az axiómák egyikében-másikában előbukkanó „  Tele?(s)  …” implikáció feltétel része utal arra az elméletileg előforduló jelenségre, hogy az axióma lényegi (következmény) részében a sor egy elemmel bővül. Programozásmódszertan 18/24 2018.09.11. Sor típuskonstrukció

3.2 Sor-axiómák (folytatás) 99.03.04. 3.2 Sor-axiómák (folytatás) 4o A sor első eleme a legrégebben betett elem. Üres?(s)   Tele?(s)  Első(Sorba(s,e))=e  Üres?(s)   Tele?(s)  Első(Sorba(s,e))=Első(s) 5o A sorból az első elemet lehet kivenni (a többi nem változik). Üres?(s)   Tele?(s)  Sorból(Sorba(s,e))=(s,e)   Üres?(s)   Tele?(s)  Sorból(s)=(s',e)  e=Első(s)  Sorba(s',e')=Sorból(Sorba(s,e')).Sor Állítás: a Sorból művelet után eggyel csökken a sor hossza.  Üres?(s)  SorHossz(Sorból(s).Sor)=SorHossz(s)-1 Biz.: 1o & 2o & 5o –ből következik. Programozásmódszertan 19/24 2018.09.11. Sor típuskonstrukció

Programozásmódszertan 4 A prioritási sor algebrai specifiká-ciója 4.1 Prioritási sor-műveletek Típus PrSor(Elem,Prioritás): Asszociált műveletek: Üres: PrSor Üres?(PrSor): Logikai Tele?(PrSor): Logikai Első(PrSor): (Elem  Prioritás)  {NemDef} Sorba(PrSor,Elem,Prioritás): PrSor  {NemDef} Sorból(PrSor): (PrSor  Elem  Prioritás)  {NemDef} SorHossz(PrSor): Egész Programozásmódszertan 20/24 2018.09.11.

4.2 Prioritási sor-axiómák 1o Az Üres prioritási sor üres. s=Üres  Üres?(s)  SorHossz(s)=0 2o Az a prioritási sor, amelyben legalább egy elem van, az nem üres; a sorba tétel során a sor hossza eggyel nő.  Tele?(s)   Üres?(Sorba(s,e,p))  SorHossz(Sorba(s,e,p))=SorHossz(s)+1 3ao Az üres prioritási sornak nincs első eleme. Első?(Üres)=NemDef 3bo Az Üres prioritási sorból nem lehet kivenni elemet. Sorból(Üres)=NemDef 3co A tele prioritási sorba nem lehet további elemet betenni. Tele?(s)  Sorba(s,e,p)=NemDef Programozásmódszertan 21/24 2018.09.11.

4.2 Prioritási sor-axiómák (folytatás) 4o A prioritási sor első eleme a legnagyobb prioritásúak közül a legrégebben betett elem. Üres?(s)   Tele?(s)  Első(Sorba(s,e,p))=(e,p)  Üres?(s)   Tele?(s)  s’=Sorba(s,e,p)  ( Első(s).Prp  Első(s’)=Első(s) )  ( Első(s).Pr<p  Első(Sorba(s,e,p))=(e,p) )  SorHossz(s’)=SorHossz(s)+1 Programozásmódszertan 22/24 2018.09.11.

4.2 Prioritási sor-axiómák (folytatás) 5o A prioritási sorból az első elemet lehet kivenni (a többi nem változik). Üres?(s)   Tele?(s)  Sorból(Sorba(s,e,p))=(s,e,p)  Üres?(s)   Tele?(s)  Sorból(s)=(s’,e’,p’)  (e’,p’)=Első(s)  ( Első(s).Pr<p  s=Sorból(Sorba(s,e,p)).Sor )  ( Első(s).Pr p  Sorba(s’,e,p)=Sorból(Sorba(s,e,p)).Sor ) Állítás: a Sorból művelet után eggyel csökkent a prioritási sor hossza.  Üres?(s)  SorHossz(Sorból(s).Sor)=SorHossz(s)-1 Biz.: 2o & 5o –ből következik. Programozásmódszertan 23/24 2018.09.11.