Számítási eszközfejlődés XX. század második fele: 1943: Neumann János analóg számítógépe az ENIAC. (Ballisztikus problémák). Manhattan terv. 1950-es, 1960-as,

Slides:



Advertisements
Hasonló előadás
ADATBÁZISOK.
Advertisements

Adatbázis gyakorlat 1. Szerző: Varga Zsuzsanna ELTE-IK (2004) Budapest
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.
© 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.
Hatékonyságvizsgálat, dokumentálás
C++ programozási nyelv Gyakorlat hét
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.
3. A programozás eszközei, programozás-technikai alapismeretek
Programozás alapjai A programozás azt a folyamatot jelenti, melynek során a feladatot a számítógép számára érthető formában írjuk le. C++, Delphi, Java,
1.) A programfejlesztés hagyományos életciklus modellje és adattípus.
Programozás.
Programozási nyelvek.
OBJEKTUMORIENTÁLT PROGRAM
Nagy Gábor MF01-M2.
Bevezetés a Java programozásba
Vizuális modellezés Uml és osztálydiagram UML eszközök
Ez a dokumentum az Európai Unió pénzügyi támogatásával valósult meg. A dokumentum tartalmáért teljes mértékben Szegedi Tudományegyetem vállalja a felelősséget,
Programozáselmélet Logikák és módszerek a programhelyesség bizonyításához.
Programozási alapismeretek Bóta László
Algoritmizálás Göncziné Kapros Katalin humaninformatika.ektf.hu.
SZÁMÍTÓGÉP ARCHITEKTÚRÁK
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.
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.
CISC - RISC processzor jellemzők
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.
Önleíró adatok: XML INFO ÉRA, Békéscsaba
Programozási nyelvek – Programozási paradigmák
ISZAM III.évf. részére Bunkóczi László
Egy egyszerű gép vázlata
Szoftvertechnológia Bevezetés.
Szoftvertechnológia Rendszertervezés.
Objektum Vezérelt Szoftverek Analízise Ferenc Rudolf és Beszédes Árpád Szegedi Tudományegyetem FrontEndART.
ISMERETALAPÚ RENDSZEREK SZAKÉRTŐ RENDSZEREK
A programozás alapjai A számítógép számára a feladat meghatá- rozását programozásnak nevezzük. Ha a processzor utasításait használjuk a feladat meghatározásához,
Anyagadatbank c. tárgy gyakorlat Féléves tematika Adatbázis alapfogalmak, rendszerek Adatmodellek, adatbázis tervezés Adatbázis műveletek.
1Objektumorientált elemzés és tervezés - Alapfogalmak Gyurkó György Objektumorientált elemzés és tervezés Alapfogalmak.
Objektumorientált tervezés és programozás II. 3. előadás
Budapesti Műszaki Főiskola Neumann János Informatikai Főiskolai Kar A Műszaki Tervezés Rendszerei 2000/2001 tanév, I. félév 1. előadás Bevezető a számítógépen.
Neumann János és elvei.
Hernyák Zoltán Programozási Nyelvek II.
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.
A számítógép története
Objektumorientált tervezés Út az objektumig Az objektum fogalma, jellemzői Objektummal kapcsolatos fogalmak Hardverfogalmak A rendszer modell nézetei Objektumorientált.
A Neumann-elvŰ számítógép
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.
Adamkó Attila UML2 Adamkó Attila
1 Objektum orientált programozás Az objektumok és az osztályok – példányosodás Nagy Szilvia.
IT ALAPFOGALMAK HARDVER.
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.
5. előadás Parametrikus polimorfizmus. Generikus programozás. Az Ada sablonok.
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.
Modellek a számítógép megismeréshez Takács Béla
Az informatikus munkája inkább mérnöki munka. Technológia kell. -Módszer. -Szabályok. -Szervezés. Múlt alkalommal: Programfejlesztés = leírások készítése.
1 Informatika - 1. alkalom Jogi informatika - alapok szeptember 10. E1 előadó PPKE JÁK Informatikai Oktatási Csoport.
kialakulása, fejlődése, generációk
A NEUMANN-ELVŰ SZÁMÍTÓGÉP. A számítógép:  Információk tárolására, feldolgozására szolgáló eszköz.
A szoftver mint komplex rendszer: objektumorientált megközelítés.
kialakulása, fejlődése, generációk
Adatstruktúrák Algoritmusok Objektumok
Programozási nyelvek Programozási alapismeretek
Programozási alapok.
Compiler illetve interpreter nyelvek
Hernyák Zoltán Programozási Nyelvek II.
Programozási nyelvek alapfogalmai
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Algoritmus készítés.
Előadás másolata:

Számítási eszközfejlődés XX. század második fele: 1943: Neumann János analóg számítógépe az ENIAC. (Ballisztikus problémák). Manhattan terv es, 1960-as, 1970-es, Műveleti sebesség; Memória kapacitás; Hálózaton keresztüli problémamegoldás; Magas szintű programnyelvek (Algol, Fortran, Cobol) Egyesítés: PL1; Programnyelvek sokasága: SIMULA; CLU; ADA; Prolog; C;... Monitor; Batch operációs rendszer; Operációs rendszerek;

Számítási eszközfejlődés. Hazai viszonyok. 1956: M3-as számítógép MTA, Gépi kód as évek eleje: Ural számítógépek; Gépi kód; 1960-as évek közepe: Gler gép. Monitor; Assembly; Algol; ICT 1905 gép. Monitor; Batch vezérlő; Assembly; Algol, Fortran, Cobol; 1960-as évek vége: Hazai fejlesztések TPA (DEC) gépek; operációs rendszer; 1970-es évek. IBM/360-as gépek; operációs rendszer; PL1; Kisgépek, TPAI; KFKI. (Klacsmányi) VIDEOTON hazai fejlesztések; 1980-as évektől a programnyelvek sokasága: ADA; CLU; Prolog; C;...

Objektumelvű programozás és szoftverfejlesztés. Mérföldkő: Simula 67. Előtte: vezérelv gépi kódú utasítások. programozás kicsiben, szekvencializáció, konkurencia hiánya; Interaktivitás hiánya. Utána: nagyméretű programok kifejlesztése, komplex rendszerek létrehozása, osztott rendszerek, aszinkron interaktivitás. Elmúlt 35 év gyakorlata: Egyetemi projektek: pl. CLU (B. Liskov, MIT). Objektum elvű megközelítés flexibilisebbnek bizonyult a gyorsan változó követelményekhez, mint az imperatív, funkcionális, vagy logikai programozási stílus. (Főleg nagy rendszerek esetén). (Java, C, UML)

Klasszikus értelemben vett objektum elvű programozás. P. Wegner: Objektum elvű programozás = adatabsztrakció + absztrakt adattípus + típusöröklődés. Az objektum elvű programozást támogató programozási nyelv típusrendszere: típus  egyszerű típus | összetett típus; egyszerű típus  integer | real | boolean |...; összetett típus  vector | array | record |... | absztrakt adattípus | öröklődéssel származtatott adattípus;

Objektumelvűség elvei ma. – Osztály (attribútumokkal, metódusokkal) a fő egység a programok struktúráltságának leírása. – Felületekhez való hozzáférés osztály szinten definiált metódusokkal és azok attribútumaival történik. – Objektum létrehozása az osztály példányaként jön létre. – Adatbeburkolás (encapsulation of data); – Adatabsztakció és információ elrejtés; – Objektumok azonosítókkal való megnevezése, elérése; – Öröklődés és polimorfizmus; – (Bizonyos objektum elvű programozási nyelvek mást is támogatnak, pl. portabilitás, code mobilitás internet alkalmazások, stb.).

Modellek és formális eszközök. (2+0). Rendszerleírások aspektusai. Leírások, specifikációk és modellek. Probléma, modell, követelmény, specifikáció, program. Objektumelvű programfejlesztés. Nem determinisztikus szekvenciális program, szintaxisa, szemantikája. Specifikációs módszerek. Konkurencia alapfogalmai. Konkurens programok és rendszerek. Objektum elvű konkurens programok. Konkurens és nem determinisztikus program. Konkurens program szintaxisa, szemantikája. Osztott nem determinisztikus programrendszer. Csatorna és csatornautasítások. Csatornautasítások szintaxisa, szemantikája. Csatornautasítások illesztése. Diszjunkt csatornák összekötése. Ágensrendszerek.

Típusmodellek. (2+0). Objektumelvű programozás és programfejlesztés. Absztrakt adattípus. Absztrakt adattípus algebrai elmélete. Típusspecifikációs módszerek. Típusspecifikációk elemzése. Adattípus adekvátsága. Konkrét adattípus. Adattípus kettős specifikációja, adattípus osztály. Adattípus osztály morfizmus diagramja. Információ elrejtés. Újrafelhasználás, öröklődés és aggregáció. Adattípusok szinkronizációs felülete. Szinkronizációs felületek specifikációs módszerei.

Könyvek: [KOZ03] Kozma László, Varga László: Szoftvertechnológia elméleti problémái. Pázmány Eötvös Kiadó, 2007, ISBN [EHR90] Ehring H., Mahl B.: Fundamentals of Algebraic Specification 1, 2. Module specifications and constraints. Springer-Verlag, 1990, ISBN [JAC96] Jacques Loeckx, Hans-Dieter Ehrich, Markus Wolf: Specification of Abstract Data Types. John Wiley and Sons, 1996, ISBN

[KRZ97] Krzysztof R. Apt, Ernst-Rüdiger Olderog: Verification of Sequential and Concurrent Program, Springer-Verlag, 1997, ISBN [WIL01] Willem-Paul de Roever et al.: Concurrency Verification; Introduction to Compositional and Noncompositional methods; Cambridge University Press, 2001, ISBN [MCL03] Mclver A., Morgan C. Programming Methodology, Springer-Verlag, 2003, ISBN

Programfejlesztés - matematika. A programfejlesztés a matematika része? (A gyakorlatban felmerülő problémák számítógéppel történő megoldására készülőnek sok matematikát kell tanulnia?) Megalapozott ez az állítás? 1. A számítógép a megoldás során szimbólum-manipulációt végez. 2. A számítógéppel megoldandó problémák jelentős része matematikai tartományokban formálisan megfogalmazhatók. 3. A programfejlesztési módszerek rendszerint formálisak. 4. Alkalmazásukban intuitivitásra van szükség. 5. A probléma pontos leírásának szükségessége. 6. A megoldásnak a leírás szerinti helyessége. (Formális eszközök). 7. Számos probléma számítógéppel történő helyes megoldása a szimbólum manipulációt erősíti. (Pl. adatok rendezése, adatok keresése, gráf bejárások, programszövegek fordítása stb.)

Ezeknek a problémáknak közös jellemzője: a jól megfogalmazható algoritmikusság; tárgyuk absztrakt; Tehát matematika. Hermann Weyl (1940). "Amikor a matematikus eljut az absztrakcióhoz, elfelejti azt, hogy a szimbólumai miket is helyettesítenek. Rendelkezésére áll egy sor operáció, amelyeket a szimbólumokkal elvégezhet, függetlenül attól, hogy ezek mit helyettesítenek". "Az informatikusnak ez kevés, mivel ő a valóságos problémát akarja megoldani. Neki azt a valóságos objektumot is figyelembe kell venni, amit a szimbólum reprezentál".

Mérnöki munka jellemzői: Technológia kell: módszerek + szabványok + eszközök + szervezés; Módszer: elvek halmaza, amelyek alapján kiválasztjuk, alkalmazzuk a technikát és eszközöket. (Pl. elv. struktúrált programozás; absztarkció + modularizáció; szintekre bontás: absztraktkonkrét) Módszertan: a módszerrel kapcsolatos vizsgálatok és ismeretek. Programfejlesztés: leírások készítése.

Leírások: 1. Domain (problémakör) leírása. Annak leírása, amelyre a követelmények vonatkozni fognak. 2. Követelmények; Annak a leírása, amit a felhasználó elvár a program által nyújtott szolgáltatásoktól. 3. Specifikáció; A szolgáltatások input-output (bemeneti és kimeneti) kapcsolatának a leírása. (Kívülről megfigyelhető viselkedés) 4. Modell, rendszerterv; Annak a leírása, hogy milyen egységek együttműködésén keresztül valósulnak meg a szolgáltatások. 5. Program. A szolgáltatások végrehajtásának, a szolgáltatásokat eredményező kiszámítások leírása.

1.) Specifikációs interfész. számítógép felhasználó specint specifikációs interface (kiszámítás input-output relációja: keyboard, screen) A programnak szüksége van bizonyos bemenetre. A program eredménye a külvilágnak szól. Követelmény: interfész. Ez közös része a gépnek és a felhasználónak ebben a rendszerben. A keyboard olyan közös rész, amelyet a felhasználó vezérel és a gép érzékel, felhasznál. Az ernyő olyan közös rész, amelyet a gép vezérel és a felhasználó érzékel, felhasznál.

Az interfész egy specifikációs tűzfal: Hard: formális rész (fejlesztő) Soft: informális rész (elemző) A tűzfal elválasztja egymástól - a rendszer-analistát, aki a számítógépen kívüli világ informális problémáival foglalkozik, - a szoftver fejlesztőtől, aki a számítógépes megoldással foglalkozik. Dijkstra: A funkcionális specifikáció megválasztása, annak jelölésrendszere, amellyel azt leírjuk, nem feltétlen kell, hogy világos legyen. De a szerepe világos: egy tűzfal létesítése két különböző dolog között. 1.) A annak kérdése, hogy az a gép, amely megkapja a specifikációt, az a gép-e, amelyet mi elképzelünk. 2.) A helyesség kérdése, azaz hogyan tervezzünk egy gépet, amely a specifikációt fogadja.

Példa. Az ügyfél igénye: a gyakorlatban felmerülő problémáját oldják meg neki. (user, customer). 2.) A számítógép, a külvilág és az ügyfél: számítógépforgalmi lámpa Specifikációs interface {pjel, zjel} követelmények interface {stop, go} Probléma: a lámpa 45 sec-ig tilost, majd 15 sec-ig szabad.

2.) A számítógép, a külvilág és az ügyfél: számítógépforgalmi lámpa Specifikációs interface {pjel, zjel} követelmények interface {stop, go} Az ügyfelet inkább a követelmény interfész, inkább a szimbólum- manipulációs probléma érdekli: 1. Milyen feltételek mellett garantálja a program, a rendszer a szolgáltatás nyújtását. 2. Milyen külső, megfigyelhető hatásai legyenek a rendszer szolgáltatásainak. (user-customer kérdése).

A mi esetünkben a követelmény a következő: forever { show only stop for 45 seconds; show only go for 15 seconds; } Követelmény interfész: A követelmény interfész egy külvilág felé nyitott kapu, amit az ügyfél a gépen kívüli világban érzékelhet. Az ügyfél (customer) távol áll a szimbólum manipulációs kérdésektől. Őt nem az elektromos jelek érdeklik. Őt ez még annyira sem érdekli, mint a felhasználót hanem - mint a mi példánkban - a lámpa zöld vagy piros.

2.) A számítógép, a külvilág és a felhasználó: számítógépforgalmi lámpa Specifikációs interface {pjel, zjel} követelmények interface {stop, go} A specifikáció-interfész a gépi tér és a problématér közös része. Problématér: a lámpa egység. A közösen használt fenomén: {pjel, zjel}. A gépi rész specifikációja: {Pjel; forever { wait 45 seconds; Pjel; Zjel; wait 15 seconds; Zjel; Pjel; }