Programmazione object oriented: JAVA

    Il primo argomento affrontato durante il corso è stato quello della programmazione ad oggetti. I linguaggi di programmazione ad oggetti appartengono ad un modello di computazione un po' particolare in quanto trasversale alle categorie in cui si classificano i linguaggi stessi: imperativi, funzionali e logici. Trasversale perché di linguaggi ad oggetti ne esistono di tutte e tre le categorie.
    In particolare è stato illustrato il linguaggio Java. La peculiarità di Java è la portabilità, ovvero la possibilità di trasportare su una macchina qualunque il codice scritto in questo linguaggio. Cio' è reso possibile dal fatto che Java non è un linguaggio compilato, ma interpretato. In realtà esiste una fase di compilazione che produce a partire dal codice iniziale un codice intermedio detto bytecode che poi viene interpretato (l'interprete del bytecode è detto JVM Java Virtual Machine). A questa caratteristica si accompagna il fatto che i browser per la navigazione di pagine html supportano Java, ovvero contengono l'interprete Java. Inserendo appositi tag su una pagina html è possibile realizzare un programma la cui esecuzione è lanciata direttamente all'apertura di quella pagina, poiché il browser legge il tag, reperisce il codice e lo esegue. Dunque è possibile per esempio pubblicare su internet un proprio programma Java (applet) su una pagina web. L'applet verrà eseguita sulla macchina del navigatore (client) sulla quale infatti il browser caricherà non solo la pagina html, ma anche i bytecode Java. Dal punto di vista della sicurezza i browser non consentono all'applet di accedere al file system locale. Quindi per consentire la manipolazione di un file system da parte di un'applet è necessaria una procedura di autenticazione.
    Questa presentazione in formato html mostrerà un esempio di applet che consente l'utilizzo dell'interprete.

    Java offre una serie di classi predefinite organizzate in package (directory). Queste classi possono essere usate direttamente dall'utente. In questo modo l'utente può sfruttare del codice preesistente (modularità). In particolare Java fornisce una serie di classi per la costruzione dell'interfaccia grafica e per la gestione degli eventi: è il package swing (questo è disponibile in Java 1.2, mentre nella versione precedente si usa il package AWT).
    L'interprete elaborato in questo progetto è utilizzabile grazie ad un'interfaccia grafica realizzata proprio tramite le classi Swing. In particolare sono messe a disposizione aree di testo in cui immettere il codice o leggere messaggi e bottoni tramite cui è possibile richiedere l'esecuzione delle varie operazioni.