Paradigma di programmazione: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 9:
La storia dei paradigmi di programmazione si presta a essere rappresentata con un [[albero genealogico]]; in molti casi, infatti, un nuovo paradigma nasce come evoluzione di un altro, aggiungendo nuovi concetti, ma mantenendo anche quelli fondamentali del precedente (ponendoli eventualmente in una prospettiva nuova o modificandone l'importanza relativa). Talvolta questo "salto evolutivo" consiste nel rendere obbligatoria e/o supportare esplicitamente quella che nei paradigmi precedenti si era affermata come [[regola di buona programmazione]]. Per esempio, la [[programmazione strutturata]] ha introdotto [[struttura di controllo|strutture di controllo]] standard (sequenze, cicli e alternative) e ha vietato l'uso dell'istruzione di [[Struttura di controllo#Goto|''goto'']], della quale si era dimostrata la non indispensabilità con il [[teorema di Böhm-Jacopini]]. Quando questo avvenne, i rischi legati all'uso indiscriminato dell'istruzione di salto incondizionato ''goto'' erano già noti a molti programmatori, ed erano diffuse [[stile di programmazione|regole di stile]] che suggerivano di restringere l'uso del ''goto'' in modi che si potessero far sostanzialmente corrispondere alle strutture di controllo della programmazione strutturata.
 
Sulla base della considerazione precedente, si può anche osservare che non è strettamente necessario, per programmare secondo un certo paradigma, avere a disposizione un linguaggio di programmazione ispirato a quello stesso paradigma; perad esempio, è possibile (anche se non semplicissimo) programmare a oggetti in [[linguaggio C]]. I meccanismi di [[Astrazione (informatica)|astrazione]] dei linguaggi di programmazione, differenti per i vari paradigmi, possono contribuire a rendere possibile stili di programmazione basati su concetti non direttamente forniti dal linguaggio utilizzato.
 
===Tipi di paradigmi===