Elmélet (1. félév)

Követelmények: A tematika:
  1. A nyelvek, a programozási nyelvek: a nyelvek és a programozási nyelvek felosztása, csoportosítása. A programok minősége, a programozási nyelvek tervezése, szabványosítása.
  2. A lexikális elemek: jelkészlet, literálok. A nyelvtan: a generatív grammatika, fordító és értelmezőprogramok működése.
  3. Vezérlési szerkezetek, utasítások: értékadás a COBOL, Pascal, Smalltalk, CLU nyelveken. A szekvencia és a blokk utasítás a Pascal, Ada, C nyelvcsalád nyelveiben. A feltétel nélküli vezérlésátadás a FORTRAN, COBOL, Modula-3 és C nyelvekben.
  4. Feltételes utasításvégrehajtás, elágazási szerkezetek, FORTRAN, COBOL, Pascal, Modula-3 nyelvekben és a C nyelvcsaládban. Ciklusszerkezetek a FORTRAN, COBOL, Pascal, Modula-3, Ada nyelvekben és a C nyelvcsaládokban. A bejárók és használatuk.
  5. Hatókör és élettartam: Statikus, dinamikus és automatikus memóriaterület. Globális hatókör, a fordítási egység mint hatókör, függvény mint hatókör, típus mint hatókör.
  6. Típusok, a programozási nyelvek típusossága, típuskonverzió. A típusok osztályozása: skalár (diszkrét, egész, karakter és logikai típusok), valós (fixpontos, lebegőpontos, kétszeres pontosságú típusok). Mutató típusok. Kifejezések, kifejezések szerkezete, kifejezések kiértékelése.
  7. Típuskonstrukciók: a direktszorzat típuskonstrukció, az unió típuskonstrukció, az iterált típus, a vektor, tömbök, a halmaz.
  8. Alprogramok, az alprogramok hatása a szoftverminżségre: eljárások és függvények. Alprogramok és hívások szerkezete, paraméter és visszatérési érték.
  9. Az alprogramok meghívása és a visszatérés. Makrók és inline alprogramok. Érték, cím és eredmény szerinti paraméterátadás. Rekurzív alprogramok.
  10. Kivételkezelés: kivételkezelés a FORTRAN, COBOL, PL/I, CLU, Ada, C++, Java, Delphi és a Perl nyelvekben.
  11. Absztrakt adattípusok: típuskonstrukció és adatabsztrakció. Átlátszatlan típus a C nyelvben, a specifikáció és az implementáció szétválasztása.
  12. Típussal való paraméterezés, polimorfizmus, altípusos és overloading polimorfizmus, típuskényszerítéses polimorfizmus. Példányosítás: explicit példányosítás, igény szerinti példányosítás, lusta példányosítás.