Elemi adattípusok
Ez a szócikk nem tünteti fel a független forrásokat, amelyeket felhasználtak a készítése során. Emiatt nem tudjuk közvetlenül ellenőrizni, hogy a szócikkben szereplő állítások helytállóak-e. Segíts megbízható forrásokat találni az állításokhoz! Lásd még: A Wikipédia nem az első közlés helye. |
A számítástechnikában elemi típusok – mint megkülönböztetés az összetett típusoktól – azok az adattípusok, amelyeket a programozási nyelvek használnak az alap adataik felépítésénél. Mivel ez nagyban nyelvfüggő, az elemi adattípusok azok az adattípusok, amelyeknél az objektumok többé-kevésbé egy az egyben megfeleltetésbe hozhatók a memóriában tárolt megfelelőjükkel.
Az elemi típusok ismertek még mint beépített típusok vagy alap típusok.
Hogy egy típust milyen kategóriába sorolnak, az nagyban függ az adott programozási nyelvtől, illetve annak megvalósításától. Például a C-ben a stringek összetett adattípusnak számítanak, szemben a modern Basic nyelvjárásokkal, ahol ezek elemi adattípusok.
Tipikus elemi adattípusok többek között:
- Karakter (
character
,char
); - egész vagy integer (
integer
,int
,short
,long
) különböző értékkészlettel; - lebegőpontos szám (
float
,double
,real
,double precision
); - fixpontos szám (
fixed
) különböző pontossággal és egy programozó által meghatározott nagyságrenddel. - Logikai (Boole, boolean), aminek igaz (true) vagy hamis (false) értéke lehet.
- string (
string
), karaktersorozat, amely lehet nulla hosszúságú – nem tartalmaz karaktert – ha szükséges). Ezen típust nem mindig tekintik eleminek, legtöbbször összetett típusként kezelendő, amely char típusú elemek sorozata (pl. C programnyelv) - referencia (ismert még, mint pointer vagy kezelő), egy kis érték, ami egy másik objektum memóriában elfoglalt helyére (címére) mutat, lehetségesek a nagyobb értékek is.
Több bonyolult típus szintén az elemi típusok közé sorolható:
- Tuple-k (rendezett n-esek) a ML-ben, és a Pythonban
- láncolt listák a Lisp-ben
- komplex számok a Fortran-ban, a C (C99)-ben, a Python-ben
- racionális számok a Lisp-ben
- first class függvények, a closureok, folytatódások a funkcionális programozási nyelvekben mint Lisp és a ML
Általános elvárás az elemi típusokat kezelő eljárásokkal, függvényekkel szemben, hogy gyorsabb program konstrukciókat hozzanak létre. Egy egész összeadás, például végrehajtható, mint különálló gépi utasítás, és néhány processzor speciális utasításokkal rendelkezik a karaktersorozatok egy utasítással történő feldolgozására. Nevezetesen, a C szabvány említi, hogy
"egy 'egyszerű' int – egész – objektum hosszára az a javaslat, hogy egyezzen meg végrehajtó környezet architektúrája szerinti hosszal". Ez gyakorlatilag azt jelenti, hogy az int
lehetőleg legyen 32 bit hosszú egy 32 bites architektúrában.
A legtöbb nyelv nem engedi meg, hogy a program módosítani tudja egy elemi típus viselkedését vagy jellemzőit. Kivétel a Smalltalk, amely megengedi, hogy az elemi típusokat a program kibővítse, műveletekkel újradefiniálja a beépített műveleteket. A Pythonban minden objektumnak számít, így teljeskörűen megengedi a beépített típusok újradeifiniálását is.[1]