Ordning för avrättning

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 29 april 2017; kontroller kräver 3 redigeringar .

I imperativ programmering är exekveringsordningen ( exekveringsordning , ordning för utvärdering ) det sätt på vilket programinstruktioner ordnas när de exekveras.

Instruktionerna som ingår i programmet kan utföras antingen sekventiellt, efter varandra eller samtidigt; både en gång och upprepade gånger; sekvensen för exekvering av instruktioner kan eller kanske inte sammanfaller med sekvensen för deras plats i programposten, och beror också både på det aktuella tillståndet för den kalkylator som exekverar programmet och på externa händelser, vilket således bildar olika ordningsföljder för instruktionsexekvering.

Organiseringen av den önskade exekveringsordern kan implementeras med hjälp av olika mekanismer, såsom specialiserade instruktioner för räknaren eller styrstrukturer för programmeringsspråk på hög nivå, eller mekanismer inbyggda i räknaren för att avbryta, spara och återställa tillstånd, modifiera och generera programinstruktioner , och andra.

Kontrollflöde

I imperativ programmering antas det att processen för att exekvera ett program består i att dess instruktioner utförs av räknaren. I det ögonblick då instruktionen utförs säger de att den styr räknaren, övergången till utförandet av nästa kallas överföring av kontroll eller helt enkelt övergång . Sekvensen av kontrollöverföringar under programexekvering bildar dess kontrollflöde (även exekveringsflöde ).

Möjligheten hos räknaren att välja instruktioner för exekvering beroende på dess tillstånd, såväl som möjligheten till samtidig exekvering av flera instruktioner, ger upphov till förekomsten av grenade (som kan utföras under vissa förhållanden) och parallella (exekverande samtidigt) anslutna och interagerande styrflöden i ett program.

Uppsättningen av programflöden som bildar olika ordningar kan avbildas som en riktad graf , där noder motsvarar programinstruktioner och kanter motsvarar övergångar mellan dem.

Typer av exekveringsorder

Ordningen i vilken instruktionerna exekveras återspeglar strukturen för den algoritm som implementeras av programmet. Varje grundläggande algoritmisk konstruktion har sin egen exekveringsorder, vanligtvis med samma namn.

Den enklaste exekveringsordningen är sekventiell eller naturlig ordning, där instruktioner exekveras sekventiellt, efter varandra, i den ordning de visas i programnotationen. Den naturliga ordningen bildas under implementeringen av den algoritmiska konstruktionen "följande".

Avvikelse från det naturliga för det tillämpade sättet att skriva ordningen kallas övergång . I det här fallet, efter slutförandet av utförandet av den aktuella instruktionen, går räknaren inte till nästa i posten, utan till någon annan instruktion specificerad på ett visst sätt. Med ett ovillkorligt hopp väljs hoppinstruktionen utan att ta hänsyn till räknarens tillstånd, med ett villkorligt hopp,  beroende på räknarens tillstånd, genom att kontrollera villkoret .

En villkorlig gren låter dig organisera förgreningen av kontrollflödet, som bildar en förgreningsordning , där endast en av två eller flera interna fragment-grenar av programmet är föremål för exekvering. Förgreningsordningen implementerar den "förgrenande" algoritmiska konstruktionen.

Övergången till en tidigare exekverad instruktion låter dig organisera multipel exekvering av en uppsättning instruktioner, bilda en cyklisk ordning för deras exekvering ( cykel ) och implementera den "cykel"-algoritmiska konstruktionen.

Ett annat sätt att organisera den upprepade exekveringen av en uppsättning instruktioner i ett program är att allokera instruktionerna som ska upprepas till en separat del av programmet, kallad en subrutin , med möjligheten att upprepade gånger överföra kontroll (kallat anrop ) till subrutinen och sedan återvända till samtalsplatsen.

Kalkylatorn kan eventuellt avbryta exekveringen av programmet och överföra kontrollen till en specifik instruktion, beroende på dess tillstånd eller signaler från externa enheter, vilket bildar ett avbrott . Efter dess bearbetning kan programexekveringen fortsättas från punkten för avbrott.

Överföring av kontroll till en i förväg utarbetad uppsättning instruktioner för en viss, vanligtvis ovanlig eller felaktig (exceptionell) situation utan möjlighet att återvända till platsen för händelsen utgör undantagshantering .

Se även

Anteckningar