Teorema Boehm-Jacopini

Teorema Boehm -  Jacopini  este o prevedere de programare structurată , conform căreia orice algoritm executabil poate fi convertit într-o formă structurată, adică într-o astfel de formă atunci când cursul executării sale este determinat numai cu ajutorul a trei structuri de control: secvențial ( secvență engleză  ), ramificare (selecție engleză) și repetiții sau cicluri (iterație în engleză).

1. Într - o structură secvențială , instrucțiunile sunt executate în ordinea în care sunt scrise în program , adică una după alta.

Subrutina 1 /* executarea secvențială a instrucțiunilor 1, 2 ..N…...*/ Instrucțiunea 1;
Instrucțiunea 2;
...
Instructiunea N;
Sfârșitul subrutinei 1.

2. În structura de ramificare , succesiunea de execuție a instrucțiunilor depinde de o condiție dată, cel mai adesea o variabilă logică .

Subrutina 2 /* ramuri - Selectați instrucțiunea în funcție de condiție */
Dacă condiția este 1 , atunci instrucțiunea 1; /* executat dacă condiția 1 este adevărată */
Dacă condiția 2 atunci instrucțiunea 2; /* executat dacă condiția 2 este adevărată */
...
Else Instrucțiunea N; /* executat dacă niciuna dintre condiții nu este adevărată */ .
Sfârșitul subprogramului 2.

3 . În bucle , instrucțiunile sunt repetate până când unele condiții se schimbă, cum ar fi valoarea unei variabile booleene.

Subroutine 3 /* Bucla */
În timp ce condiția N se execută Instrucțiunea N /* Bucla se repetă până când condiția N este adevărată */
Instrucțiunea N + 1 /* Ieși din buclă când condiția N este încălcată */
Sfârșitul subrutinei 3

Teorema a fost formulată și demonstrată de matematicienii italieni Corrado Böhm și Giuseppe Jacopini în lucrarea lor din 1966 [1] . Articolul a descris, de asemenea, metode de conversie a algoritmilor nestructurați în cei structurați folosind limbajul de programare P′′ creat de Boehm ca exemplu .

La 2 ani de la publicarea teoremei, în 1968 Edsger Dijkstra a publicat un articol „Go To Statement Considered Harmful” [2] , în care critica utilizarea operatorului GOTO și se pronunța în favoarea îmbunătățirii stilului codului programului prin intermediul utilizarea structurilor de control și respingerea altor instrucțiuni, care controlează cursul algoritmului.

Teorema structurală Boehm-Jacopini nu a fost începutul programării structurale. Această teoremă este o declarație științifică folosită de Dijkstra pentru a-și fundamenta ideea de a folosi doar structuri de control în programe: structuri secvențiale, ramuri și bucle și nimic mai mult [3] .

Note

  1. Bohm, Corrado; și Giuseppe Jacopini. Diagrame de flux, mașini Turing și limbaje cu doar două reguli de formare  (engleză)  // Comunicări ale ACM  : jurnal. - 1966. - Mai ( vol. 9 , nr. 5 ). - P. 366-371 . - doi : 10.1145/355592.365646 . Arhivat din original pe 5 martie 2016.
  2. Dijkstra, Edsger. Mergeți la Declarația considerată dăunătoare  // Comunicări ale ACM  :  jurnal. - 1968. - Vol. 11 , nr. 3 . - P. 147-148 . - doi : 10.1145/362929.362947 . Copie arhivată . Consultat la 3 iulie 2007. Arhivat din original pe 3 iulie 2007.
  3. Avacheva T. G., Prutskov A. V. Viziune modernă asupra conceptului de programare structurată  // Cloud of Science. - 2019. - T. 6 , Nr. 4 . Arhivat din original pe 7 noiembrie 2019.