1 / 16

Új szoftverparadigmák nyelvi támogatása: a jelen oktatása – a holnap technológiája

Ú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. A paradigma.

elvina
Download Presentation

Új szoftverparadigmák nyelvi támogatása: a jelen oktatása – a holnap technológiája

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 KarProgramozási Nyelvek és Fordítóprogramok Tanszék

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

  3. Strukturált programozás • 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 • Adekvát algoritmusok meghatározása • Magasszintű függvénykönyvtárak • Gyengének bizonyultak az adatstruktúrák kompozíciójában

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

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

  6. Objektumelvű paradigma - kritika • 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 • kovariáns visszatérő érték, kontravariáns paraméter • A kifejezés-probléma • Hatékonysági problémák

  7. Új paradigmák • Aspektusorientált programozás • Generikus programozás • Magasabbrendű funkcionális programozás • Az új paradigmák beépítik a korábbi paradigmák tapasztalatait • Multiparadigma elvű rendszerek

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

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

  10. Funkcionális programozás • Függvények kiértékelése, magasabbrendű függvények • Kompozicionalitás elve, kiértékelési stratégiák • 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

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

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

  13. OO-FP együttélés • Absztrakt adatszerkezetek – osztályok • Enkapszuláció • Altípusosság: • Nominális • Strukturális

  14. GP-FP együttélés • Standard Template Library • Funkcionális programozás • Template metaprogramozás • Funkcionális programozás • Funkcionális programok • Generikus adatszerkezetek és függvények • Parametrikus polimorfizmus

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

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

More Related