Programmazione Attività di progettazione ed implementazione di programmi I programmi permettono di realizzare funzioni complesse su un hardware in grado di eseguire solo operazioni elementari I programmi sono sequenze di istruzione che permettono di risolvere un problema complesso L’utilizzatore di un computer non ha bisogno di programmare, usa programmi già realizzati; il computer diventa uno strumento utilizzabile da una larga categoria di persone.
Interpretazione e Compilazione (I) I programmi direttamente eseguibili da un computer sono sequenze di istruzione in linguaggio macchina, ovvero stringhe binarie (istruzioni) Le istruzioni del linguaggio macchina sono specifiche del computer per il quale sono state progettate, quindi uno stesso file binario non può essere eseguito su macchine diverse Lo sviluppo di software in linguaggio macchina è impraticabile, è necessario usare un linguaggio ad alto livello traducibile automaticamente in linguaggio macchina La traduzione può essere operata tramite un programma interprete (istruzione per istruzione) od un compilatore (file sorgente -> file oggetto -> file eseguibile)
Interpretazione e Compilazione (II) Lo sviluppo di programmi complessi non può prescindere dalla compilazione L’interpretazione aumenta la portabilità del software su più piattaforme perché non rende necessaria la creazione di codice binario intrinsecamente dipendente dalla macchina
Dal codice sorgente al programma in esecuzione in Java Il Java è un linguaggio ad alto livello che utilizza un doppio livello di traduzione COMPILAZIONE: Il codice sorgente viene prima tradotto in un file di bytecode, sequenza di istruzioni indipendenti dalla macchina che per essere eseguite devono essere tradotte nel linguaggio macchina specifico della piattaforma utilizzata INTERPRETAZIONE: Il codice bytecode è eseguito dall’interprete, che traduce le istruzioni bytecode una alla volta e automaticamente nel linguaggio macchina specifico della piattaforma utilizzata javac Editor: es. Notepad, JCreator java API
Il ciclo modifica-compila-correggi Attraverso un editor si crea e si modifica un file sorgente dall’algoritmo; alcuni editor (es. JCreator) permettono di individuare facilmente errori di battitura tramite il syntax highlighting Il compilatore genera il codice bytecode dal sorgente se non rileva errori sintattici e/o lessicali, altrimenti fornisce un elenco di errori da correggere tramite l’editor Il processo di collaudo è volto ad individuare errori logici (l’algoritmo di partenza non era corretto), di traduzione (il codice sorgente non realizza l’algoritmo progettato), di semantica dinamica ( legati a particolari assegnazioni di valori alle variabili, es. divisioni per zero). Consiste nel provare un programma con diversi valori di input. Può durare 5 minuti o anni a seconda della complessità del programma