Linguaggi di programmazione

Documenti analoghi
Introduzione. Informatica B. Daniele Loiacono

Elementi di programmazione

Introduzione. Informatica B. Daniele Loiacono

Informatica B (Docente Vittorio Zaccaria)

Linguaggi di Programmazione

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

Linguaggi, compilatori e interpreti

LINGUAGGI DI ALTO LIVELLO

Calcolatori Elettronici Parte VIII: linguaggi assemblativi

Lezione 16. Il Software di base

Linguaggi di Programmazione

C++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI

Informazioni Generali. Esercitazioni di Informatica

Esercitazioni di Informatica

Parte VII. Traduzione e Collegamento

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

COMPILAZIONE. Tarsformazione di linguaggi

Linguaggi di alto livello, compilatori e interpreti

I Linguaggi di Programmazione

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programmazione Procedurale in Linguaggio C++

Il linguaggio di programmazione Python

Introduzione alla programmazione. Walter Didimo

Unità Didattica 2 I Linguaggi di Programmazione

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Linguaggi di Programmazione

Lezione 15 Il Set di Istruzioni (1)

Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica

INTRODUZIONE ALLA PROGRAMMAZIONE

INFORMATICA. L informatica comprende:

Cosa è un programma. Informatica di Base -- R.Gaeta 18

Introduzione alla Programmazione. Giselda De Vita

Introduzione alla programmazione

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni

Programmazione C Massimo Callisto De Donato

Concetti di Base sulla Programmazione. Prof.Ing.S.Cavalieri

Primi passi col linguaggio C

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Transcript:

Linguaggi di programmazione Fondamenti di Informatica Daniele Loiacono

Ho definito un algoritmo e adesso? Daniele Loiacono

Dall algoritmo all esecuzione q Come deve essere formalizzato un algoritmo affinché sia comprensibile al calcolatore? q Il calcolatore è in grado di eseguire algoritmi (programmi) definiti in linguaggio macchina 0 0100 00000000 (READ) 1 0010 00100000 (STORE) 32 2 0001 00000000 (LOAD=) 0 3 0010 00100001 (STORE) 33 4 0000 00100000 (LOAD) 32 5 1100 00001101 (BEQ) 13 6 0100 00000000 (READ) 7 0110 00100001 (ADD) 33 8 0010 00100001 (STORE) 33 9 0000 00100000 (LOAD) 32 Daniele Loiacono

Come possiamo semplificarci la vita? Daniele Loiacono

I linguaggi di programmazione Il programmatore Esempio: Pseudo-codice alto C, C++, JAVA Il livello del linguaggio La macchina hardware basso Assembly Linguaggio Macchina Daniele Loiacono

Come definiamo un linguaggio di programmazione? Daniele Loiacono

Sintassi e Semantica q La sintassi definisce come si scrive il programma (forma e struttura) Esempio: <variabile> = <espressione> q La semantica definisce come si interpretano le istruzioni contenute nel programma (significato) Esempio: <variabile> = <espressione> calcola il valore dell espressione e assegna al contenuto della variabile il valore calcolato q Un programma sintatticamente corretto non è necessariamente corretto! q La sintassi può essere verificata automaticamente dal compilatore, la semantica no! Daniele Loiacono 7

E una volta che abbiamo scritto il programma? Daniele Loiacono

Compilare o Interpretare? q Come rendo comprensibili al calcolatore i programmi scritti in un linguaggio di programmazione (ad es. C, C++, Java)? q Due sono gli approcci maggiormente usati: Utilizzando un compilatore, un programma che traduce i programmi di alto livello in codice macchina Utilizzando un interprete, un programma che interpreta direttamente le istruzioni di alto livello e le esegue q Entrambi gli approcci offrono vantaggi e svantaggi Portabilità Efficienza Controlli Semplicità Daniele Loiacono 9

Daniele Loiacono Il C?

La catena di sviluppo in C q Il C è un linguaggio compilato q Possiamo individuare 5 passi per passare dalla definizione di un algoritmo ad un programma in esecuzione che lo implementa Scrittura Traduzione Collegamento Caricamento Esecuzione Daniele Loiacono

1. Scrittura q Il programma, costituito da una sequenza di caratteri, viene composto e modificato usando un qualsiasi editor q Così otteniamo un codice sorgente memorizzato in memoria di massa in un file di testo (es. XYZ.c) Daniele Loiacono 12

2. Traduzione q Il compilatore si occupa della traduzione dal linguaggio di alto livello al linguaggio macchina q Durante questa fase si riconoscono i simboli, le parole e i costrutti del linguaggio: eventuali messaggi diagnostici segnalano errori di sintassi q Viene generato il codice macchina in forma binaria : a partire dal codice sorgente si genera il codice oggetto, cioè in un file binario Daniele Loiacono 13

3. Collegamento (linking) q Il collegatore (linker) deve collegare fra loro il file oggetto ed altre librerie utilizzate (es. librerie di I/O) q Si rendono globalmente coerenti i riferimenti agli indirizzi dei vari elementi collegati q Si genera un programma eseguible, un file binario che contiene il codice macchina del programma eseguibile completo, di nome XYZ.exe q Messaggi di errore possono essere dovuti ad errori nel citare i nomi delle funzionalità di librerie esterne da collegare q Il programma sarà effettivamente eseguibile solo dopo che il contenuto del file sarà stato caricato nella memoria di lavoro (centrale) del calcolatore Daniele Loiacono 14

4. Caricamento (loading) q Il caricatore (loader) individua una porzione libera della memoria di lavoro e vi copia il contenuto del programma eseguibile Eventuali messaggi rivolti all utente possono segnalare che non c'è abbastanza spazio in memoria Daniele Loiacono 15

5. Esecuzione q Per eseguire il programma occorre fornire in ingresso i dati richiesti e in uscita riceveremo i risultati (su video o file o stampante) q Durante l esecuzione possono verificarsi degli errori (detti errori di run-time ), quali: calcoli con risultati scorretti (per esempio un overflow) calcoli impossibili (divisioni per zero, logaritmo di un numero negativo, radice quadrata di un numero negativo,.) errori nella concezione dell algoritmo (l algoritmo non risolve il problema dato) q Tutti gli esempi citati si riferiscono ai cosiddetti errori semantici Daniele Loiacono 16