DiParadigmi di programmazione sono diversi stili, diversi “modi” di programmare. Ci sono molti paradigmi diversi, compresi alcuni popolari come la programmazione procedurale, la programmazione orientata agli oggetti, la programmazione funzionale, ecc. E alcuni che non sono così popolari, come la programmazione imperativa, la programmazione dichiarativa, la programmazione guidata dagli eventi, ecc. Se siete curiosi, c’è un ottimo riassunto dei paradigmi di programmazione qui. In questo post, ne discuteremo uno popolare, che è la programmazione procedurale.
Tl; dr;
La programmazione procedurale è uno dei paradigmi di programmazione più popolari là fuori. Seguendo la programmazione procedurale, dividiamo il codice in unità più piccole chiamate funzioni o procedure in modo che sia più facile da riutilizzare e il flusso di esecuzione è dall’alto verso il basso. Questo stile è facile da capire e da implementare. Di conseguenza, viene spesso insegnato nei corsi di introduzione alla programmazione.
Altri post del blog della serie:
Paradigmi di programmazione – è meglio la programmazione orientata agli oggetti?
Che cos’è la programmazione procedurale?
La programmazione procedurale è un metodo di programmazione che ha un supporto per dividere le funzionalità in una serie di procedure. Nella programmazione procedurale, un grande programma è suddiviso in parti più piccole e gestibili chiamate procedure o funzioni. Qui, la priorità è data alle funzioni piuttosto che ai dati. In un linguaggio di programmazione procedurale, un programma consiste fondamentalmente in una sequenza di istruzioni ognuna delle quali dice al computer di fare qualcosa come leggere gli input dall’utente, fare i calcoli necessari, visualizzare l’output.
def add_number(a, b): return a + b# workflow starts here# call function add_number() to add 1 and 2 together and print the result to screenprint(add_number(1, 2))# execute add_number() function 5 times and print the result to screenfor i in range(5): print(add_number(i, 1))# workflow ends here
Quando un programma diventa più grande, viene poi spezzato in unità più piccole chiamate procedure o funzioni. Si suppone che un certo numero di funzioni siano scritte per la realizzazione di un compito specifico. Queste funzioni non permettono la duplicazione del codice a causa della stessa chiamata di funzione da più punti. Questa tecnica è adatta solo per applicazioni software di medie dimensioni
Nella programmazione procedurale, vengono utilizzati due tipi di dati locali e globali. I dati all’interno della funzione sono chiamati dati locali e i dati che non sono all’interno di nessuna funzione sono chiamati dati globali. I dati locali sono accessibili alla sola funzione in cui sono dichiarati. Così ogni funzione può accedere ai suoi dati locali così come ai dati globali.
// this is a global variable$globalVar = 1;function addNumber($a, $b) { // this is a local variable $randomNumber = rand(); return $globalVar + $randomNumber + $a + $b;}
I dati locali di una funzione non sono accessibili ad altre funzioni. Se un dato deve essere accessibile a due o più funzioni, dovrebbe essere reso globale. Tuttavia, i dati globali sono vulnerabili ad un altro programmatore per essere cambiati inconsapevolmente. La disposizione separata di dati e funzioni fa un cattivo lavoro nel modellare le cose nel mondo reale. Ecco perché l’approccio della programmazione procedurale non modella perfettamente un sistema del mondo reale.
COBOL, FORTRAN, C, Pascal sono alcuni linguaggi di programmazione che possono implementare la programmazione procedurale.
Caratteristiche della programmazione procedurale
Un grande programma è suddiviso in piccole procedure o funzioni gestibili. Questo riduce la duplicazione del codice, che migliora la leggibilità e la manutenibilità del codice.
Funzioni diverse possono condividere dati tramite variabili globali. Le funzioni sono completamente isolate, quindi se vogliamo condividere i dati, dobbiamo dichiararli nell’ambito superiore.
Le funzioni possono cambiare i dati globali. Poiché i dati globali sono trasferiti da funzione a funzione; nel corso della trasformazione, i dati globali possono essere alterati nelle catene di funzioni.
Metodologia top-down. Come detto prima, la programmazione procedurale segue la metodologia top-down, il flusso di lavoro va dall’alto verso il basso.
Svantaggi della programmazione procedurale
- La codifica è facile e semplice.
- I codici hanno la possibilità di essere riutilizzati in diverse parti del programma.
- Il paradigma di programmazione consuma meno memoria sul computer.
- È più facile seguire il flusso dei codici nel programma scritto nel paradigma di programmazione procedurale.
- Il paradigma di programmazione è considerato migliore per la programmazione generale da imparare e implementare.
Limitazioni o svantaggi della programmazione procedurale
- Focalizzazione sulle funzioni piuttosto che sui dati.
- In un programma grande, è difficile identificare l’appartenenza dei dati globali.
- L’uso dei dati globali è soggetto a errori e potrebbe essere un ostacolo in caso di manutenzione e miglioramenti.
- La modifica dei dati globali richiede la modifica delle funzioni che li usano.
- Mantenere e migliorare il codice del programma è ancora difficile a causa dei dati globali.
- Il paradigma di programmazione procedurale non modella molto bene il problema del mondo reale poiché le funzioni sono orientate all’azione e non corrispondono realmente agli elementi del problema.
Sommario
La programmazione procedurale offre certamente un sacco di vantaggi, uno di questi è facile da imparare e implementare. I nuovi programmatori possono iniziare il loro viaggio imparando a scrivere codice in stile procedurale. Questo li aiuterà a capire come funziona un certo linguaggio di programmazione.
Tuttavia, a causa della sua limitazione, le applicazioni del mondo reale non utilizzano la programmazione procedurale. Pertanto gli studenti avranno bisogno di imparare altri paradigmi per essere esposti ai problemi della vita reale.
Grazie per aver letto. Puoi sfogliare altri post sulla tecnologia qui.
Di Tuan Nguyen