Immaginiamo che il sign. Rossi voglia comunicare via Internet al sign. Mouroir. L'Italia e la Francia sono completamente servite da reti telematiche per cui il suo messaggio dovrebbe correre attraverso la minutissima maglia esistente tra le città di Rossi e di Mouroir. Sebbene le due nazioni siano vicine, l'intricatissimo cammino richiede una notevole spesa di tempo, tale per cui Rossi e Mouroir troverebbero Internet del tutto inutile. Il sistema non funzionerebbe affatto se i messaggi dovessero transitare nel traffico locale. 

Per cogliere le dimensioni del problema poniamo un esempio con le comunicazioni viarie. Se noi dovessimo girare l'Europa viaggiando per la rete minuta, cioè attraverso paesetti e villaggi, rinunceremmo a muoverci. I collegamenti veloci vengono assicurati dalle autostrade le quali scavalcano la fitta ed intricata rete locale mediante lunghissime tratte. Così pure Internet riesce a funzionare grazie a potenti collegamenti internazionali ed intercontinentali. Questi formano una maglia mondiale in armonia con quanto abbiamo illustrato nella risposta 70

Dunque l'imagine di autostrade digitali è corretta anche se un pò colorita. I tecnici preferiscono parlare di dorsali o backbone le quali collegano direttamente i grandi centri telematici. Come le autostrade sono essenziali alla struttura viaria, così pure le dorsali sono essenziali per Internet. 

Va sottolineato come tra i due sistemi ci siano anche notevoli diversità strutturali. Per esempio l'assetto autostradale è alquanto stabile, mentre le dorsali sono influenzate da un dinamico sviluppo tecnologico. Quasi mensilmente le riviste parlano di esperimenti e proposte di nuovi protocolli, nuovi modelli trasmissivi ecc. Gran parte dell'avvenire dipenderà da loro.

 

 

Indietro

85. E' corretto parlare di "autostrade digitali"?  

86. Un esempio di machine code. 

I linguaggi di programmazione più o meno da vicino riflettono il linguaggio naturale. Il Pascal, tanto per citare il più comune nelle scuole, adotta parole mutuate dall'inglese. Il Cobol addiritura prevede intere frasi simili all'inglese. Esempio:

perform CALCOLO varying IMPORTO from 20 to 1260 by 10 until FINE-CALCOLO.

Significa in inglese:

"esegui Calcolo variando l'Importo da 20 a 1260 di 10 in 10 finchè arrivi a Fine-calcolo"

Linguaggi ben più ostici per l'uomo sono l'Assembler ed il C, che non imitano i linguaggi naturali ed usano sigle che molto vagamente si avvicinano all'uomo.

Impossibile da preparare a mano è il linguaggio macchina o machine code, binario, il quaIe è interpretato ed eseguito dai circuiti. 

Esiste dunque un abisso tra il programma nella versione 'umana' ed il programma nella versione 'macchina'. Da questo consegue che un programma qualsiasi va necessariamente tradotto nel linguaggio macchina per poter essere eseguito dalla macchina. Il cosidetto compilatore si incarica di questo lavoro. Ad esempio il programma Pascal viene tradotto dal compilatore Pascal.

Fatta questa necessaria premessa, rivolgiamo la nostra attenzione all'Assembler, il linguaggio di programmazione più vicino a quello macchina. Tutti e due infatti dipendono strettamente dall'hardware. Per fare un esempio come lei ha richiesto, supponiamo di sommare il contenuto del registro 12 nel registro 3 (i registri sono campi acceduti velocemente dalla CPU). In Assembler mainframe Add Register di Reg12 in Reg3 si scrive così:

AR  Reg3,Reg12

Il compilatore Assembler lo riduce a due byte:

00011010  00111100

I primi 8 bit a partire da sinistra sono il codice dell'operazione, cioè 0011010 significa Add Register per la macchina. I successivi 4 bit indicano 3 e gli ultimi 4 il registro 12.
Questa è dunque una semplice istruzione in machine code così come la vede e la esegue la CPU.  

Il binario è assai complicato da scrivere ed i tecnici hanno introdotto la codifica esadecimale che semplifica la scrittura dei bit. Invece di annotare 4 bit, essi preferiscono usare un solo simbolo esadecimale.
I 16 simboli che codificano e sostituiscono quattro bit sono i seguenti:

Quindi un tecnico scrive l'istruzione macchina sopra riportata in questo modo:

1A 3C

Questa scrittura compare anche nei tabulati tecnici. Ad esempio la mappatura della memoria centrale appare in questo modo. Ogni coppia di simboli è un byte in memoria.

Questi dettagli interessano soprattutto i sistemisti cioè gli esperti del sistema operativo, del database manager, del TCP/IP, ecc. Essi per scoprire i guasti devono talora verificare "de visu" le istruzioni che la macchina ha eseguito, una ad una. Hanno dunque familiarità con il machine code che invece interessa il programmatore sul piano culturale.

 

Indietro