venerdì 4 marzo 2011

Le variabili

Le variabili sono associazioni tra locazioni di memoria e nomi.

Il contenuto di tali locazioni sono modificabili.

Java è un linguaggio di programmazione sia compilato che interpretato, tale linguaggio è detto "Tipizzato".

Java tipizza il valore a "Compile Time", ossia a tempo di compilazione nel momento della creazione del byteCode.

Il  bytecode è un linguaggio intermedio più astratto del linguaggio macchina  usato per descrivere le operazioni che costituiscono un programma.

Il bytecode riduce la dipendenza dall'hardware e facilita la creazione degli interpreti del linguaggio stesso.

Java, tipizza i dati a "Compile Time" mentre  altri linguaggi di script come Javacript, php, asp etc... che tipizzano i dati a "Run Time" ossia nel momento di esecuzione del programma.

Tipi primitivi del linguaggio Java sono: boolean,char, byte,short,  int, double, float.

boolean: può assumere i valori true,false;

char:  i caratteri, sono di 16 bit, e sono codificati Unicode 1.1.5, negli altri linguaggi sono ASCII, di soli 8 bit.

byte:    interi di 8 bit con segno, ovvero numeri compresi tra meno (due alla settima) e due alla ottava.

short:    interi di 16 bit con segno.

int:    interi di 32 bit con segno.

long:    interi di 64 bit con segno.

float:    reali di 32 bit in virgola mobile (IEEE 754-1985).

double:    reali di 32 bit in virgola mobile (IEEE 754-1985).

Il compilatore

Un compilatore è un programma che traduce una serie di istruzioni scritte in un determinato linguaggio di programmazione (Codice Sorgente) in istruzioni di un altro linguaggio (Codice Oggetto).

Questo processo di traduzione si chiama "Compilazione".

L'attività inversa, passare dal codice oggetto al codice sorgente è chiamata decompilazione ed è effettuata per mezzo di un decompilatore.

Se tutti i compilatori aderiscono esattamente alla specifica del linguaggio, lo stesso programma potrà essere compilato senza modifiche da ciascun compilatore, producendo risultati semanticamente uguali, ovvero programmi che producono lo stesso risultato se sottoposti agli stessi dati di ingresso.

Nella realtà, molti compilatori implementano il linguaggio in modo incompleto, o aggiungono estensioni proprietarie, creando in effetti dei dialetti di ciascun linguaggio.

Per i linguaggi che adottano uno standard nella decorazione dei simboli, il codice oggetto generato da compilatori differenti può essere linkato assieme in un unico eseguibile.