15.1 Introduzione

Come già illustrato nella sez. 1.11 un computer è una macchina a stati in grado di eseguire delle operazioni aritmetico-logiche sui dei dati di ingresso e fornisce dei risultati. La logica con la quale il sistema elabora i dati di ingresso (input) per fornire dei risultati (output) è definita da quello che viene detto programma.

Generalmente un programma (applicazione, file binario, eseguibile, script) nasce dall’esigenza di trovare la soluzione ad un determinato problema (o classe di problemi) anche se i motivi che spingono i programmatori a scrivere i programmi possono essere molteplici: dal mero interesse pecuniario, all’attrazione per la sfida (posta dal problema da risolvere), alla voglia di apprendere (sia perché le tecnologie sono sempre in evoluzione, sia perché i programmi possono essere scritti per vari scopi e quindi possono coinvolgere varie discipline, dalla grafica all’audio, alla gestione dei dati, all’intelligenza artificiale, ...), alla voglia di creare qualcosa che possa essere utile per sé ed anche per altri.