Dal problema alla risposta

Macchina dedicata

Una macchina progettata per svolgere un compito specifico.
La macchina riceve i dati e svolge le operazioni prestabilite per ottenere la risposta.

problema4

La maggior parte degli elettrodomestici sono macchine dedicate: calcolatrice tascabile, ascensore, lavatrice, decoder, …

Macchina onnipotente

All’estremo opposto una macchina capace di rispondere a richieste di qualsiasi tipo, di risolvere qualsiasi problema…

problema3

Macchina programmabile

Una macchina che può essere istruita, tramite un certo programma, per risolvere un certo problema.

problema31

Esempi: computer tradizionale, calcolatrice programmabile, console per videogiochi con cartucce intercambiabili, …

Algoritmo

Ogni esecutore ha un insieme diverso di istruzioni ma i problemi sono sempre gli stessi…
È utile separare la fase di risoluzione del problema dalla scrittura delle istruzioni.
In questo modo lo stesso metodo risolutivo, algoritmo, può essere tradotto in innumerevoli programmi.

problema2

Si introducono due figure: il risolutore e il programmatore

  • Il risolutore svolge il lavoro più difficile, individuare l’algoritmo per il problema….
  • Il programmatore traduce l’algoritmo in programma utilizzando un ambiente di sviluppo per un certo linguaggio di programmazione.

Compilatore

Tra il programma e l’esecutore, compaiono il file sorgente e il file oggetto.

problema1

Il programmatore utilizza

  • l’editor per scrivere il file sorgente
  • il compilatore per tradurre da alto a basso livello e produrre il file oggetto.

Il compilatore può produrre un file oggetto compatibile con una certa piattaforma.
Linguaggi di programmazione compilati: C/C++, COBOL, FORTRAN, Pascal, …

La macchina virtuale

La tecnica della macchina virtuale ha permesso la diffusione di applicazioni eseguibili su tutte le piattaforme.

problema12

Si produce un unico file oggetto (bytecode) che viene eseguito dalla macchina virtuale (plug-in, player, …) installata sulla piattaforma

Testing e debugging

Con il testing si mette alla prova il programma oggetto su diverse istanze del problema.
Utilizzando dati significativi per i quali si conosce la risposta esatta si può raggiungere una ragionevole certezza che il software funzioni.

problema11

Quando una risposta non è quella attesa sarà necessario svolgere il debugging (individuare gli errori) su sorgente, programma, algoritmoproblema (???).

Notice: This work is licensed under a BY-NC-SA. Permalink: Dal problema alla risposta

Comments are closed.