Programmazione strutturata

Programmi

Nel corso di problem solving sono stati affrontati argomenti relativi alla soluzioni di problemi mediante strategie risolutive algoritmiche. In questa sezione del sito analizziamo un particolare paradigma di programmazione chiamato programmazione strutturata.

Tutti gli algoritmi sono pensati per essere eseguiti da un esecutore che nel nostro caso sarà un calcolatore elettronico. Per poter comunicare l’algoritmo ad un esecutore dobbiamo scrivere un programma in un linguaggio di programmazione. Esistono molti linguaggio di programmazione e anche diversi paradigmi di programmazione. Vediamo ora nel dettaglio cosa sono i linguaggi.

Linguaggio

Con il termine linguaggio di programmazione si intende un insieme di frasi (detti “programmi”) per cui esiste un calcolatore che li esegue. Non tutte le frasi sono eseguibili. Ad esempio se considerassimo le seguenti frasi:

  • Matteo è giovane
  • Mattia ha la penna
  • Maria mangia la mela
  • Giuditta guarda la televisione

Come possiamo allora definire delle frasi formalmente eseguibili?

Per farlo dobbiamo definire una grammatica cioè un insieme di regole che permettono di derivare solamente ed esattamente gli elementi dell’insieme che stiamo definendo.

Linguaggio Macchina

La struttura di un calcolatore elettronico moderno (intendiamo anche i moderni smartphone o smartwatch), è stata definita da un grande matematico chiamato Von Neumann. Egli progettò un calcolatore elettronico avente i seguente blocchi:

  • CPU: Central Processing Unit , unità che permette di eseguire le istruzioni delle quali sono composti i programmi;
  • Memoria: memoria nella quale vengono caricati i programmi per essere eseguiti;
  • I/O: dispositivi di input (come tastiera, mouse), output (come schermo, stampante);
  • BUS: canale di connessione dei vari blocchi.

Il linguaggio usato dal processore è detto codice macchina. Si tratta di dati come quelli che arrivano al processore, costituiti da una serie di 0 e di 1 (codici binari). Ad esempio una istruzione scritta in linguaggio macchina potrebbe essere:

1010100101111000

Come vediamo questo linguaggio non è comprensibile all’uomo è per questo da subito sono stati creati dei linguaggi comprensibili per scrivere agevolmente i programmi per il calcolatore. processore. 


Chiaramente ogni programma scritto con questi linguaggi deve sempre essere prima convertito nel linguaggio macchina intramezzato da linguaggi intermedi messi a punto per essere compresi dall’uomo. Il codice scritto in questo tipo di linguaggio è poi trasformato in linguaggio macchina per essere utilizzabile dall’esecutore.

Tipi di linguaggi

I linguaggi possono essere di due tipi: interpretati o compilati:

Un linguaggio si dice interpretato quando per eseguirlo è necessario un programma aggiuntivo chiamato interprete che traduce man mano le istruzioni nel linguaggio macchina.

Un linguaggio invece si dice compilato se viene tradotto tutto in una volta da un programma compilatore che crea un nuovo file tradotto in linguaggio macchina pronto ad essere eseguito.

Programmazione strutturata

La programmazione strutturata è uno fra i tanti paradigmi di programmazione esistenti:

La programmazione strutturata si basa su tre costrutti: sequenza, selezione, e iterazione:

In questa sezione del sito andiamo ad analizzare questi costrutti e le loro proprietà che ci permetteranno di scrivere delle strategie risolutive algoritmiche per risolvere molti tipi di problemi.

La presentazione della programmazione strutturata verrà affrontata utilizzando il linguaggio di programmazione C++.