15.2 Gli algoritmi ed i programmi

Il PC è una macchina programmabile, ovvero che è in grado di elaborare dei dati in funzione di una determinata logica definita da qualcuno. La descrizione della logica in base alla quale il sistema deve elaborare i dati è detta algoritmo1 e consiste in un numero finito di passi da seguire per arrivare alla soluzione. Un algoritmo può essere espresso in varie forme, ma quelle più utilizzate sono essenzialmente due: il linguaggio naturale, o il diagramma a blocchi. Ad esempio, si considerino gli esempi riportati nelle fig. 15.1 e 15.2, relativi ad un algoritmo che visualizza il massimo tra due valori inseriti, il primo è descritto col linguaggio naturale, mentre il secondo è un diagramma a blocchi (in tali esempi a e b sono i valori inseriti).


pict
Figura 15.1: Esempio di algorittmo espresso in linguaggio naturale.


pict
Figura 15.2: Esempio di algoritmo espresso sottoforma di diagramma a blocchi.

Esistono essenzialmente due tipi di approccio per la stesura di un algoritmo che hanno caratteristiche opposte

Nella realtà per la stesura di un algoritmo si fa generalmente uso di entrambe le due tecniche: per lo sviluppo delle parti per le quali è necessario avere una visione d’insieme del problema si utilizza la tecnica top-down, mentre per sviluppare le parti per le quali si sente più l’esigenza di concentrarsi sul dettaglio, si utilizza la tecnica bottom-up.

Un algoritmo, sia esso espresso in linguaggio naturale che sottoforma di diagramma a blocchi, descrive i passi necessari per la soluzione di un problema, ma non è comprensibile da un computer. A tal fine esso deve essere trasformato in un programma. Un programma infatti non è altro che l’implementazione di un algoritmo in un linguaggio comprensibile all’elaboratore, cioè una sequenza finita ed ordinata di istruzioni eseguibili in un tempo finito.

La CPU è in grado di comprendere solo un particolare insieme di istruzioni: il linguaggio macchina (o codice macchina) composto da particolari sequenze di valori binari. Scrivere un programma in linguaggio macchina non è né pratico né agevole. Ecco quindi che sono nati i linguaggi di programmazione, dei linguaggi intermedi, molto vicini al linguaggio naturale (rispetto al linguaggio macchina), che rendono più facile la vita al programmatore. Una volta scritto un programma con il linguaggio di programmazione desiderato esistono degli appositi programmi che fanno la “traduzione” del programma in linguaggio macchina, in maniera da renderlo comprensibile alla CPU e, quindi, eseguibile.

Esistono essenzialmente due metodi per effettuare la traduzione di un programma in linguaggio macchina: l’interpretazione e la compilazione, che si basano su tecniche diverse descritte di seguito.

Un programma è generalmente memorizzato sul filesystem all’interno di uno o più file, detti file sorgenti, che contengono quello che viene definito appunto il codice (sorgente) del programma, cioè il programma scritto nel linguaggio di programmazione scelto.

[da completare ...]


  15.2.1 L’interprete
  15.2.2 Il compilatore
   15.2.2.1 Le librerie