Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Documenti analoghi
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Traduzione ed esecuzione di programmi. Dispensa 08

Strumenti per la programmazione

Esecuzione di Programmi Esercitazione

Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java

Corso sul linguaggio Java

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

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1

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

Laboratorio di Programmazione Laurea in Bioinformatica

Introduzione alla programmazione

Strumenti per la programmazione

AMBIENTI DI PROGRAMMAZIONE

Corso sul linguaggio Java

Le basi del linguaggio Java

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia

Introduzione alla programmazione. Walter Didimo

Traduzione e interpretazione

10: I LINGUAGGI di PROGRAMMAZIONE PARTE 1

la traduzione dei programmi ed introduzione a Java

A. Ferrari. informatica. introduzione a Java. Alberto Ferrari Informatica

LINGUAGGI DI ALTO LIVELLO

Corso sul linguaggio Java

Informatica 1. 4 Programmazione e Sviluppo del software. ing. Luigi Puzone

Strumenti Java. Fondamenti di informatica L-B A.A Alessandra Toninelli

Programmazione I - corso B a.a prof. Viviana Bono

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica

PROBLEMI E ALGORITMI

Introduzione a Java A. FERRARI

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Introduzione al corso. Obiettivo del corso

Corso di Architettura degli Elaboratori

Sommario FONDAMENTI DI INFORMATICA. Definizione formale di algoritmo. Informatica e algoritmi. ALGORITMI E LINGUAGGIO PYTHON Introduzione

Linguaggi di Programmazione

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

Linguaggi di alto livello. Barriera di astrazione. Pascal. Cobol. Fortran. Basic. Modula-2. Lisp. Simula67 Scheme. Smalltalk C++ Prolog AN

INFORMATICA. L informatica comprende:

Lezione 16. Il Software di base

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

Istallazione di Java - Uso delle librerie

Capitolo 1. Introduzione. Cay S. Horstmann Concetti di informatica e fondamenti di Java

Concetti Introduttivi

Informatica Problema Algoritmo Programma

Linguaggi di programmazione

Il Software programmabili programma algoritmo

Il software: dall algoritmo al linguaggio macchina

Eclipse e SDK. Capiamo che sistema operativo abbiamo

Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica

Linguaggi di programmazione

Un semplice programma L ambiente di sviluppo Dev-C++ Codifica del programma Compilazione e correzione errori Esecuzione e verifica

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 11. Leggibilità. Aprile Leggibilita 1

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

AMBIENTI DI PROGRAMMAZIONE

Linguaggi di Programmazione

LINGUAGGI DI ALTO LIVELLO

Primo programma in C

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

Programmazione. Andrea Passerini Informatica. Programmazione

Iniziare a programmare in C++

Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java

Programmazione. Andrea Passerini Informatica. Programmazione

permette di utilizzare lo stesso programma su CPU diverse (con opportuni traduttori)

Linguaggi di programmazione

Guida all uso dell ambiente di sviluppo 1 integrato o IDE JCreator LE

Introduzione al Linguaggio C ed all IDE DEV-C++

Introduzione alla Programmazione. Giselda De Vita

Linguaggi di alto livello, compilatori e interpreti

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Java: un linguaggio per applicazioni di rete

Linguaggi e traduttori

Marco Tarini - Università dell'insubria A.A. 2016/17. Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate

Linguaggi di Programmazione e Paradigmi. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Introduzione ai linguaggi di programmazione

Ambienti di Sviluppo. Linguaggi compilati

Linguaggi di Programmazione

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

Lezione 2 Introduzione a Java (2)

Elementi di programmazione

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

I linguaggi. Informatica

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori

Unità di apprendimento 6. Il software: dal linguaggio alla applicazione

Introduzione all uso degli oggetti in Java (parte I) Walter Didimo

Università degli Studi della Calabria

Corso di Linguaggi di Programmazione + Laboratorio

Programmazione Orientata agli Oggetti in Linguaggio Java

Introduzione al Sistema Operativo MS-Windows ed all Uso dell IDE DEV-C++

Linguaggi, Traduttori e le Basi della Programmazione

Linguaggi, compilatori e interpreti

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Java SE 7. Introduzione.

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

Appunti di SISTEMI OPERATIVI

Transcript:

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Capitolo 4 Traduzione ed esecuzione di programmi Ottobre 2006 Traduzione ed esecuzione di programmi 1

Nota bene Alcune parti del presente materiale didattico sono derivate da: trasparenze per il corso di Laboratorio di Informatica A.A. 2005-2006 prodotte da Alfonso Miola L utilizzo di questo materiale è stato consentito dall autore Traduzione ed esecuzione di programmi 2

Contenuti Traduzione ed esecuzione di programmi Compilatori ed interpreti L approccio misto di Java L uso di ambienti di sviluppo integrati (IDE) Traduzione ed esecuzione di programmi 3

Calcolatori e programmazione Un calcolatore è una macchina per eseguire programmi qualcuno ha già fatto per noi alcuni programmi che possiamo eseguire così come facciamo con ogni applicazione Un calcolatore è anche una macchina programmabile, ossia una macchina le cui potenzialità possono essere aumentate da noi con la scrittura di nuovi programmi per far questo dobbiamo far uso di opportuni linguaggi di programmazione che ci permettono di esprimere nel modo più naturale le nostre esigenze di calcolo Traduzione ed esecuzione di programmi 4

Linguaggi di programmazione Ogni calcolatore ha un proprio linguaggio macchina ogni istruzione coincide con un istruzione di macchina e pertanto è un linguaggio binario o anche di linguaggi a basso livello Esistono linguaggi di programmazione che consentono di scrivere i programmi in termini di istruzioni vicine alla logica delle tecniche di risoluzione di problemi le istruzioni sono espresse mediante simboli e pertanto tali linguaggi sono anche detti linguaggi simbolici o linguaggi ad alto livello sono linguaggi simbolici anche i linguaggi assemblativi, in cui ad ogni istruzione del linguaggio corrispondono una o più (poche) istruzioni di macchina Traduzione ed esecuzione di programmi 5

Esecuzione dei programmi Il Calcolatore, in particolare il suo hardware, esegue solo programmi in linguaggio macchina Se un programma è in linguaggio macchina può essere quindi direttamente eseguibile tutte le applicazioni sono immediatamente eseguibili proprio per questo motivo Se un programma è in linguaggio simbolico non può essere eseguito immediatamente c è bisogno di un processo di traduzione che viene realizzato tramite opportune applicazioni già disponibili, e che sono quindi evidentemente in linguaggio macchina Traduzione ed esecuzione di programmi 6

Programmi in linguaggio macchina Un calcolatore è una macchina che ricevendo un programma in linguaggio macchina e i relativi dati in ingresso lo esegue producendo dati in uscita (i risultati dell elaborazione) durante questa esecuzione la macchina (hardware) diventa una macchina virtuale programma dati in ingresso (input) elaboratore (hardware) dati in uscita (output) Traduzione ed esecuzione di programmi 7

Compilazione e interpretazione Esistono due approcci alla traduzione ed esecuzione dei programmi compilazione un programma scritto in un linguaggio di programmazione di alto livello viene trasformato in un programma in linguaggio macchina e poi eseguito interpretazione ciascuna istruzione del programma scritto in un linguaggio di programmazione di alto livello viene trasformata in istruzioni del linguaggio macchina ed eseguita i traduttori del primo tipo sono chiamati effettivamente compilatori, quelli del secondo tipo sono chiamati interpreti Una analogia con la traduzione tra linguaggi diversi la compilazione è analoga alla traduzione di un libro l interpretazione è analoga alla traduzione simultanea Traduzione ed esecuzione di programmi 8

Compilazione Il calcolatore con un programma compilatore, ricevendo un programma sorgente in linguaggio simbolico esegue la traduzione producendo in uscita il corrispondente programma eseguibile in linguaggio macchina programma sorgente elaboratore (compilatore) programma eseguibile Traduzione ed esecuzione di programmi 9

Interpretazione Il calcolatore con un programma interprete, ricevendo un programma sorgente in linguaggio simbolico e i relativi dati in ingresso lo interpreta e lo esegue, istruzione dopo istruzione, producendo direttamente i dati in uscita programma simbolico dati in ingresso (input) elaboratore (interprete) dati in uscita (output) Traduzione ed esecuzione di programmi 10

Confronto tra compilazione ed interpretazione I linguaggi compilati prevedono la distribuzione di un file eseguibile (in linguaggio macchina) specifico per ogni piattaforma il file sorgente, che consentirebbe di modificare il programma, rimane di esclusiva pertinenza del programmatore I linguaggi interpretati prevedono la distribuzione diretta del file sorgente (che è il medesimo per tutte le piattaforme) su ogni piattaforma deve essere disponibile il programma interprete Traduzione ed esecuzione di programmi 11

Il linguaggio Java Java adotta una strategia mista il file sorgente contenente un programma Java viene prima compilato, generando un file in ByteCode il file in ByteCode è un file in linguaggio macchina per una macchina non esistente, detta macchina virtuale o Java Virtual Machine per essere eseguito il ByteCode viene interpretato su ogni piattaforma esistono programmi interpreti, che realizzano una Java Virtual Machine, per ogni piattaforma in questo modo il file sorgente non viene distribuito, mentre il file ByteCode distribuito è il medesimo per tutte le piattaforme Traduzione ed esecuzione di programmi 12

Compilazione di programmi Java Il calcolatore con un programma Compilatore Java, ricevendo un programma sorgente in linguaggio Java esegue la traduzione producendo in uscita il corrispondente programma in un linguaggio intermedio ByteCode programma sorgente Java elaboratore (compilatore java) programma ByteCode Traduzione ed esecuzione di programmi 13

Interpretazione di programmi in ByteCode Il calcolatore con un programma interprete Java Virtual Machine (JVM), ricevendo un programma ByteCode e i relativi dati in ingresso lo interpreta e lo esegue, istruzione dopo istruzione, producendo direttamente i dati in uscita programma ByteCode dati in ingresso (input) elaboratore (JVM) dati in uscita (output) Traduzione ed esecuzione di programmi 14

Riassumendo editing codice sorgente /* Applicazione che visualizza una frase sullo schermo. */ class ScrittoreSulloSchermo { public static void main(string[] args) { System.out.println("Questo corso"); System.out.println("introduce i concetti di"); System.out.println("base dell'informatica"); } } compilazione bytecode Java... getstatic #6 <Field java.io.printstream out>... interpretazione della JVM Questo corso introduce i concetti di base dell informatica Traduzione ed esecuzione di programmi 15

Che cosa fare in pratica esecuzione Per eseguire una applicazione si deve usare il comando java di Java 2 SDK per eseguire il comando java si deve specificare il nome della classe applicazione che si vuole eseguire una applicazione Java viene eseguita come segue viene inizializzata una macchina virtuale Java (JVM) la JVM costruisce l oggetto classe corrispondente alla classe applicazione la JVM invia il messaggio main(...) a questo oggetto classe Per eseguire l applicazione ScrittoreSulloSchermo è necessario eseguire il comando java ScrittoreSulloSchermo si osservi come il nome del metodo main non compare esplicitamente nel comando Traduzione ed esecuzione di programmi 16

Uso di Java 2 SDK La seguente figura mostra la compilazione ed esecuzione dell applicazione ScrittoreSulloSchermo nella finestra del prompt dei comandi di Windows si osservi che System.out corrisponde alla finestra in cui viene eseguita l applicazione Traduzione ed esecuzione di programmi 17

Ambienti integrati di sviluppo Un ambiente integrato di sviluppo (o IDE, che è l acronimo di Integrated Development Environment) è una applicazione che permette di editare, compilare ed eseguire programmi nell ambito di un unico ambiente Alcune funzionalità tipiche di un IDE Java sono le seguenti editor (integrato) guidato dalla sintassi sintassi evidenziata mediante colori aiuto in linea e sensibile al contesto editor visuale di interfacce grafiche (GUI) accesso al compilatore e alla macchina virtuale Java mediante menu e/o bottoni altri strumenti browser della documentazione debugger integrato gestore di progetti e classi Traduzione ed esecuzione di programmi 18

Ambienti integrati di sviluppo per Java Ci sono due tipologie di IDE per Java IDE dotati di una propria versione di Java SDK Borland JBuilder Foundation, http://www.borland.com/jbuilder/foundation/ Metrowerks CodeWarrior Microsoft Visual J++ Symantec Visual Café IDE che non sono dotati di una propria versione di Java SDK ma che ne richiedono una installazione separata Kawa (Allaire, Tek-Tools) http://www.allaire.com/products/kawa/ Forte for Java, Community Edition (Sun) http://www.sun.com/forte/ffj/ce/ TextPad (Helios Software Solutions) http://www.textpad.com diversamente dai precedenti, TextPad è un editor di testi arricchito con alcune funzionalità degli IDE Traduzione ed esecuzione di programmi 19

Rifermimenti al libro di testo Per lo studio di questi argomenti si fa riferimento al libro di testo, e in particolare al capitolo 4 (Strumenti per la programmazione) 4.1 Strumenti per la programmazione 4.1.1 Editing ed editor 4.1.2 Compilazione e compilatori 4.1.3 Esecuzione 4.1.4 Compilatori e interpreti 4.1.5 Compilazione ed esecuzione di programmi Java 4.1.6 Java 2 Software Development Kit 4.2 Che cosa fare in pratica 4.4 Ambienti integrati di sviluppo Traduzione ed esecuzione di programmi 20