Programozási nyelvek típusossága
Típus nélküli nyelv A változó deklarációjakor még nincs típusa. A változó típusa csak beolvasáskor derül ki. Csak futás közben derülhetnek ki a hibák. Pl.: x:=x+y utasítás lefordul, de futás közben x egész számot, y szöveget kap értékül Pl.: Assembly A változó deklarációja: A programegység deklarációs részében a változó nevének felsorolása. Egyes nyelvekben nincs kötelező deklarációs rész, az utasítások között bárhova beírható a változó használata előtt.
Típusos nyelv Az egyszerű típusok deklarációja nem kötelező, csak az összetetteké. Bizonyos típusok csak futás közben derülnek ki. Hibák is futás közben derülnek ki. Pl.: a program beolvas egy számot az N változóba, majd létrehoz egy tömböt (számsorozatot), aminek N darab eleme lesz Ha N=3, akkor rendben, de ha N=2,3, akkor a számsorozatot nem tudja létrehozni. Pl.: JavaScript, Basic
Erősen típusos nyelv (Szigorúan típusos nyelv) A változókhoz fordítás előtt kell típust rendelni, a programegységek deklarációs részében. A változók típusa a program futása során nem változhat meg. Már a fordítóprogram jelzi: a típusegyezési hibákat a típusnak nem megfelelő műveleteket Pl.: Java, C#, C++, Pascal
Milyen esetben lehetséges az a:=b értékadás? Típuskompatibilitás Név szerinti a két változó típusának a neve egyezik nincs neve a típusnak, de egy sorban lettek deklarálva pl.: Pascal, Delphi Szerkezet szerinti a két változó típusának a szerkezete egyezik, lehet más a nevük pl.: C++ Objektumosztályoknál erre még visszatérünk.
Milyen esetben lehetséges az a:=b értékadás? Típuskényszerítés valós:=egész egész:=valós (csonkítással, nem minden nyelvben) szöveg:=karakter Vannak típus-átalakító függvények, amikkel megoldható pl. a beolvasott szöveg számmá alakítása. típus-átalakító függvények, pl.: Beolvasás után: szöveg szám (kiválasztott fajta) Kiírás előtt: szám szöveg
Memóriakezelés Dinamikus Statikus A változó a program futása során a memóriában ugyanazon a helyen marad. A változóhoz rendelt memória terület mérete nem változik a program futása során. Pl.: egész típus (minden nyelvben) Dinamikus A változó a program futása során a memóriában más-más helyen fordulhat elő. A változóhoz rendelt memória terület mérete nőhet és csökkenhet is a program futása alatt. Pl.: szöveg típus (Basic) Félstatikus: Futás közben a változóhoz tartozó memóriaterület nőhet, de nem csökkenhet.
Hozzáférési jog lekérdezhető módosítható memóriában Bemenő adat igen nem konstans Kimenő adat változó Be-kimenő adat A programegységek paraméterlistáján a hozzáférési jog jelölendő. A konstans paramétereknek az értékét kapja meg a programegység egy új memóriaterületre másolva, így az eredeti értéket nem módosíthatja. A változó paramétereknek a memóriacímét kapja meg, így az értékük módosítható.
Hatáskör A programkód azon része, ahol az adathoz a hozzáférés megengedett. az a programegység, amiben az adatot létrehoztuk és az abba beágyazott programegységek
Élettartam A futási időnek az a része, amiben az adat azonosítója végig ugyanazt az objektumot jelöli. az a programegység, amiben az adatot létrehoztuk és az abba beágyazott programegységek valamint a meghívott programegységek végrehajtási ideje (bár ekkor nem hozzáférhető)
Láthatóság A programkódnak az a része, amiben az adat azonosítója végig ugyanazt az objektumot jelöli. az a programegység, amiben az adatot létrehoztuk kivéve azokat a beágyazott programegységeket, amik tartalmaznak azonos nevű adatot
Globális változó Lokális változó a főprogramban létrehozott változó Hatásköre: minden programegység Élettartama: a program teljes futási ideje Lokális változó egy programegységben létrehozott változó Hatásköre: az adott programegység és az abba ágyazott programegységek (ha vannak) Élettartama: az adott programegység futási ideje alatt aktivizálódik Lokális változó élettartama: Ha statikus típus, akkor a teljes program alatt létezik, de csak az adott programegységben használható.