Programmazione

Def : insieme delle tecniche e delle strategie messe in campo da una persona (programmatore) per scrivere un programma eseguibile in un computer.

PROGRAMMA : è un insieme di istruzioni che
 * vengono eseguite da un computer
 * risolvono una classe di problemi

FASI DELLA PROGRAMMAZIONE :


 * definizione (capire bene il problema), rappresentazione ed analisi del problema da risolvere nel suo contesto naturale
 * risoluzione del problema mediante strumenti teorici tipici del contesto (o di altri)
 * codifica della soluzione mediante un algoritmo (poiché il nostro esecutore è il computer, dobbiamo fare riferimento a ciò che il computer è in grado di svolgere)
 * codifica dell’algoritmo in un linguaggio di programmazione

ALGORITMO : elenco ordinato di istruzioni che, utilizzando dati iniziali e pervenendo a dei risultati finali, porta alla soluzione di una classe di problemi.

LINGUAGGIO MACCHINA :


 * si scrive usando una sequenza di bit (codice binario)
 * segue la logica della macchina
 * richiede al programmatore grosse capacità mnemoniche
 * dipende dallo specifico HW

LINGUAGGI A BASSO LIVELLO :


 * usano codici mnemonici invece delle istruzioni binarie ma seguono sempre la logica della macchina e sono dipendenti dal’HW.

LINGUAGGI AD ALTO LIVELLO :
 * sono indipendenti dall’HW
 * seguono la logica del programmatore
 * ma necessitano di un “traduttore” (compilatore/interprete) per essere eseguiti.

LINGUAGGI COMPILATI :

I linguaggi compilati generano un file eseguibile, cioè in linguaggio macchina, specifico per la piattaforma (HW+SO) per cui viene generato; questo garantisce maggior efficienza nell’esecuzione e riservatezza del codice ma, di contro, il programma non è “portabile”, cioè non funziona su piattaforme differenti. Molti sw applicativi sono forniti sotto forma di file eseguibili.

LINGUAGGI INTERPRETATI

I linguaggi interpretati, viceversa sono eseguibili su qualunque dispositivo dotato di un interprete, massima portabilità, ma minor efficienza in esecuzione, inoltre il codice è facilmente accessibile. L’interprete è un sw applicativo che dev’essere installato sul dispositivo la cui funzione è quella di eseguire qualsiasi programma scritto in quel linguaggio.

APPROCCIO IBRIDO Alcuni linguaggi adottano un approccio “ibrido” che consiste in una compilazione che genera un eseguibile in un linguaggio macchina virtuale, cioè un file eseguibile da un’apposita VM che dev’essere installata sul dispositivo.