Ordre for henrettelse

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 29. april 2017; checks kræver 3 redigeringer .

I imperativ programmering er udførelsesrækkefølgen ( udførelsesrækkefølge , evalueringsrækkefølge ) den måde, hvorpå programinstruktioner er bestilt, efterhånden som de udføres.

Instruktionerne inkluderet i programmet kan udføres enten sekventielt, den ene efter den anden eller samtidigt; både én gang og gentagne gange; rækkefølgen for udførelse af instruktioner kan eller kan ikke falde sammen med rækkefølgen af ​​deres placering i programposten og afhænger også både af den aktuelle tilstand for den regnemaskine, der udfører programmet, og af eksterne hændelser, og danner således forskellige rækkefølger af instruktionsudførelse.

Organiseringen af ​​den ønskede udførelsesordre kan implementeres ved hjælp af forskellige mekanismer, såsom specialiserede instruktioner til regnemaskinen eller kontrolstrukturer i programmeringssprog på højt niveau, eller mekanismer indbygget i lommeregneren til at afbryde, gemme og gendanne tilstand, modificere og generere programinstruktioner , og andre.

Styr flow

I imperativ programmering antages det, at processen med at udføre et program består i udførelsen af ​​dets instruktioner af lommeregneren. I det øjeblik, hvor instruktionen udføres, siger de, at den styrer lommeregneren, overgangen til udførelsen af ​​den næste kaldes overførsel af kontrol eller blot overgang . Sekvensen af ​​kontroloverførsler under programafvikling danner dets kontrolflow (også udførelsesflow ).

Lommeregnerens evne til at vælge instruktioner til udførelse afhængigt af dens tilstand, såvel som muligheden for samtidig udførelse af flere instruktioner, giver anledning til eksistensen af ​​forgrenede (som kan udføres under visse betingelser) og parallelle (udføres samtidigt) forbundet og interagerende kontrolstrømme i ét program.

Sættet af programstrømme, der danner forskellige ordrer, kan afbildes som en rettet graf , hvor noder svarer til programinstruktioner, og kanter svarer til overgange mellem dem.

Typer af udførelsesordrer

Rækkefølgen, hvori instruktionerne udføres, afspejler strukturen af ​​algoritmen implementeret af programmet. Hver grundlæggende algoritmisk konstruktion har sin egen eksekveringsordre, normalt med samme navn.

Den enkleste udførelsesrækkefølge er sekventiel eller naturlig rækkefølge, hvor instruktioner udføres sekventielt, den ene efter den anden, i den rækkefølge, de optræder i programnotationen. Den naturlige orden dannes under implementeringen af ​​den algoritmiske konstruktion "følgende".

Afvigelse fra det naturlige for den anvendte måde at skrive rækkefølgen på kaldes overgang . I dette tilfælde, efter afslutningen af ​​udførelsen af ​​den aktuelle instruktion, går lommeregneren ikke til den næste i posten, men til en anden instruktion specificeret på en bestemt måde. Ved et ubetinget hop vælges springinstruktionen uden at tage højde for lommeregnerens tilstand, med et betinget hop,  afhængigt af lommeregnerens tilstand, ved at kontrollere tilstanden .

En betinget gren giver dig mulighed for at organisere forgreningen af ​​kontrolstrømmen, der danner en forgreningsrækkefølge , hvor kun en af ​​to eller flere interne fragmentgrene af programmet er genstand for eksekvering. Forgreningsrækkefølgen implementerer den "forgrenende" algoritmiske konstruktion.

Overgangen til en tidligere udført instruktion giver dig mulighed for at organisere multipel udførelse af et sæt instruktioner, danne en cyklisk rækkefølge for deres udførelse ( cyklus ) og implementere den "cyklus" algoritmiske konstruktion.

En anden måde at organisere den gentagne udførelse af et sæt instruktioner i et program er at allokere instruktionerne, der skal gentages i en separat del af programmet, kaldet en subrutine , med mulighed for gentagne gange at overføre kontrol (kaldet et opkald ) til subrutinen og derefter vende tilbage til opkaldsstedet.

Lommeregneren kan muligvis afbryde udførelsen af ​​programmet og overføre kontrol til en specifik instruktion, afhængigt af dens tilstand eller signaler fra eksterne enheder, hvilket danner en afbrydelse . Efter dets behandling kan programafviklingen fortsættes fra tidspunktet for afbrydelsen.

Overførsel af kontrol til et på forhånd udarbejdet sæt instruktioner for en bestemt, sædvanligvis usædvanlig eller fejlagtig (ekstraordinær) situation uden mulighed for at vende tilbage til hændelsesstedet, udgør undtagelseshåndtering .

Se også

Noter