Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni JavaScript Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
Linguaggio naturale Il linguaggio è un meccanismo di comunicazione il cui tramite è il testo o il discorso. La comunicazione tra uomini avviene tramite il Linguaggio Naturale Le caratteristiche del Linguaggio Naturale: Vantaggi Ricchezza espressiva Svantaggi Ambiguità (la stessa frase ha più significati) Ridondanza (inutili ripetizioni di termini e concetti)
Linguaggio macchina L’hardware di un calcolatore esegue programmi scritti nel (proprio) Linguaggio Macchina Le caratteristiche del Linguaggio Macchina: Vantaggi Molto elementare (usa l’alfabeto binario: 0 e 1) legato alla struttura fisica dell’elaboratore Potente e veloce Svantaggi Programmi lunghi e di difficile scrittura Difficile gestione da parte del programmatore
Linguaggi di programmazione Un linguaggi di programmazione è un linguaggio intermedio fra il linguaggio macchina e il linguaggio naturale Descrive gli algoritmi con una ricchezza espressiva comparabile con quella dei linguaggi naturali Descrive gli algoritmi in modo rigoroso (è un linguaggio formale dotato di una sintassi ben definita).
Linguaggi di programmazione
Algoritmi L’algoritmo è una sequenza logica di istruzioni elementari (univocamente interpretabili) che, eseguite in un ordine stabilito, permettono la soluzione di un problema in un numero finito di passi Il termine algoritmo nasce in contesti matematici (è una deformazione del nome del matematico persiano del IX secolo Al-Kuwarizmi) ed è stata più recentemente introdotto in informatica.
Algoritmi Dalla definizione di algoritmo si evincono le quattro proprietà fondamentali dell'algoritmo: la sequenza di istruzioni deve essere finita (numero finito di passi); essa deve portare ad un risultato (permettono la soluzione di un problema); le istruzioni devono essere eseguibili materialmente (una sequenza logica di istruzioni elementari eseguite); le istruzioni devono essere espresse in modo non ambiguo (univocamente interpretabili) .
Linguaggi di alto livello e basso livello Dal modo in cui le istruzioni di un linguaggio di programmazione sono codificate, vi è una prima distinzione tra linguaggi di programmazione: linguaggi non evoluti o di basso livello (linguaggio macchina, linguaggi assemblativi) linguaggi più vicini al funzionamento fisico del processore linguaggi evoluti o di alto livello linguaggi ‘più vicini’ al linguaggio naturale, orientati alle soluzioni dei problemi e svincolati dal processore.
Uso dei linguaggi di programmazione
Traduttori Il linguaggio macchina è l’unico linguaggio compreso dall’elaboratore Qualsiasi altro linguaggio di programmazione ha bisogno di un traduttore (non è possibile progettare un traduttore per i linguaggi naturali) I linguaggi di programmazione sono comprensibili sia dalla macchina (attraverso un traduttore) che dall’uomo.
Compilare, interpretare I programmi scritti in un linguaggio ad alto livello consistono in istruzioni scritte in un file di testo (detto programma sorgente) Per essere eseguiti dal calcolatore, i programmi debbono essere tradotti in programmi in linguaggio macchina (programma oggetto) A fare questo, in modo automatico, ci pensa un altro programma, detto compilatore o interprete Con questa idea (anni ‘50) i linguaggi di programmazione ad alto livello diventarono sempre più "facili" da utilizzare per il programmatore umano
Schema della compilazione Il compilatore riceve il programma sorgente e produce il file oggetto. Il programma linker collega più moduli oggetto (librerie) prodotti dal compilatore in un unico programma eseguibile (file exe)
Schema di un interprete Il programma interprete legge una singola frase (istruzione) in linguaggio sorgente, la trasforma in una sequenza di istruzioni macchina e le manda in esecuzione Traduzione e esecuzione sono contestuali.