Java Script Lezione 1 Linguaggi di programmazione Algoritmi













- Slides: 13
Java. Script 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.