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, Kozsik Tamás, Zsók Viktória, Eötvös Loránd Tudományegyetem, Informatikai Kar Programozási Nyelvek és Fordítóprogramok Tanszék

2 Informatika a felsőoktatásban 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 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 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 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 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 Ú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 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 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 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 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 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 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 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 Ö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 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