Introduzione a Java Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni Linguaggi di programmazione Ogni programma viene scritto utilizzando un linguaggio specializzato, formale e ―comprensibile‖da parte di un calcolatore, chiamato linguaggio di programmazione Un linguaggio di programmazione: • stabilisce un insieme di regole grammaticali che deve essere rispettato nella scrittura di un programma — sintassi • stabilisce il significato del programma , ovvero la sequenza di azioni che deve essere eseguita dal calcolatore durante l’esecuzione del programma — semantica Prof. Francesco Accarino Introduzione a Java 2 Tipi di linguaggi di Programmazione Linguaggio macchina • sequenze di cifre binarie • unico linguaggio comprensibile direttamente da un calcolatore • calcolatori diversi hanno linguaggi macchina diversi • difficile da comprendere per un essere umano Linguaggio assemblativo • mnemonico per un linguaggio macchina • di basso livello — c’èuna corrispondenza uno a uno tra le istruzioni di un linguaggio assemblativo e le istruzioni del corrispondente linguaggio macchina Linguaggi di programmazione di alto livello • COBOL, FORTRAN, LISP, C, C++, Java, ... • di alto livello —a ogni istruzione corrispondono molte istruzioni del linguaggio macchina • facile da leggere e da comprendere Prof. Francesco Accarino Introduzione a Java 3 Traduttori Un traduttore è un software che traduce un programma scritto in un linguaggio di alto livello in un equivalente programma in linguaggio macchina. Esistono due tipi di traduttori: • compilatori : traducono per intero il programma di alto livello in un programma equivalente in linguaggio macchina il programma così tradotto potrà essere eseguito direttamente dal calcolatore, senza che intervengano altri passi di traduzione compilatori • interpreti : traducono ciascuna istruzione del programma di alto livello in una sequenza di istruzioni del linguaggio macchina, che viene subito eseguita; si crea alternanza tra traduzione ed esecuzione (l’esecuzione procede più lentamente) interpreti Prof. Francesco Accarino Introduzione a Java 4 Forme di un programma editing codice sorgente /* un semplice programma in C */ void main(){ printf(“Ciao Mondo!”);} Compilazione Codice Oggetto …. a0 00 ff 3a 62 b5 7c 99 …. Linguaggio di Alto livello Codice Eseguibile Esecuzione Ciao Mondo! Prof. Francesco Accarino Introduzione a Java 5 Approccio tradizionale all’esecuzione dei programmi La compilazione e l’esecuzione sono dipendenti dall’ambiente hardware e software (piattaforma ) piattaforma Esiste un compilatore diverso per ciascun linguaggio di programmazione e ciascuna piattaforma – l’eseguibile prodotto da un tale compilatore può essere eseguito solo nello stesso ambiente hardware-software Prof. Francesco Accarino Introduzione a Java 6 Paradigmi di programmazione Esistono diversi approcci alla programmazione, chiamati paradigmi di programmazione –un paradigma di programmazione caratterizza la struttura di un programma ed il modo in cui vengono comandate le azioni al calcolatore Fino a qualche al 1995 i linguaggi di programmazione più diffusi si ispiravano a paradigmi imperativi – i programmi apparivano come una sequenza di istruzioni (imperative) che venivano eseguite in modo sequenziale int somma = 0; printf (“questo è un esempio che calcola la somma dei primi 10 naturali”); for (int i=1; i <= 10; i++) somma = somma + i; printf (“risultato = %d”, somma); Prof. Francesco Accarino Introduzione a Java 7 Paradigma ad oggetti Il paradigma di programmazione ad oggetti nasce dall’esigenza di creare software complessi e di grandi dimensioni • il programma si compone di oggetti che modellano la realtà di interesse – ogni oggetto sa fare delle cose • gli oggetti interagiscono, scambiandosi messaggi • il programmatore definisce: • gli oggetti che formano il programma • cosa ogni oggetto sa fare • come e quando gli oggetti interagiscono Prof. Francesco Accarino Introduzione a Java 8 Noi Utilizzeremo il linguaggio java 1001 0110 110.. Prof. Francesco Accarino Introduzione a Java 9 La java virtual machine • L’esecuzione di un programma Java consiste nell’interpretazione del bytecode. Operazione svolta dalla JVM(Java Virtual Machine). • La JVM è un programma che interpreta il bytecode, cioè ogni singola istruzione espressa in bytecode: – prima viene tradotta in linguaggio macchina – poi viene eseguita dalla CPU • Il complesso JVM e CPU esternamente appare come una macchina virtuale che elabora istruzioni espresse in bytecode. Prof. Francesco Accarino Introduzione a Java 10 Utilità della JVM •Il byte code alla stregua del codice sorgente è estremamente portatile(non dipende dalla piattaforma), ma viene interpretato più rapidamente. •La JVM dipende dalla piattaformadipende piattaforma. Prof. Francesco Accarino Introduzione a Java 11 Editing di un programma Java • Tutto il codice sorgente viene scritto in file con formato testuale (plain text file file) aventi estensione ―.java ‖. • Il nome di ogni file deve coincidere con il nome della classe definita al suo interno. • Es.: il codice sorgente della classe HelloWorld va salvato sul file HelloWorld.java . Prof. Francesco Accarino Introduzione a Java 12 Compilazione di un programma Java • I file sorgenti vengono compilati in file ―.class ‖ contenenti il corrispondente bytecode. • Il compilatore viene lanciato con il comando ―javac ‖ seguito dal nome del file sorgente che si desidera compilare includendo l’estensione―.java ‖. • Es.: Il file HelloWorld.java .viene compilato con l’istruzione ―javac HelloWorld.java ‖, l’output del processo di compilazione è il file HelloWorld.class. Prof. Francesco Accarino Introduzione a Java 13 Esecuzione di un programma Java Il bytecodeviene interpretato ed eseguito dalla JVM La JVM viene lanciata con il comando ―java‖ seguito dal nome della classe contenente il metodo main (cioè del file ―.class‖ contenente il bytecode da cui dovrà iniziare l’esecuzione del programma). Es.: il programma HelloWorld viene eseguito con l’istruzione ―java HelloWorld‖. Prof. Francesco Accarino Introduzione a Java 14 Sviluppo di un programma in java Java Development Kit (JDK). Per sviluppare un programma Java è necessario assicurarsi che sia installato il JDK nel proprio calcolatore. Il JDK è un tool per lo sviluppo di programmi Java comprensivo di compilatore (javac), JVM (java), API (vasta collezione di componenti software di largo impiego) ed altre utility, gratuitamente rilasciato dalla Sun Microsystem. Text Editor Software per scrivere/modificare file testuali come il codice sorgente Java (es.: Notepad (Blocco Note) di Windows). Prof. Francesco Accarino Introduzione a Java 15