La definizione di programmazione strutturata considera solo la programmazione imperativa?

5

La definizione di programmazione strutturata considera solo la programmazione imperativa? Con ciò intendo dire che la definizione di programmazione strutturata esclude automaticamente la programmazione funzionale (nell'uso più comune, con il quale intendo non una programmazione puramente funzionale, ma qualcosa come Clojure).

La programmazione strutturata, almeno dalle definizioni che ho trovato sembrano davvero dire: "una buona programmazione non dovrebbe usare goto, e dovrebbe essere modulare". Il che non esclude necessariamente la programmazione funzionale, mentre la maggior parte delle definizioni sembra iniziare con "... è un sottoinsieme di programmazione imperativa".

Sto cercando un po 'di chiarimenti, penso.

A proposito, ho letto "Qual è la differenza? Tra programmazione imperativa, procedurale e strutturata? " che è una descrizione storica piuttosto buona.

    
posta lucidquiet 09.05.2012 - 19:41
fonte

2 risposte

9

Supponiamo che tu usi e crei solo funzioni pure. Questi per definizione non hanno uno stato condiviso e sono facili da comporre, e non c'è modo di usare un goto . Questo soddisfa sia le proprietà di "modularità" che di "controllo strutturato del flusso".

Cosa potrebbe essere? Un calcolo per ridurre la mappa. Un'inferenza del Prolog. Una query SQL (può essere riutilizzata come sottoquery o vista). Sei a tuo agio a mettere tutto sotto l'ombrello della nozione degli anni '60?

Per me, la "programmazione strutturata" è per lo più un concetto storico, collegato, ad esempio, a "Goto Considerated Harmful" e ad altre opere di Dijkstra. È profondamente radicato nel mondo imperativo. Programmazione strutturata quando scrivi un buon codice C. Fai qualcosa di diverso quando scrivi codice altamente modulare e ben strutturato in Haskell o probabilmente anche in Scala.

    
risposta data 09.05.2012 - 20:17
fonte
5

La programmazione strutturata è essenzialmente programmazione mediante procedure di composizione.

Puoi fare qualcosa di simile con le funzioni in un linguaggio funzionale? Sì.

Quando le persone parlano di programmazione strutturata, solitamente intendono includere la programmazione funzionale? No.

Se dici "stile di programmazione strutturato", le persone capiranno che includi la programmazione funzionale? No.

    
risposta data 09.05.2012 - 20:43
fonte

Leggi altre domande sui tag