Programmazione non strutturata - Non-structured programming

La programmazione non strutturata è il paradigma di programmazione storicamente più antico in grado di creare algoritmi Turing completi . È spesso in contrasto con il paradigma di programmazione strutturata , in particolare con l'uso di flussi di controllo non strutturati che utilizzano istruzioni goto o equivalenti. La distinzione è stata particolarmente sottolineata dalla pubblicazione dell'influente " Go To Statement Considered Harmful " lettera aperta nel 1968 dello scienziato informatico olandese Edsger W. Dijkstra , che ha coniato il termine "programmazione strutturata".

La programmazione non strutturata è stata pesantemente criticata per la produzione di codice difficilmente leggibile ("spaghetti") .

Esistono linguaggi di programmazione sia di alto che di basso livello che utilizzano la programmazione non strutturata. Alcuni linguaggi comunemente citati come non strutturati includono JOSS , FOCAL , TELCOMP , linguaggi assembly , file batch MS-DOS e prime versioni di BASIC , Fortran , COBOL e MUMPS .

Caratteristiche e concetti tipici

Concetti basilari

Un programma in un linguaggio non strutturato utilizza salti non strutturati a etichette o indirizzi di istruzioni. Le righe sono solitamente numerate o possono avere etichette: questo permette al flusso di esecuzione di saltare a qualsiasi riga del programma. Questo è in contrasto con la programmazione strutturata che utilizza costrutti strutturati di selezione (if/then/else) e ripetizione (while e for).

Riferimenti

  1. ^ Dijkstra 1968 , "L'uso sfrenato dell'istruzione go to ha come immediata conseguenza che diventa terribilmente difficile trovare un insieme significativo di coordinate in cui descrivere l'avanzamento del processo. ... L'istruzione go to così com'è è solo troppo primitivo, è troppo un invito a fare un pasticcio del proprio programma."

Ulteriori letture

  • Cobb, Gary W. (1978). "Una misura della struttura per linguaggi di programmazione non strutturati". Note sull'ingegneria del software ACM SIGSOFT . 3 (5): 140–147. doi : 10.1145/953579.811114 . ISSN  0163-5948 .

link esterno

  • BPStruct - Uno strumento per strutturare sistemi concorrenti (programmi, modelli di processo)