ABSZTRAKCIÓ
Az absztrakció a valós világ megismerésének fontos eszköze. Lényege a modellezés: a
dolgok, tények, jelenségek, fogalmak közti különbségeket elhanyagoljuk, a közös jellemzőket
kiemeljük és ezentúl csak ezekkel jellemezzük. Az absztrakció az informatikában és a
programozási nyelvek környékén is megjelenik. A programozási nyelvekben elválik
egymástól a specifikáció és az implementáció.
Kétféle technikával valósítható meg:
Adatabsztrakció: Adatokkal írjuk le a világ jellemzőit, mert az adat statikus része a világnak.
Procedurális absztrakció: A műveleteket, a tevékenységeket, a viselkedést írjuk le, a világ
reakcióit.
Az absztrakció elősegíti az újrafelhasználhatóságot (megírtat ne kelljen újra megírni).
Specifikáció: Egyes eszközöknél megmondja mire, hogyan tudom használni.
Implementáció: Adott eszköz hogyan működik.
ADATTÍPUS
Az adattípust egyértelműen meghatározza:
Típusok csoportjai
Skalár (egyszerű) típus: Tartományának elemei atomiak (típuskezelő nyelvi eszközökkel
tovább nem bonthatóak), megjelenhetnek literálként a program szövegében.
Strukturált (összetett) típus: Tartományának elemei egy típuskészletből valóak (általában
értékcsoportot képviselnek), adatszerkezetek megvalósítására használjuk.
A program objektumait típussal ellátni a deklarációs utasításban kell.
Minden eljárásorientált nyelv ismeri a tömböt, és általában a rekordot is. Mindkettő strukturált
típus. Az összes adatszerkezet reprezentálható folytonos módon (tömbbel) az eljárásorientált
nyelvekben.
Nyelvek típusrendszere

Numerikus karakterlánc: Speciális típus, a numerikus érték karakterlánccal van takarva. A
szám ábrázolása: pakolt decimális. Ha akarom numerikus, ha akarom szöveges.
Címke: A cím típusú adat explicit kezelésére.
Tömb: Több dimenziós tömböt is kezel.
Rekord: (heterogén adatszerkezet, különböző típusú elemekből áll (mezők)). Minden
rekordmező addig bontható, amíg konkrét típus nem áll elő, a legalsó szinten csak konkrét
típus lehet.
Különböző rekordok mezői kaphatnak azonos nevet és a különböző mezők belső mezőinek
nevei is egyezhetnek. Hogy a rekordok megfelelő belső azonosítóira hivatkozni lehessen, a
PL/1 bevezette a minősített név (minősítés) fogalmát. A rekordok neveinek különbözőnek kell
lennie.

Tömb: Szabványtömb, tetszőleges dimenziószámú tömböt kezel.
Halmaz: A matematikai halmazfogalmat veszi át.
Rekord: Eltér a PL/1 és az adatszerkezetek rekordfogalmától. Mezőkből áll, de nem bontható
tovább. Csak egyszintű rekordot enged meg, saját típusok létrehozásával viszont egymásba
skatulyázhatóak. A rekord mint típus lehet változó hosszúságú.
Új típust a beépített és a már korábban deklarált saját típusok segítségével hozhatóak létre.
A saját típus egy névvel rendelkező objektum, felhasználható a további deklarációkban.

Rekord: A Pascal rekordfogalmát veszi át.
Skalár: A Pascal sorszámozott típusához a valós típust is hozzáteszi.
Privát: Speciális típus, az adatabsztrakció magas fokát tudja vele megvalósítani.
Az Ada ismeri a saját típust, de a deklarációban minden addigitól különböző típust kell
létrehozni. Létezik altípus is, ez valamely típussal egyenértékű.

Karakteres: Számolni lehet vele, értéke a belső kódja.
Függvény: Általában más nyelvben nincs függvény típus.
Tömb: Több dimenziós tömböt csak egy dimenziós tömbökből tud előállítani.
Struktúra: Egyszintű rekord változó rész nélkül.
Union: Olyan változó, amely a futási idő különböző pillanataiban különböző értékeket vehet
fel. A felvehető értékek köre behatárolt, a megadott mezőkből mindig csak egyet tartalmaz.
A nyelv kifejezés- és mutatóorientált, ismeri az automatikus deklarációt.
Saját típusa nem tényleges saját típus, csak egy másként is megadható típusleírást nevez meg
(szinonima).
Felsorolásos típus
Saját típusként kell definiálni. Megadjuk a tartományának az elemeit, amik azonosítók
lehetnek. Lényeges a sorrendjük, a rendezettség miatt sorszámozhatóak. Tartományának
elemei megjelenhetnek literálként a program szövegében.
Sorszámozott típus
Tartományának elemei lineáris listát alkotnak, egyértelmű sorrend állítható fel közöttük és
minden elemhez egy sorszám van rendelve (0,1,2,...). Kivétel a Pascal egész típusa, ahol saját
magát rendelték hozzá a számhoz. Tartományának minden egyes elemére igaz, hogy van
rákövetkezője (kivéve az utolsó elemet) és van megelőzője (kivéve az első elemet). A
sorszámból egyértelműen megadható az elem, az elemből egyértelműen megadható a
sorszám, ugyanígy az előző és a következő elem is.
Intervallum típus
Bármely sorszámozott típusból származtatható. Nem új típus, az eredeti sorszámozott típus
tartományának a leszűkítése.
Az alsó határ mindig kisebb vagy egyenlő a felső határral.
Tömb típus
A tömb típus a tömb adatszerkezet tükröződése, statikus objektum. A tömb nevével a tömb
összes elemére hivatkozhatok, egy elemre hivatkozás: a tömb neve + ahány dimenzió, annyi
index.
Az indexes változó skalár értékű változó.
Terminológia:
Rekord típus
A rekord a rekord adatszerkezet tükröztetése. Szerepe, hogy különböző típusú elemeket
fogjon össze egy struktúrába (heterogén). Mezőkből áll, ezeknek a mezőknek saját nevük és
típusuk van. Mint típust minden nyelvben explicit módon deklarálni kell.
A rekord nevével a teljes rekordra hivatkozom. Egy rekord azonos szintű mezőinek
különböző nevet kell adni.
Mutató típus
A modern nyelvek kedvelt típusa, a szétszórt reprezentáció eszköze. Speciális típus:
tartománya tárbeli címeket tartalmaz, értékként tárbeli címet vehet fel. Például egy mutató
típusú változó címén olyan érték helyezkedik el, amely egy másik tárbeli elemre mutat.
Segítségével tetszőleges objektumot tudok deklarálni, úgy hivatkozhatok a tárra, hogy nem
nevezem meg a tárrészt. Ha egy tárrészt nem nevezek meg, csak akkor tudok hivatkozni rá, ha
van olyan mutató, amelynek az értéke az adott tárrész címe.
Akárhány objektum felveheti ugyanazt a tárcímet (többszörös tárhivatkozás). Ekkor ha az
egyik által mutatott címen lévő érték megváltozik, akkor a többi mutató által mutatott érték is.
Nem létező tárcímre is hivatkozhatunk, erre a nyelvekben beépített nevesített konstansok
szolgálnak. Bármely mutató típusú objektumnak értékül adható.
KIFEJEZÉS
A kifejezés a programnyelvek szintaktikai egysége, az eddigi fogalmak jelennek meg benne.
Már ismert értékek alapján új értéket határozunk meg. Olyan objektum, amelynek két
komponense van: érték és típus. Típussal csak a típusos nyelvekben rendelkezik.
Formálisan operandusokból, operátorokból és kerek zárójelekből áll.
Operandusok: Az értéket képviselik, egy operandus önmagában is kifejezést alkot (a
legegyszerűbb kifejezés). Operandus lehet: konstans, nevesített konstans, változó vagy
függvényhívás.
Operátorok: Minden nyelv definiálja saját operátorait, néhol a programozó is definiálhat
sajátot. Az operátorok megkülönböztethetőek az operandusok száma szerint:
Kifejezés kiértékelése
Az a folyamat, amikor meghatározódik egy kifejezés értéke és típusa. A műveletek
elvégzésének sorrendjét befolyásolja a balról jobbra (ill. a jobbról balra) szabály és a
precedenciatáblázat.
A balról jobbra szabály infix kifejezéseknél használatos, de lehet jobbról balra is (általában
nem infix kifejezéseknél).
Az eljárásorientált nyelvekben a műveleti jelek a precedenciatáblázatba vannak elhelyezve a
prioritási sorrendjük szerint. A táblázatban sorokból áll (a legerősebb prioritású sor az első
sor), a sorokon belül kötési irány értelmezett.
A kiértékelés a precedenciatáblázat és a balról-jobbra szabály alapján történik. A kiértékelés a
bal oldalról indul, összehasonlítja az első két operátort. Ha azonos erősségűek és a kötés
iránya balról jobbra tart vagy a bal oldali operátor az erősebb, kiértékeli a részkifejezést,
különben továbbmegy a második és a harmadik műveleti jelre, és azokat hasonlítja össze.
Implementációfüggő, hogy az első művelet végrehajtása után a kiértékelést a kifejezés elején
kezdi újra vagy a kifejezés végéig folytatja a kiértékelést, és ekkor kezdi újra elölről.
A kiértékelés szempontjából speciálisak azok a kifejezések, amelyek logikai műveletet
tartalmaznak, mert itt akár már a kiértékelés elején eldőlhet a kifejezés értéke.
A nyelvek megoldásai a problémára:
A kifejezés típusa
Típusegyenértékűség: Kétoperandusú operátor két oldalán csak azonos típusú operandusok
szerepelhetnek. A művelet eredményének típusa vagy a két operandus típusával egyezik meg,
vagy a művelet dönti el (pl. relációművelet esetén az eredmény logikai típusú).
Típuskényszerítés: Kétoperandusú operátor két oldalán különböző típusú operandusok állnak
(vegyes típusú kifejezés). Ekkor az operátorok úgy vannak definiálva, hogy a lehetséges
típuskeveredések esetén megmondják mi lesz az eredmény típusa. Mindig konverzió van, az
eredmény típusa vagy az egyik operandus típusa vagy egy harmadik típus lesz. Speciális
esete, amikor az egyik típus tartománya a másik típus részhalmaza. Ekkor bővít vagy szűkít
(kerekít vagy csonkít).
Kérdés a nyelvekben, hogy konvertálható típus megengedett-e pl. értékadás, indexkifejezés és
paraméterkiértékelés esetében is.
Lehetőségek:
UTASÍTÁSOK
Az utasítások a program szövegének azon egységei, amelyeket a fordítóprogramnak
elsősorban fel kell ismernie, mert a fordítóprogram ezekkel az utasításokkal dolgozik.
Deklarációs utasítások: A fordítóprogramnak szólnak, a működését befolyásolják,
szolgáltatást kérnek, üzemmódot váltanak, információval látják el, amelyet a fordítóprogram
felhasznál kód generálásánál. Nem áll mögöttük kód, a fordítóprogram nem fordítja le őket.
Végrehajtható utasítások: Kód áll mögöttük, a fordítóprogam lefordítja, és ezekből
generálja a tárgyprogramot.
Ezek minden eljárásorientált nyelvben megtalálhatóak. Az elágaztató, ciklusszervező, ugró és hívó utasításokat vezérlő utasításoknak hívjuk, a program vezérlési szerkezetének felírására szolgálnak
Feltételes utasítás (kétirányú elágaztató utasítás)
A program egy adott pontján két tevékenység közül valamelyiket kiválasztom és azt hajtom
végre, vagy megmondom, hogy a tevékenységet végrehajtsa-e vagy sem.
Alakja: IF feltétel THEN tevékenység [ ELSE tevékenység ]
A feltétel logikai kifejezés, vagy amelyik nyelvben nincs logikai típus, ott logikainak
megfelelő értékű kifejezés.
Az utasítás szemantikája: Ha a kiértékelődés után a kifejezés értéke igaz, akkor a THEN
utáni tevékenység hajtódik végre. Ha az értéke hamis és nincs ELSE ág, üres utasítás, ha van
ELSE ág, akkor az ELSE ágban lévő utasításokat hajtja végre. Ezután mindkét esetben a
program a feltételes utasítás utáni utasításon folytatódik.
A THEN és az ELSE után tetszőleges utasítás állhat, akár újabb IF is, mert egymásba
skatulyázhatóak. A hivatkozási nyelv nem szabályozza az egymásba skatulyázhatóságot, de
az implementációk megszabják a számát. Ilyenkor merülhet fel a csellengő ELSE problémája.
Többszörös elágaztató utasítások
Feladata, hogy a program egy adott pontján akárhány tevékenység közül tudjak egyet
választani. A választás általában egy kifejezés értékei szerint történik, lényeges a kifejezés
típusa. A szintaktika és a szemantika is eltér nyelvenként.
Ciklusszervező utasítások
Feladata a program adott pontján egy tevékenység egymás utáni többszörös végrehajtása.
A ciklusnak formálisan van:
Feltételes ciklus
Az ismétlődést egy logikai kifejezés vagy ennek megfelelő típusú kifejezés szabályozza.
1. előfeltételes ciklus
Előírt lépésszámú ciklus
Az ismétlődésre vonatkozó információ a fejben van. Mindig tartozik hozzá egy ciklusváltozó,
a ciklus magja a ciklusváltozó egy-egy adott értékére fut le. Értékeit egy tartományból veheti
fel, ez a fejben van megadva (kezdő- és végértékkel). Felvehet minden értéket a tartományból
vagy csak bizonyos értékeket. Ekkor ezek az értékek szabályosan helyezkednek el a
tartományban, és a ciklusfejben kell megadni a lépésközt. A ciklusváltozó az adott
intervallumot befuthatja növekvőleg és csökkenőleg is, plusz információként az irányt is meg
kell adni.
A hivatkozási nyelvek nem szabályozzák, hogy elől-, vagy hátultesztelő a ciklus.
1. előltesztelő:
Felsorolásos ciklus
Tekinthető az előírt lépésszámú ciklus egy változatának. Az ismétlésre vonatkozó
információ a fejben van. A fej tartalmaz egy ciklusváltozót és egy kifejezés sorozatot. A
ciklusváltozó típusa tetszőleges lehet. Mikor a program vezérlése a ciklushoz ér, az értékeket
a ciklusváltozó rendre felveszi és minden érték mellett egyszer lefut a mag. Legalább egy
érték megadása kötelező, de száma bármennyi lehet, így nem lehet sem üres, sem végtelen
ciklus. Nem merül fel a ciklusváltozó megváltoztatásának problémája sem. Kevés nyelvben
létezik.
Végtelen ciklus
Sem a fejben, sem a magban nincs információ az ismétlődésre vonatkozóan, a magban kell
lennie egy eszköznek, hogy véget érjen. Ez általában egy külön (ciklusbefejeztető) utasítás.
Valamilyen esemény bekövetkeztére vár.
Összetett ciklus
A ciklusfejben a korábban felsorolt ismétlődésre vonatkozó információkból több is lehet
egymás után. (Az előzőek kombinációja.)
Általában egy nyelvben többféle is van, de ritka, hogy egyben mind létezik.
Ugró utasítás (feltétel nélküli ugró, vezérlésátadó)
Alakja: GOTO címke
Ha a címke létezik, a program ott folytatódik.
PROGRAMEGYSÉGEK
Az eljárásorientált nyelvekben a program szövegének egymástól többé-kevésbé független,
önálló jellemzőkkel rendelkező részeit programegységeknek hívjuk.
Ezek lehetnek:
1. Egymástól fizikailag függetlenek: Önállóan kezelhetőek, fordíthatóak, az egységek nem
rendelkeznek különösebb belső struktúrával.



A programegységek négy fajtája az eljárásorientált nyelvekben: alprogram, blokk, csomag
és taszk. Nem minden nyelv ismeri mind a négyet.
Minden nyelvben létezik egy kitüntetett rész, amelyet főprogramnak hívunk. Ez egy
alprogram vagy külön szintaktikával rendelkező programegység. A befelé skatulyázó
nyelvekben a főprogram tartalmazza az összes többi programegységet, amelyekből bármennyi
lehet. Szerepe az, hogy a betöltőprogram a főprogramot tölti be és neki adja át a vezérlést,
később közvetett vagy közvetlen módon a többi egység vezérlését is ő végzi és általában ő
fejezi be a programot.
A különböző programegységek paraméterekkel, globális változókkal vagy állományok
segítségével kommunikálnak.
Alprogram
Az összes eljárásorientált nyelv karakterisztikus egysége. Az újrafelhasználhatóság és a
procedurális absztrakció eszköze.
(Újrafelhasználhatóság: Ha a program különböző részein ugyanaz az utasítássorozat fordul
elő, akkor ki lehet emelni. A kiemelés helyéről hivatkozva rá aktivizálhatom.
Procedurális absztrakció: Lehetőség van a kiemelt szövegrész paraméterezésére, így nem
csak egy tevékenység, hanem egy tevékenységcsoport végrehajtására képes.)
Egy bemeneti adatcsoportból produkál kimeneti adatcsoportot, jól definiált specifikáció
alapján. Nem tartalmazza a transzformációt (az implementáció ismeretlen). A hívás helyén a
specifikáció a lényeges, hívhatom úgy is, hogy nem tudom, mit csinál.
Formális kinézete:
A procedurális absztrakciót teszi lehetővé. Az alprogramok egy problémaosztályt oldanak
meg. A probléma akkor konkretizálható, amikor az alprogramot az aktuális paraméterek
megadásával meghívom.
A fejben található, általában kerek zárójelek között.
A paraméterlistán szereplő nevek a törzsben különféle objektumok lehetnek: változók,
nevesített konstansok, állománynevek, más alprogramok nevei. A korábbi nyelvekben a listán
csak a paraméterek nevei szerepeltek, később a név mellet megjelent a típusmegjelölés, de
lehetnek plusz információk is, amelyek a formális paraméterek futás közbeni viselkedését
szabályozzák. Számuk bármennyi lehet, a nulla paraméterrel rendelkező alprogramot
paraméter nélküli alprogramnak hívjuk.
A törzsben deklarált objektumok és a formális paraméterek az alprogram lokális objektumai.
Két fajta alprogram létezik, a nyelvek általában külön alapszóval jelzik az eljárás vagy függvény fejében, hogy melyikről van szó:
1. Eljárás
Hatását paramétereinek, környezetének vagy mindkettőnek megváltoztatásával fejti ki.
Adattranszformációt hajt végre vagy tevékenységet végez.
Hívása: Utasításszerűen, végrehajtandó utasításnak tekinthető. A program szövegébe bárhol
elhelyezhető eljáráshívás, ahol végrehajtandó utasítás lehet. Egyes nyelvekben külön
alapszóval hívható, más nyelvekben nincs rá alapszó.
Befejezése:
2. Függvény
A matematikai fogalmat hozza át, feladata 1 db érték meghatározása. Nyelvfüggő, hogy ez az
érték mennyire bonyolult struktúrájú lehet. Még egy komponense van, a függvény által
visszaadott érték (visszatérési érték) típusa. Ezt a függvény neve hordozza, a fejben szerepel,
a specifikáció része.
Hívása: Csak kifejezésben hívható meg, mert a függvény neve által hordozott értéket fel kell
használni.
függvénynév[(aktuális paraméterlista)].
Befejezése és értékhozzárendelés:
A függvény feladata 1 db visszatérési érték meghatározása. Ha a függvény megváltoztatja paramétereit vagy környezetét, akkor ezt a tevékenységet mellékhatásnak hívjuk. A nyelvek általában nem javasolják, de megengedett.
Rekurzió

Ha ez a folyamat többször ismétlődik, hívási láncról beszélünk. A lánc alaphelyzetben
dinamikusan változik, eleje mindig a főprogram. Függetlenül attól, hogy működik-e, minden
eleme aktív.
Aktív alprogram újra meghívását rekurzív hívásnak (rekurziónak) nevezzük.
Közvetlen rekurzió: A rekurzió egyszerű esete, az alprogram saját magát hívja meg.
Közvetett rekurzió: Az alprogram egy másik, a hívási láncban szereplő alprogramot hív
meg.

A nyelvek közti különbségek:
Van-e rekurzió: A nyelvek egy része nem engedi meg, más nyelvekben egy alprogram
bármikor hívható rekurzívan, vagy a programozóra van bízva: a specifikációban megadható,
hogy az alprogram rekurzívan vagy nem rekurzívan hívható.
Van-e másodlagos belépési pont: A korai nyelvekre jellemző, hogy elhelyezhető a törzsben
másodlagos belépési pont. Szerkezete hasonló a fej szerkezetéhez, kompatibilis vele. Az
alprogram hívható a fejjel (a teljes törzs végrehajtódik), vagy a másodlagos belépési
pontoknál (a törzsnek csak egy része hajtódik végre).

Más nyelvekben nincs másodlagos belépési pont.
Korutinok:

Speciális alprogramok, speciális eszközrendszert igényelnek. Két alprogram egymás közt felváltva, tetszőleges helyre adja a vezérlést. A tárgyalt nyelvek egyikében sem létezik.
Paraméterkiértékelés
A formális paraméterlista az alprogramok specifikációjának a része, 1 db van belőle a
deklaráció helyén. Aktuális paraméterlista annyi lehet, ahányszor meghívom az alprogramot.
A paraméterkiértékelés az a folyamat, amikor egymáshoz rendelődnek a formális és az
aktuális paraméterek és meghatározódnak azok az információk, amelyek a paraméterátadásnál
mozogni fognak. Mindig a formális paraméterlista az elsődleges, mert ezekhez rendelődnek
az aktuális paraméterek. Ez az összerendelődés három aspektusból vizsgálható:
1. sorrend
A formális paraméterek sorrendje kötött, a specifikációban megadott sorrend. Az aktuális
paraméterek között is van egy bizonyos sorrend.
| formális paraméter lista | 1 | 2 | ... | n |
| ^ | ^ | ^ | ||
| aktuális paraméter lista | 1 | 2 | ... | n |
Olyan programegység, amely csak más programegységen belül helyezhető el, önállóan
fordítani nem lehet. Csak befelé strukturáló nyelvekben létezik.
A program szövegén belül bárhol elhelyezhető, tetszőlegesen egymásba skatulyázhatóak.
Aktivizálható szekvenciálisan (ha odaérek, elindul), vagy a címkéző nyelvekben GOTO-val
bárhonnan elérhetem. Belépni csak a fején keresztül lehet.
Többféleképpen fejeződhet be:
Nincs paramétere, neve (címke jellegű) is csak bizonyos nyelvekben (címkéző nyelvek), de
nem minden helyzetben van.
A blokkot ismerő nyelveket blokkszerkezetű nyelveknek nevezzük. A blokknak szerepe a
hatáskör definiálásánál van.
Hatáskör
A nevekhez kapcsolódó fogalom, a nevek jellemzője. A hatáskör a program szövegének azon
része, ahol egy adott név ugyanazt az objektumot nevezi meg (az adott név jellemzője,
felhasználási módja ugyanaz). Minden névhez meg kell tudni mondanom, hogy a program
szövegének mely részén jelenti ugyanazt a objektumot.
A hatáskörkezelés az a folyamat, amikor bármely névhez megadjuk a hatáskörét. Ennek
alapja a programegység (néhány bonyolultabb nyelv kivételével). Az adott programegységen
belül deklarált nevek az adott programegység lokális nevei, azok a nevek pedig, amelyeket
szabályosan használok a programegységen belül, de nem ott deklaráltam, az adott
programegység globális nevei. Azt a nevet, amelyet egy programegységben használok, de ott
nem deklaráltam, szabad névnek nevezzük.
Kétféle hatáskörkezelés létezik:
1. Statikus hatáskörkezelés
A program forrásszövegén alapul, a fordítóprogram végzi. Ha talál egy szabad nevet, kilép a
tartalmazó programegységbe és megnézi, hogy a név ott deklarálva van-e. Ha ott lokális név,
rendben van, ha nem, akkor újra feljebblép egy szinttel, egészen addig, amíg meg nem találja
lokális névként vagy el nem jut a legkülső programegységig. Ha itt sincs deklaráció és a nyelv
nem ismeri az automatikus deklaráció fogalmát, akkor hibát jelez, de ha tud automatikusan
deklarálni, akkor a szabályoknak megfelelően ellátja a nevet jellemzőkkel a legkülső szinten.
A lokális nevek hatásköre az a programegység, ahol deklaráltuk őket, és minden olyan
tartalmazott programegység, amelyben a nevet nem deklarálom újra.
A hatáskör befelé terjed, kifelé soha (a programegység bezárja a lokális nevet).
Belülről látszanak a külső nevek, ha nem deklarálom át őket.
2. dinamikus hatáskörkezelés
A futási időben történik, a futtatórendszer végzi. Alapja a hívási lánc. Egy név hatásköre futás
közben is változhat, futásonként más és más lehet.
Ha a futtató rendszer talál egy szabad nevet, visszalép a hívó programegységbe és megnézi,
hogy a név ott deklarálva van-e. Ha nincs, addig lépked vissza, amíg meg nem találja (lokális
névként) vagy el nem jut a legkülső szintig. Ha a hívási lánc első elemében sincs deklarálva és
nincs automatikus deklaráció sem, hiba történt, ha ismeri az automatikus deklarációt, akkor a
legelső szinten deklarálja.
Dinamikus hatáskörkezelésnél egy név hatásköre az a programegység, ahol deklaráltam,
illetve minden, az adott programegységből induló hívási láncban elhelyezkedő
programegység, hacsak az adott programegységben a nevet nem deklaráltam újra. Az
újradeklarálástól a hívási láncban az újradeklarált név az érvényes.
Az imperatív nyelvek általában statikus hatáskörkezelést valósítanak meg, egyéb nyelvek a
dinamikus hatáskörkezelést favorizálják.
Élettartam
A változók fontos jellemzője, a futási idő azon része, amelyben az adott változónak van
címkomponense. Változó esetén a címhozzárendelés határozza meg. Mind a hatáskör, mind
az élettartam a programegységekhez kötődik, egymástól független de különbség az is, hogy
míg a hatáskör névhez, addig az élettartam változóhoz kötődik.
Egy szintet vissza, vagy
vissza a főmenübe.