Végrehajtási sorrend

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2017. április 29-én felülvizsgált verziótól ; az ellenőrzések 3 szerkesztést igényelnek .

Az imperatív programozásban a végrehajtás sorrendje ( végrehajtási sorrend , kiértékelés sorrendje ) az a mód, ahogyan a program utasításait végrehajtásuk során rendezik.

A programban található utasítások végrehajthatók szekvenciálisan, egymás után, vagy egyidejűleg is; egyszer és többször is; az utasítások végrehajtási sorrendje egybeeshet vagy nem a programrekordban elfoglalt helyük sorrendjével, valamint függ mind a programot végrehajtó számológép aktuális állapotától, mind a külső eseményektől, így az utasítás-végrehajtás különböző sorrendjei alakulnak ki.

A kívánt végrehajtási sorrend megszervezése különféle mechanizmusok segítségével valósítható meg, mint például speciális utasítások a számológéphez vagy a magas szintű programozási nyelvek vezérlőstruktúráihoz, vagy a számológépbe épített mechanizmusok megszakításra, mentésre és állapot visszaállítására, programutasítások módosítására és generálására. , és mások.

Szabályozási folyamat

Az imperatív programozásnál feltételezzük, hogy a program végrehajtásának folyamata abból áll, hogy a számológép végrehajtja az utasításait. Az utasítás végrehajtásának pillanatában azt mondják, hogy ez vezérli a számológépet, az átmenetet a következő végrehajtására vezérlés átadásának vagy egyszerűen átmenetnek nevezik . A programvégrehajtás során a vezérlés átviteli sorrendje alkotja a vezérlési folyamatát ( végrehajtási folyamatot is ).

A számológép azon képessége, hogy állapotától függően ki tudja választani a végrehajtáshoz szükséges utasításokat, valamint több utasítás egyidejű végrehajtásának lehetősége, elágazó (bizonyos feltételek mellett végrehajtható) és párhuzamos (egyidejűleg végrehajtható) kapcsolódást eredményez. és kölcsönhatásba lépő vezérlőfolyamatok egy programban.

A különböző sorrendet alkotó programfolyamok halmaza irányított gráfként ábrázolható , ahol a csomópontok a programutasításoknak, az élek pedig a köztük lévő átmeneteknek felelnek meg.

A végrehajtási megbízások típusai

Az utasítások végrehajtásának sorrendje a program által megvalósított algoritmus szerkezetét tükrözi. Minden alapvető algoritmikus konstrukciónak megvan a maga végrehajtási sorrendje, általában ugyanazzal a névvel.

A végrehajtás legegyszerűbb sorrendje a szekvenciális vagy természetes sorrend, ahol az utasítások szekvenciálisan, egymás után, a program jelölésében megjelenő sorrendben hajtódnak végre. A természetes sorrend a „követés” algoritmikus konstrukció megvalósítása során alakul ki.

A természetestől való eltérést az alkalmazott sorrendírási módnál átmenetnek nevezzük . Ebben az esetben az aktuális utasítás végrehajtásának befejezése után a számológép nem a következőre megy a rekordban, hanem valamilyen más, meghatározott módon meghatározott utasításra. Feltétel nélküli ugrással az ugrási utasítás kiválasztása a számológép állapotának figyelembevétele nélkül történik, feltételes ugrással  a számológép állapotától függően, a feltétel ellenőrzésével .

A feltételes elágazás lehetővé teszi a vezérlőfolyam elágazásának megszervezését , olyan elágazási sorrendet alkotva , amelyben a program két vagy több belső töredék-ága közül csak az egyiket kell végrehajtani. Az elágazási sorrend az "elágazó" algoritmikus konstrukciót valósítja meg.

A korábban végrehajtott utasításra való áttérés lehetővé teszi egy utasításkészlet többszöri végrehajtásának megszervezését, végrehajtásuk ciklikus sorrendjét ( cycle ) alkotva, és a "ciklus" algoritmikus konstrukció megvalósítását.

Egy másik módja annak, hogy egy programban egy utasításkészlet ismételt végrehajtását megszervezzük, az ismétlődő utasításokat a program egy külön részébe, úgynevezett szubrutinba rendeljük , azzal a lehetőséggel, hogy a vezérlést (úgynevezett hívásnak ) ismételten átadjuk a szubrutinnak. majd visszatér a hívás helyére.

A számológép képes lehet megszakítani a program végrehajtását és átadni a vezérlést egy adott utasításra, annak állapotától vagy a külső eszközöktől érkező jelektől függően, megszakítást képezve . Feldolgozása után a program végrehajtása a megszakítás helyétől folytatható.

Kivételkezelést jelent az irányítás átadása egy előre elkészített utasításkészletre egy bizonyos, általában szokatlan vagy hibás (kivételes) helyzetre anélkül, hogy az előfordulás helyére visszatérne .

Lásd még

Jegyzetek