Software di base: Linguaggi di Programmazione Programmare in linguaggio macchina: richiede conoscenza dell’hardware produce programmi non portabili Si può utilizzare il linguaggio assembler linguaggio vicino al linguaggio macchina usa mnemonici e simboli anziché codifiche e indirizzi la traduzione da assembler a linguaggio macchina può essere fatta dal calcolatore, mediante un assemblatore Programma P in Assembler Traduttore assembler su macchina M Programma P’ in linguaggio macchina M
Software di base: Linguaggi di Programmazione Il linguaggio assembler però produce comunque programmi lunghi e non portabili Per superare queste difficoltà` sono nati i linguaggi di programmazione ad alto livello astraggono dalle caratteristiche hardware sono facile da usare sono portabili pero` non producono programmi direttamente eseguibili e necessitano di una traduzione
Software di base: Linguaggi di Programmazione Un linguaggio di programmazione ad alto livello L definisce una macchina virtuale; per poter eseguire su una macchina fisica M un programma scritto nel linguaggio L occorre tradurlo nel linguaggio macchina di M Il meccanismo di traduzione permette di astrarre dalle caratteristiche fisiche della macchina hardware, per cui programmi scritti nello stesso linguaggio possono essere eseguiti su macchine diverse Portabilita`
Software di base: Linguaggi di Programmazione Esistono due diverse tecniche di traduzione per programmi scritti in linguaggio di alto livello: Compilazione: il programma P scritto nel linguaggio L viene tradotto in un programma equivalente P’ scritto nel linguaggio macchina, che viene poi eseguito Interpretazione: sulla macchina M viene mandato in esecuzione un programma interprete che per ogni istruzione del programma P genera la sequenza corrispondente di istruzioni macchina e le fa eseguire
COMPILAZIONE es. PASCAL, C, FORTRAN, COBOL . . .
INTERPRETAZIONE es. : LISP, PROLOG, BASIC . . .
Software di base: Linguaggi di Programmazione Ogni linguaggio di programmazione fornisce un insieme di costrutti base per: definire i dati su cui il programma opera specificare le azioni elementari da eseguire sui dati comporre istruzioni elementari in: sequenze blocchi condizionali blocchi che devono essere ripetuti interagire con l’utente per l’acquisizione di dati (input) la produzione di dati (output)