Linguaggi di alto livello, compilatori e interpreti

Documenti analoghi
Il calcolatore. Architettura di un calcolatore (Hardware)

FONDAMENTI DI INFORMATICA

COMPILAZIONE. Tarsformazione di linguaggi

Fondamenti di Programmazione

Le aree dell informatica

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro

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

Sistemi Web per il turismo - lezione 3 -

Le sue caratteristiche:

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

Elementi di programmazione Algoritmi Flow Chart, Fasi della programmazione Linguaggi Elementi di programmazione ad oggetti

COSTRUZIONE DI UN APPLICAZIONE

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.

Ingegneria del Software

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

INTRODUZIONE ALLE BASI DATI RELAZIONALI

Gestione delle eccezioni in Java

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

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre Negli esercizi proposti si utilizzano le seguenti classi:

Files in C++ Fondamenti di Informatica. R. Basili. a.a

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

Tecnologie dei Sistemi di Automazione e Controllo

L architettura del calcolatore (Prima parte)

Introduzione alle macchine a stati (non definitivo)

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

Caratteristiche di un PC

Informatica Teorica. Macchine a registri

Linguaggi e Paradigmi di Programmazione

Corso di Fondamenti di Informatica e Laboratorio ato o T-AB

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

FONDAMENTI DI INFORMATICA

E una notazione per descrivere gli algoritmi.

Corso di INFORMATICA 2 (Matematica e Applicazioni)

Linguaggi di programmazione

Sorgenti, Binari e Pacchetti (Compilazione e pacchettizzazione per GNU/Linux)

Il Modello di von Neumann (2) Prevede 3 entità logiche:

PIANO DI LAVORO. a.s / 2016

Manuale Operativo Gestione dei Ticket di assistenza 15 Marzo 2016

OCSE-PISA 2009 Programme for International Student Assessment

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

AE RZT QSO RKPT SQZC

Javascript e CSS nelle pagine WEB

Fondamenti Teorici. Antonio Pescapè e Marcello Esposito Parte Seconda v2.0

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

PG5 Starter Training Applicazione File System Daniel Ernst EN Stefano Peracchi IT

Progettazione di Algoritmi

Programmazione Orientata agli Oggetti in Linguaggio Java

Ingegneria del Software 1: Eclipse

UNIWEB- GUIDA STUDENTE INSERIMENTO PIANO DEGLI STUDI ON LINE

PROGETTAZIONE DISCIPLINARE MATEMATICA classe 2^

GUIDA ALLA COMPILAZIONE DEL FLUSSO MONITORAGGIO ECONOMICO FINANZIARIO DEI PIANI DI ZONA TRIENNIO

Centralina di Controllo Elettropompe

EcoRemote SISTEMA DI GESTIONE DI UNA STAZIONE DI MONITORAGGIO DELLA QUALITÀ DELL ARIA. Ingegneria dei sistemi

Programmazione Dichiarativa. Programmazione Logica. SICStus PROLOG PROLOG. Bob Kowalski: "Algoritmo = Logica + Controllo"

I database. Introduzione alla teoria delle basi di dati

PowerDIP Software gestione presenze del personale aziendale. - Guida all inserimento e gestione dei turni di lavoro -

Introduzione ai linguaggi di programmazione

Algebra di Boole Algebra di Boole

2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

Gestione Multilingua

Cartello informativo e altre informazioni utili da affiggere all esterno dei laboratori e delle altre aree/locali a rischio specifico

L'informatica nella Protezione Integrata delle Colture. Utilizzo dell informatica in agricoltura

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica

Elaborato di Fondamenti di Informatica 2007/08. Claudio Guidi

Modulo 2 Data Base - Modello Relazionale

Protocollo dei saperi imprescindibili Ordine di scuola: professionale

Progetto DSA: Guida al metodo di studio

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Marco Manna 1

INFO DAY. procedimenti innovativi in corso. 27 marzo 2015 Sala Sirica

Lezione 1 Introduzione alla programmazione ad oggetti

La codifica. dell informazione

Di seguito i quesiti sugli elementi diritto pubblico con le risposte esatte contraddistinte dall'asterisco e di lato segnato il peso della domanda

PROCEDURA DI INSTALLAZIONE E ATTIVAZIONE DI DARWEB PRO versione 1.0

Webinar. Una ipotesi di Piano di sviluppo culturale: la segmentazione della domanda dei visitatori

Modulo: Elementi di Informatica

Linguaggio C Compilazione, linking e preprocessor

SCHEDA DI VALUTAZIONE DELLE COMPETENZE. Tecnico Professionali Specifiche

Procedura operativa per la gestione della funzione di formazione classi prime

Aniello Murano Breve Presentazione del corso

Ministero della Salute

PERCORSO DI TECNICO DEI SERVIZI DI ANIMAZIONE TURISTICO SPORTIVA IeFP - ISIS MAMOLI BERGAMO

FAQ RISPOSTE A DOMANDE FREQUENTI

Input/output in C e in C++

Cosa è importante: pom.xml Goal Plug-in Repository

3.1 Modello di programmazione modulare

Il comando provoca il salvataggio dello stato e la terminazione dell esecuzione.

La Macchina Virtuale


Corso di Informatica

Algoritmi e basi del C

ECDL CORE 5.0. Modulo 1 Concetti di base dell ICT 1.6 Aspetti giuridici. Docente: Stefania De Martino Liceo G. Leopardi Recanati a.s.

DESCRIZIONE CREAZIONE APP Si suddivide in 4 fasi di lavoro: 1. PIANIFICAZIONE; 2. PROGETTAZIONE; 3. SVILUPPO; 4. DISTRIBUZIONE.

Fondamenti di Informatica 7. Linguaggi di programmazione

PROTOCOLLO di COMUNICAZIONE 118

WINDOWS Avviare Windows95. Avviare Windows95 non è un problema: parte. automaticamente all accensione del computer. 2. Barra delle applicazioni

SQL Server Architettura Client-Server. SQL Server Introduzione all uso di SQL Server Dutto Riccardo.

Centrale M-Bus. Impiego. Funzioni. Maggio 1996

Elementi di Informatica e Programmazione. # Memoria di massa. Problema: comprare un PC. Architettura del calcolatore. Architettura di Von Neumann

Transcript:

Linguaggi di alto livello, compilatori e interpreti Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin

Limiti del linguaggio assembler Esempio: gestione e ordinamento di una rubrica telefonica istruzioni dati MEMORIA 0101011110011001 1101011110011111 0111000000011001 1101011100011101 0110011110011001 0101000111011000 1010011110011001 0101111110000000 0101010010011001 0111000000011001 0101000111011000 0101111110000000 0101000111011000 0101110111011000 Ciclo: add $r1, $r1, $r1 sub $r1, $r1, 1 beq $r1, $zero, ciclo Programma monolitico (no funzioni/moduli) Strutture di controllo: solo salti (condiz/incond) Dati elementari (numeri interi / virgola mobile) Elementi di Informatica e Programmazione Università di Brescia 2

Linguaggi di programmazione di alto livello Permettono di specificare gli algoritmi con un linguaggio: - sempre preciso (termini linguistici di significato preciso e univoco) - però più astratto rispetto al linguaggio macchina ciascuna istruzione di un linguaggio di alto livello corrisponde a più istruzioni macchina Vantaggi principali: - consentono lo sviluppo di sistemi complessi - gli errori commessi sono inferiori - il codice è più facile da mantenere - indipendenza dalla macchina Sviluppo storico: da specializzazione a orientamento alla metodologia Elementi di Informatica e Programmazione Università di Brescia 3

PARADIGMI DI PROGRAMMAZIONE L insieme delle caratteristiche che determina il modo di affrontare il progetto e la codifica di un programma, lo stile di programmazione Imperativo Pascal, Cobol, C - Ad oggetti C++, Java, VisualBasic, Funzionale Lisp, APL, Haskell CLOS Logico Prolog Prolog++ Elementi di Informatica e Programmazione Università di Brescia 4

IL PARADIGMA IMPERATIVO (1) Ruolo e dimensioni dell astrazione: Astrazione sui dati Tipi di dati predefiniti e definiti dal programmatore (vs. codici binari) Astrazione sul controllo Condizionali e cicli (vs. istruz di salto condiz/incondiz) Astrazione procedurale Funzioni (in C) (scarso supporto da ling. macchina) Elementi di Informatica e Programmazione Università di Brescia 5

IL PARADIGMA IMPERATIVO (2) Tre tipologie di istruzioni: Istruzioni di ingresso/uscita Istruzioni aritmetico-logiche Ruolo centrale: assegnamento Istruzioni di controllo NB: le stesse del linguaggio macchina! Idea di base: esecuzione sequenza di istruzioni una per una Istruzione 1 Istruzione 2 Effetto sulle variabili I/O flusso Istruzione 3 Elementi di Informatica e Programmazione Università di Brescia 6

ALTRI PARADIGMI (cenni) Imperativo Pascal, Cobol, C - Ad oggetti C++, Java, VisualBasic, Funzionale Lisp, APL, Haskell CLOS Logico Prolog Prolog++ Elementi di Informatica e Programmazione Università di Brescia 7

PROBLEMA: IL CALCOLATORE NON E IN GRADO DI COMPRENDERE DIRETTAMENTE UN LINGUAGGIO AD ALTO LIVELLO Un programma scritto in linguaggio di alto livello per essere eseguito deve essere tradotto in linguaggio macchina Due modi: mediante un compilatore mediante un interprete Elementi di Informatica e Programmazione Università di Brescia 8

COMPILATORE E INTERPRETE NB: sottintesi preprocessore e linker programma sorgente P linguaggio di alto livello L Compilatore P comp segnalazione di errori Programma eseguibile linguaggio macchina programma sorgente P dati linguaggio di alto livello L Interprete P int segnalazione di errori risultati Elementi di Informatica e Programmazione Università di Brescia 9

Spiegazione lucido precedente (1): eseguire un programma scritto in un linguaggio compilato Il programma P scritto in linguaggio L viene dato in ingresso a un programma P Comp P Comp è il programma compilatore del linguaggio L (ad esempio il programma compilatore del C) L esecuzione da parte di un calcolatore di P Comp su P (dove P è il dato di ingresso) produce P exe è PRIMA FASE L esecuzione da parte di un calcolatore di P exe su dei dati iniziali produce dei risultati finali è SECONDA FASE Elementi di Informatica e Programmazione Università di Brescia 10

Spiegazione lucido precedente (2): eseguire un programma scritto in un linguaggio interpretato Il programma P scritto in linguaggio L viene dato in ingresso a un programma P Int P Int è il programma interprete del linguaggio L (ad esempio il programma interprete del Basic) L esecuzione da parte di un calcolatore di P Int su P con i dati in ingresso di P produce i risultati finali Elementi di Informatica e Programmazione Università di Brescia 11

ESEMPIO: C e ASSEMBLER V B C * D C C * 2 A = B F main() /* C */ { int A, B, C, D; if (A = = B) { B = C * D; C = C * 2; } } // A, B, C, D costanti // $r0 è 0 lw $r1, $r0, A lw $r2, $r0, B lw $r3, $r0, C lw $r4, $r0, D bne $r1, $r2, CONT mul $r2, $r3, $r4 sw $r2, $r0, B add $r3, $r3, $r3 sw $r3, $r0, C CONT: Elementi di Informatica e Programmazione Università di Brescia 12

Confronto fra compilatori e interpreti PRO COMPILATORI: VELOCITA DI ESECUZIONE - nella compilazione: processi di ottimizzazione dell eseguibile PRO INTERPRETI: MESSA A PUNTO DEL PROGRAMMA - gli interpreti permettono di correggere gli errori non appena scoperti, senza necessità di ricompilare il programma - possono anche dare indicazioni più precise sugli errori PRO INTERPRETI: PORTABILITA Elementi di Informatica e Programmazione Università di Brescia 13

Compilatore, sistema operativo, hardware programma sorgente Dati COMPILATORE P exe chiamate di sistema SISTEMA OPERATIVO instruction set HARDWARE Elementi di Informatica e Programmazione Università di Brescia 14

Interprete, sistema operativo, hardware programma sorgente Dati INTERPRETE chiamate di sistema SISTEMA OPERATIVO instruction set HARDWARE Elementi di Informatica e Programmazione Università di Brescia 15

Portabilità Portabilità: possibilità di utilizzare un programma su piattaforme hardware/software diverse da quella dove è stato sviluppato Tre modalità: portabilità del file eseguibile: richiede calcolatori con hardware e sistema operativo dello stesso tipo per il quale è stato compilato. Semplice ma restrittivo. COMPIL. INTERP. portabilità tramite ricompilazione: richiede l esistenza di un compilatore e di librerie per la nuova piattaforma e lo svolgimento della ricompilazione. Non fattibile dall utente medio. portabilità tramite interpretazione: richiede l esistenza di un interprete per la nuova piattaforma. Semplice (purché l interprete sia già installato) e non restrittivo. Elementi di Informatica e Programmazione Università di Brescia 16