Corso di Informatica



Documenti analoghi
COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

Introduzione. Informatica B. Daniele Loiacono

Programmi. Algoritmi scritti in un linguaggio di programmazione

Linguaggi e Paradigmi di Programmazione

Linguaggi di programmazione

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

Introduzione alla programmazione in C

Corso di Informatica

Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni

Corso di Informatica

Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

Dispensa di Informatica I.1

Codifica: dal diagramma a blocchi al linguaggio C++

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Introduzione a Dev-C++

La Macchina Virtuale

INFORMATICA 1 L. Mezzalira

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Approccio stratificato

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Fondamenti di Informatica Ingegneria Clinica Lezione 19/10/2009. Prof. Raffaele Nicolussi

Corso di PHP. Prerequisiti. 1 - Introduzione

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Ing. Paolo Domenici PREFAZIONE

Metodologie di programmazione in Fortran 90

Introduzione. Laboratorio di Calcolo Corso di Laurea in Fisica. Università degli Studi di Roma La Sapienza

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Strumenti per la programmazione

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Linguaggi di programmazione

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione. Facoltà di Ingegneria

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Problemi, Algoritmi e Programmi

LICEO DELLE SCIENZE APPLICATE

Architettura di un calcolatore

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Sistema operativo: Gestione della memoria

Che cosa è un VIRUS?

Fondamenti di Informatica. Allievi Automatici A.A Nozioni di Base

Appunti sulla Macchina di Turing. Macchina di Turing

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

HTML INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO

Compilare il primo programma. Primo programma in C. Esercizio Somma due numeri. Compilare il primo programma. Analisi. Analisi

TECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

Corso di Informatica

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Introduzione al data base

Richiami di informatica e programmazione

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Generazione Automatica di Asserzioni da Modelli di Specifica

FONDAMENTI di INFORMATICA L. Mezzalira

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Programmare in Java. Olga Scotti

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

Gestione della memoria centrale

Introduzione. Laboratorio di Calcolo Corso di Laurea in Fisica. Università degli Studi di Roma La Sapienza

1. BASI DI DATI: GENERALITÀ

Mac Application Manager 1.3 (SOLO PER TIGER)

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Office e Applicativi sw

Il computer: primi elementi

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Programmazione Orientata agli Oggetti in Linguaggio Java

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

IL SOFTWARE. Giada Agostinacchio Classe 2^ Beat ISIS G.Meroni Lissone Anno Scolastico 2007/2008

HTML il linguaggio per creare le pagine per il web

Informatica - A.A. 2010/11

Scienze della Comunicazione Università di Salerno. UD 3.2a: Introduzione alla Programmazione

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Laboratorio Matematico Informatico 2

Guida Compilazione Piani di Studio on-line

Capitolo 2. Operazione di limite

PROGRAMMAZIONE MODULARE DI INFORMATICA CLASSE QUINTA - INDIRIZZO MERCURIO SEZIONE TECNICO

23/02/2014. Dalla scorsa lezione. La Macchina di Von Neumann. Uomo come esecutore di algoritmi

MANUALE UTENTE Fiscali Free

Corso di Informatica Modulo T3 B1 Programmazione web

CPU. Maurizio Palesi

Data Base. Prof. Filippo TROTTA

Corso di INFORMATICA 2 (Matematica e Applicazioni)

NozionidiBase di Informatica

La Gestione delle risorse Renato Agati

Architettura hw. La memoria e la cpu

Corso di PHP. Prerequisiti. 1 - Introduzione

SOMMARIO... 3 INTRODUZIONE...

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Transcript:

Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1

Introduzione Una volta progettato un algoritmo codificato in un linguaggio di programmazione di alto livello caricato mediante un editor sul disco del computer non dobbiamo dimenticare che la macchina, comunque, è in grado di interpretare solo e soltanto il linguaggio binario. Perciò, ci poniamo le seguenti questioni: Il calcolatore comprende anche altri linguaggi oltre al binario? Che tipi di errore in genere vengono commessi nello scrivere un programma? 3 Compilatori ed Interpreti La possibilità di programmare con linguaggi orientati all uomo è consentita dalla esistenza di appositi programmi traduttori. I programmi di traduzione del programma sorgente in un programma eseguibile, possono essere classificati in due tipi, a seconda del loro modo di eseguire il processo di traduzione del programma sorgente: compilatori interpreti TRADUTTORI COMPILATORI INTERPRETI 4 2

Il compilatore Il compilatore è un programma che effettua le seguenti azioni sul programma scritto dal programmatore (programma sorgente): legge il programma sorgente, istruzione per istruzione; controlla (decodifica), istruzione per istruzione, segnalando la presenza di eventuali errori sintattici (che il programmatore dovrà correggere); riconosce il tipo di istruzione; traduce ciascuna istruzione (se il programma è privo di errori) creando il programma oggetto, un file su disco con estensione.obj (scritto in binario) 5 Il linker Nello scrivere il programma sorgente il programmatore ha soltanto utilizzato certe istruzioni (ad es. di lettura e di stampa) senza descriverne il funzionamento. E allora necessario che il programma oggetto creato sia completato con questi riferimenti mancanti che si trovano nelle librerie del compilatore. Ciò si ottiene mediante una seconda fase detta link. Il linker è un altro programma che svolge questa azione. Il linker esaminando il programma oggetto, crea il programma eseguibile che essendo scritto in linguaggio binario sarà direttamente interpretabile dalla macchina. 6 3

Compilazione e linking Schema completo del processo di compilazione linking La compilazione trasforma il programma sorgente in programma oggetto L operazione di link trasforma il programma oggetto in programma eseguibile Esempi di linguaggi tipicamente compilati sono: Pascal, C, C++, Fortran, COBOL, Java (parzialmente) 7 L interprete L interprete effettua le seguenti azioni istruzione per istruzione, man mano che le scriviamo, un pò come fanno gli interpreti simultanei nelle trasmissioni televisive o nelle interviste. legge il programma sorgente, istruzione per istruzione; controlla (decodifica) ciascuna istruzione (in caso di errori sintattici, la traduzione si blocca e il programmatore deve provvedere alla correzione e lanciare daccapo l interprete); preleva dalla memoria i dati richiesti dall istruzione; riconosce il tipo di istruzione; esegue l istruzione. Esempi di linguaggi tipicamente interpretati sono: PHP, sql, HTML 8 4

Confronto Compilatori/Interpreti Tra i compilatori e gli interpreti esistono ovviamente differenze che comportano vantaggi e svantaggi rispettivi. Presenza in RAM con il programma Velocità di esecuzione del programma Interattività File eseguibile Segretezza del codice Rieseguibile senza tradurre di nuovo Facilità nel collaudo Compilatori ALTA Interpreti BASSA 9 Errori di programmazione Così come nel parlare o nello scrivere si possono commettere errori, così nel programmare possiamo incorrere in: errori sintattici errori logici errori a tempo di esecuzione 10 5

Errori sintattici Gli errori sintattici: consistono in una errata scrittura di un istruzione o di una parola chiave (errore lessicale) rispetto alla sintassi prevista vengono rilevati al momento della traduzione sono segnalati dal compilatore o dall interprete, che indica anche il punto in cui si sono verificati devono essere corretti dal programmatore, intervenendo sul listato del programma per poi rieseguire il processo di compilazione. 11 Errori logici Gli errori logici: sono errori di logica commessi a livello di analisi del problema e riguardano il procedimento risolutivo realizzato. In particolare, sono errori di interpretazione dell istruzione al momento della sua esecuzione vengono rilevati al momento della esecuzione del programma devono essere corretti dal programmatore intervenendo sul procedimento risolutivo del problema in esame. 12 6

Errori a tempo di esecuzione Gli errori a tempo di esecuzione (run time errors) si possono manifestare in diversi modi: il programma si blocca: l errore ha causato un blocco della CPU a causa di un operazione non permessa (ad esempio una divisione per 0); il programma va in loop infinito: la CPU continua ad eseguire senza fine un certo blocco di istruzioni. Il programmatore deve bloccare dall esterno l esecuzione del programma 13 Rilevamento degli errori Mentre gli errori sintattici vengono rilevati dal traduttore, gli errori logici e quelli run time possono essere rilevati mediante un programma di utilità detto debugger, che consente di: eseguire il programma step-by-step, ossia un istruzione alla volta, in modo che il programmatore possa esaminare in quale punto si verifica l errore. esaminare, uno ad uno, il contenuto di variabili desiderate, per vedere in quali punti l esecuzione si discosta da quella attesa. 14 7

Gli avvertimenti (warning) Altri messaggi che possono dari i traduttori riguardano punti critici del programma sorgente; non sono propriamente errori, ma avvertimenti (dette warning); tant è vero che la traduzione viene completata ugualmente; tuttavia, è sempre buona cosa evitare anche la presenza di warning nel programma! 15 Moderni linguaggi di programmazione I moderni linguaggi di programmazione, tutti ormai orientati all uomo, hanno costituito la terza generazione di linguaggi (la prima era stato il linguaggio binario e la seconda l assembly). Tra essi, ricordiamo: C Linguaggio procedurale per scopi generali, usato per realizzare sistemi operativi, software di base vario, software di controllo industriale e per la realizzazione di basi di dati C++ - Linguaggio C nella versione ad oggetti Java Linguaggi ad oggetti oggi molto diffuso nell ambito delle architetture client/server per la programmazione in rete HTML Linguaggio dichiarativo interpretato oggi molto usato nell ambito Web, per la costruzione di pagine omonime. Richiede la presenza di un browser per la sua interpretazione Cobol Linguaggio procedurale per scopi gestionali e aziendali, ancora molto usato specialmente in banche e aziende. 16 8

Moderni linguaggi di programmazione Vi sono poi linguaggi ad altissimo livello (Ultra High Level Language, UHLL) appartenenti alla quarta generazione di linguaggi, tra cui: Fogli elettronici, per la gestione tabellare di grandi quantità di dati di vario tipo DBMS, linguaggi per le gestione di basi di dati, anche in rete, che consentono la manipolazione di grandi masse dati anche attraverso reti telematiche Infine i linguaggi di quinta generazione, usati nell ambito dell Intelligenza Artificiale (I.A.) per la costruzione di sistemi esperti, riconoscimento vocale, autoapprendimento anche a distanza, diagnosi dei guasti, diagnosi medica. 17 Argomenti Compilatori e interpreti Rilevamento degli errori Il compilatore Gli avvertimenti (warning) Il linker Moderni linguaggi di programmazione Compilazione e linking L interprete Confronto Compilatori/Interpreti Errori di programmazione Errori sintattici Errori logici Errori a tempo di esecuzione 18 9

Altre fonti di informazione P.Gallo, F.Salerno Informatica Generale 1, ed. Minerva Italica G.Callegarin Corso di Informatica 1, ed. CEDAM 19 10