Boehm-Jacopinin lause

Boehm -  Jacopini -lause  on strukturoidun ohjelmoinnin säännös , jonka mukaan mikä tahansa suoritettava algoritmi voidaan muuntaa strukturoituun muotoon, toisin sanoen sellaiseen muotoon, jossa sen suorituksen kulku määräytyy vain kolmen ohjausrakenteen avulla: peräkkäinen ( englanninkielinen  sekvenssi ), haarautuminen (englanninkielinen valinta) ja toistot tai jaksot (englanninkielinen iteraatio).

1. Jaksottaisessa rakenteessa käskyt suoritetaan siinä järjestyksessä kuin ne on kirjoitettu ohjelmaan , eli peräkkäin .

Aliohjelma 1 /* käskyjen 1, 2 peräkkäinen suoritus ..N…...*/ Käsky 1;
Ohje 2;
...
Ohje N;
Aliohjelman 1 loppu.

2. Haaroittumisrakenteessa käskyjen suoritusjärjestys riippuu tietystä, useimmiten loogisesta muuttujasta , ehdosta.

Aliohjelman 2 /* haarat - Valitse käsky ehdon mukaan */
Jos ehto on 1 , niin käsky 1; /* suoritetaan, jos ehto 1 on tosi */
Jos ehto 2 , niin käsky 2; /* suoritetaan, jos ehto 2 on tosi */
...
Muussa käsky N; /* suoritetaan, jos mikään ehdoista ei ole totta */ .
Aliohjelman 2 loppu.

3 . Silmukoissa lauseita toistetaan, kunnes jokin ehto muuttuu, kuten loogisen muuttujan arvo.

Aliohjelma 3 /* Silmukka */
Kun ehto N suorittaa käskyn N /* Silmukkaa toistetaan, kunnes ehto N on tosi */
Käsky N + 1 /* Poistu silmukasta, kun ehtoa N rikotaan */
Aliohjelman 3 loppu

Lauseen muotoili ja todisti italialaiset matemaatikot Corrado Böhm ja Giuseppe Jacopini vuoden 1966 artikkelissaan [1] . Artikkelissa kuvattiin myös menetelmiä strukturoimattomien algoritmien muuntamiseksi strukturoiduiksi käyttämällä esimerkkinä Boehmin luomaa P′′- ohjelmointikieltä .

2 vuotta lauseen julkaisemisen jälkeen Edsger Dijkstra julkaisi vuonna 1968 artikkelin "Siirry haitallisena pidettävään lausuntoon" [2] , jossa hän kritisoi GOTO -operaattorin käyttöä ja puhui ohjelmakoodin tyylin parantamisen puolesta. ohjausrakenteiden käyttö ja muiden algoritmin kulkua ohjaavien käskyjen hylkääminen.

Boehm-Jacopinin rakennelause ei ollut rakenneohjelmoinnin alku. Tämä teoreema on tieteellinen lausunto, jota Dijkstra käytti perustelemaan ajatustaan ​​vain ohjausrakenteiden käyttämisestä ohjelmissa: peräkkäisiä rakenteita, haaroja ja silmukoita, eikä mitään muuta [3] .

Muistiinpanot

  1. Bohm, Corrado; ja Giuseppe Jacopini. Vuokaaviot, Turing-koneet ja kielet, joissa on vain kaksi muodostussääntöä  (englanniksi)  // ACM:n viestintä  : päiväkirja. - 1966. - toukokuu ( osa 9 , nro 5 ). - s. 366-371 . - doi : 10.1145/355592.365646 . Arkistoitu alkuperäisestä 5. maaliskuuta 2016.
  2. Dijkstra, Edsger. Siirry lausuntoon, jota pidetään haitallisena  // ACM:n viestintä  :  Journal. - 1968. - Voi. 11 , ei. 3 . - s. 147-148 . - doi : 10.1145/362929.362947 . Arkistoitu kopio . Haettu 3. heinäkuuta 2007. Arkistoitu alkuperäisestä 3. heinäkuuta 2007.
  3. Avacheva T. G., Prutskov A. V. Moderni näkemys strukturoidun ohjelmoinnin käsitteestä  // Tieteen pilvi. - 2019. - T. 6 , nro 4 . Arkistoitu alkuperäisestä 7. marraskuuta 2019.