giovedì 17 ottobre 2013

La tabella ASCII

Il tabella ASCII è una tabella che raccoglie simboli (alfabetici maiuscoli e minuscoli, numerici, di punteggiatura, speciali).
Il codice ASCII fu inventato molti anni fa per le comunicazioni fra telescriventi (infatti ci sono dei codici di comandi specifici che sono quasi incomprensibili, ma al tempo avevano la loro funzione), poi man mano e' diventato uno standard mondiale.
Parlando di un caso più pratico, quando qualcuno richiede un testo in formato ASCII, per esempio il vostro curriculum, oppure un articolo, ecc, significa che richiede un testo nel formato standard in modo che possa facilmente riutilizzarlo nei propri programmi.
Infatti il formato ASCII e' universalmente riconosciuto da tutti i computer, cosa che non e' vera nel caso di testi "formattati", cioe' con sottolineature, stili, grassetti, ecc.
Un file in formato ASCII puo' essere creato utilizzando il Blocco Note di Windows.



I simboli in tabella non sono disposti in modo casuale infatti a ogni simbolo viene associato un numero esadecimale, nella prima versione della tabella ASCII i simboli disponibili erano 128 (7 bit - da 0 a 127), poi è stata ampliata in 256 simboli e definita tabella ASCII estesa (8 bit - da 0 a 255). La tabella ASCII è stata creata per unire simboli a regole: ad esempio il simbolo 0 si trova in posizione 30(h).

Ad esempio la parola Ciao in codice asci risulterà essere 43-69-61-6F

Esercizio:
proviamo a salvare un testo in blocco note (formato ASCII) e lo stesso testo in Word e verifichiamo lo spazio occupato dai file:
Ciao a tutti in blocco note -> 12 byte (12 caratteri compresi gli spazi, 1 carattere 1 byte)
Ciao a tutti in Word          -> 19 968 byte
proviamo a salvare un file senza testo in Blocco Note e facciamo lo stesso in Word, verifichiamo lo spazio occupato dai file:
Blocco Note vuoto -> 0 byte (0 caratteri, 1 carattere 1 byte)
Word vuoto            -> 19 968 byte

Ricorda:
Il simbolo 5 in tabella ASCII corrisponde alla posizione 35(h), il simboli 1 invece alla posizione 31(h), se volessimo sommare questi due simboli avremo la seguente situazione: 35 + 31 = 36 dove 36(h) è la posizione del simbolo 6 in tabella ASCII.

domenica 13 ottobre 2013

Traduttore, Interprete e Compilatore

Genericamente, i traduttori sono programmi responsabili della traduzione fra due diversi linguaggi di programmazione. Essi generano normalmente programmi scritti in linguaggio macchina a partire da un linguaggio ad alto livello e si distinguono in: Interpreti e Compilatori.

È possibile programmare il computer usando vari linguaggi di programmazione 
          •  Ogni linguaggio ha i suoi pro e contro 
ma.....
          •  Alla fine, l’unico linguaggio che il computer capisce è il linguaggio macchina 

          •  Per usare altri linguaggi, occorre usare qualcosa in grado di “far capire” al computer gli altri linguaggi

Quando si realizza un software, il programmatore detta le istruzioni al computer tramite la scrittura di un codice sorgente in un determinato linguaggio di programmazione. Il codice sorgente però non è direttamente eseguibile dalla CPU (Central Processing Unit), è necessario “tradurlo” in linguaggio macchina, ossia un file binario contenente microistruzioni gestibili dal processore. Inoltre diverse architetture di processori prevedono linguaggi macchina differenti.
Il linguaggio macchina è composta da una sequenza di 0 e 1, ma leggere “numeri” non è molto facile 
per noi umani, conviene quindi tradurre questi codici numerici in qualcosa di più leggibile, ovvero stringhe più leggibili: LINGUAGGIO ASSEMBLY 
un istruzione in linguaggio macchina come la seguente "0100110011110" tramite l'assemblatore verrà associata a una "somma", il rapporto è quindi un rapporto 1:1 cioè ogni istruzione da assemblatore corrisponde a un istruzione in linguaggio macchina.

Un INTERPRETE per un certo linguaggio è un programma che “interpreta” appunto il linguaggio e fa sì che questo venga correttamente eseguito dal computer:
ogni istruzione del programma “viene interpretata” ogni volta che viene eseguita  
•  Per eseguire un programma, ho sempre bisogno dell’interprete

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. Il compilatore poi trascrive la traduzione in un file eseguibile (.exe). 

Esempio: dir->chiama interprete->che traduce in linguaggio macchina->viene eseguita la traduzione->si avvia l'istruzione in linguaggio macchina.

!L'interprete non salva la traduzione da nessuna parte
! Senza interprete i comandi non funzionano
! Il browser è un interprete
!Il compilatore è un traduttore.