Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Új szoftverparadigmák nyelvi támogatása: a jelen oktatása – a holnap technológiája Porkoláb Zoltán, Kozsik Tamás, Zsók.

Hasonló előadás


Az előadások a következő témára: "Új szoftverparadigmák nyelvi támogatása: a jelen oktatása – a holnap technológiája Porkoláb Zoltán, Kozsik Tamás, Zsók."— Előadás másolata:

1 Új szoftverparadigmák nyelvi támogatása: a jelen oktatása – a holnap technológiája Porkoláb Zoltán, gsd@inf.elte.hu Kozsik Tamás, kto@inf.elte.hu Zsók Viktória, zsv@inf.elte.hu Eötvös Loránd Tudományegyetem, Informatikai Kar Programozási Nyelvek és Fordítóprogramok Tanszék

2 Informatika a felsőoktatásban 20052 A paradigma Az absztrakció fogalma Az absztrakció fogalma + általános + általános - specifikus - specifikus A paradigma A paradigma útmutató az absztrakciók létrehozására útmutató az absztrakciók létrehozására szabályok és konvenciók halmaza szabályok és konvenciók halmaza eszközöket biztosít a fejlesztés támogatására eszközöket biztosít a fejlesztés támogatására evolúció evolúció

3 Informatika a felsőoktatásban 20053 Strukturált programozás Szekvenciából, elágazásból és ciklusból felépülő (goto mentes) eljárások Szekvenciából, elágazásból és ciklusból felépülő (goto mentes) eljárások Eljárások paraméterátadással és globális változókkal kommunikáltak Eljárások paraméterátadással és globális változókkal kommunikáltak Adekvát algoritmusok meghatározása Adekvát algoritmusok meghatározása Magasszintű függvénykönyvtárak Magasszintű függvénykönyvtárak Gyengének bizonyultak az adatstruktúrák kompozíciójában Gyengének bizonyultak az adatstruktúrák kompozíciójában

4 Informatika a felsőoktatásban 20054 Az objektumelvű paradigma Adekvát adatstruktúrák és a rajtuk végzett műveletek, Adekvát adatstruktúrák és a rajtuk végzett műveletek, Enkapszuláció Enkapszuláció Osztályok: az azonos adatstruktúrával és műveletekkel rendelkező objektumok programnyelvi leírása Osztályok: az azonos adatstruktúrával és műveletekkel rendelkező objektumok programnyelvi leírása Öröklődés, osztályok hierarchiája Öröklődés, osztályok hierarchiája

5 Informatika a felsőoktatásban 20055 Az objektumelvű paradigma Generalizáció, specializáció Generalizáció, specializáció Erősen típusos programozási nyelvek támogatják Erősen típusos programozási nyelvek támogatják Dinamikus kötés - futási idejű polimorfizmus Dinamikus kötés - futási idejű polimorfizmus Elterjedt az iparban és oktatásban Elterjedt az iparban és oktatásban C++, Java C++, Java Az első oktatott nyelv – Az első oktatott nyelv – procedurális vs. objektumelvű procedurális vs. objektumelvű

6 Informatika a felsőoktatásban 20056 Objektumelvű paradigma - kritika Pozitív és negatív változások Pozitív és negatív változások Dinamikus kötés és a fordítási idejű típusellenőrzés egyidejű megvalósítása Dinamikus kötés és a fordítási idejű típusellenőrzés egyidejű megvalósítása kovariáns visszatérő érték, kontravariáns paraméter kovariáns visszatérő érték, kontravariáns paraméter A kifejezés-probléma A kifejezés-probléma Hatékonysági problémák Hatékonysági problémák

7 Informatika a felsőoktatásban 20057 Új paradigmák Aspektusorientált programozás Aspektusorientált programozás Generikus programozás Generikus programozás Magasabbrendű funkcionális programozás Magasabbrendű funkcionális programozás Az új paradigmák beépítik a korábbi paradigmák tapasztalatait Az új paradigmák beépítik a korábbi paradigmák tapasztalatait Multiparadigma elvű rendszerek Multiparadigma elvű rendszerek

8 Informatika a felsőoktatásban 20058 Aspektus-orientált programozás Motiváció: Rossz modularitás OOP-ban Motiváció: Rossz modularitás OOP-ban Szétszórt kódrészletek Szétszórt kódrészletek Kód utólagos módosítása Kód utólagos módosítása Aspektusok – csatolási pontok - szövőgép Aspektusok – csatolási pontok - szövőgép Példa: AspectJ + Java Példa: AspectJ + Java

9 Informatika a felsőoktatásban 20059 Generatív programozás Adatszerkezetek – általános algoritmusok Adatszerkezetek – általános algoritmusok Fordítási idejű típusellenőrzés Fordítási idejű típusellenőrzés Parametrikus polimorfizmus Parametrikus polimorfizmus Algoritmusok - osztályok - funktorok Algoritmusok - osztályok - funktorok Példa: C++ Standard Template Library Példa: C++ Standard Template Library

10 Informatika a felsőoktatásban 200510 Funkcionális programozás Függvények kiértékelése, magasabbrendű függvények Függvények kiértékelése, magasabbrendű függvények Kompozicionalitás elve, kiértékelési stratégiák Kompozicionalitás elve, kiértékelési stratégiák Lambda kalkulus, gráfátíró rendszerek Lambda kalkulus, gráfátíró rendszerek Magasabb rendű típusok, típusosztályok, egzisztenciálisan kvantált típusok, unique típusok, monádok Magasabb rendű típusok, típusosztályok, egzisztenciálisan kvantált típusok, unique típusok, monádok

11 Informatika a felsőoktatásban 200511 OO-AOP együttélés Alapstruktúra – OOP Alapstruktúra – OOP Csökkenti a kódismétlést az osztályokban Csökkenti a kódismétlést az osztályokban Javítja a modularitást Javítja a modularitást Segíti a pozitív és negatív változások követését Segíti a pozitív és negatív változások követését + after/before + after/before – around – around

12 Informatika a felsőoktatásban 200512 OO-GP együttélés Absztrakt adatszerkezetek – osztályok Absztrakt adatszerkezetek – osztályok Funktor-ok Funktor-ok Algoritmusok ábrázolása osztályként Algoritmusok ábrázolása osztályként Mixin-ek: Mixin-ek: Az öröklési hierarchia megfordítása Az öröklési hierarchia megfordítása Csökkenti az osztályok számát és interfészét Csökkenti az osztályok számát és interfészét Segíti a negatív változások követését Segíti a negatív változások követését

13 Informatika a felsőoktatásban 200513 OO-FP együttélés Absztrakt adatszerkezetek – osztályok Absztrakt adatszerkezetek – osztályok Enkapszuláció Enkapszuláció Altípusosság: Altípusosság: Nominális Nominális Strukturális Strukturális

14 Informatika a felsőoktatásban 200514 GP-FP együttélés Standard Template Library Standard Template Library Funkcionális programozás Funkcionális programozás Template metaprogramozás Template metaprogramozás Funkcionális programozás Funkcionális programozás Funkcionális programok Funkcionális programok Generikus adatszerkezetek és függvények Generikus adatszerkezetek és függvények Parametrikus polimorfizmus Parametrikus polimorfizmus

15 Informatika a felsőoktatásban 200515 Összefoglalás Paradigmák evolúciója Paradigmák evolúciója Akadémiai kutatások Akadémiai kutatások Ipari követelmények Ipari követelmények „gyakorlatias” versus „akadémikus” tárgyak „gyakorlatias” versus „akadémikus” tárgyak Új paradigmák megértésére, befogadása Új paradigmák megértésére, befogadása Felkészítés a jelen és a jövő technológiáira Felkészítés a jelen és a jövő technológiáira

16 Informatika a felsőoktatásban 200516 Hivatkozások James O. Coplien: Multiparadigm Design for C++, Addison-Wesley, 1998 James O. Coplien: Multiparadigm Design for C++, Addison-Wesley, 1998 David Musser, Atul Saini: STL Tutorial and Reference Guide, Addison-Wesley, 1996 David Musser, Atul Saini: STL Tutorial and Reference Guide, Addison-Wesley, 1996 Bjarne Stroustrup: The C++ Language, Addison-Wesley, 2000 Bjarne Stroustrup: The C++ Language, Addison-Wesley, 2000 Czarnetzki, Eisenecker: Generative Programming, Addison-Wesley, 2000 Czarnetzki, Eisenecker: Generative Programming, Addison-Wesley, 2000


Letölteni ppt "Új szoftverparadigmák nyelvi támogatása: a jelen oktatása – a holnap technológiája Porkoláb Zoltán, Kozsik Tamás, Zsók."

Hasonló előadás


Google Hirdetések