1

Interprete compilatore e processore


C'è qualcuno che non si sia mai chiesto come sia possibile trasmettere a una macchina le istruzioni che fanno funzionare le applicazioni o determinati programmi ?

Noi ingenui utilizzatori del prodotto finale generalmente non ce lo domandiamo, ma impariamo ed usiamo applicazioni - che per poter essere utilizzate appieno possono richiedere anche enormi competenze (come i programmi CAD) e perfetta conoscenza delle funzioni che possono svolgere - ma che a loro volta sono state create da specialisti del mestiere.
Noi ingenui certe volte discutiamo di questi programmi prodotti da altri, dei loro pregi e difetti e delle loro funzioni, e ne parliamo come se sapessimo cosa c'è dietro, mentre in realtà li utilizziamo ai nostri scopi dandoli per scontato, come uno strumento quasi 'magico' perché - come è giusto - il nostro mestiere e le nostre competenze sono altre.

A volte se ne parla e discute pomposamente, ma i più, a parte la conoscenza delle sue funzioni e la meccanica della manovra di una tastiera e di un mouse che usano per il proprio lavoro , in realtà sanno poco o nulla del programma e di come è costruito.

A loro volta gli specialisti che hanno prodotto un programma ne usano a loro volta altri che consentono di codificarlo e produrlo.

INTERPRETE, COMPILATORE, PROCESSORE

Un interprete, in informatica e nella programmazione, è un programma che ha lo scopo di eseguire un programma in un linguaggio di alto livello, senza la previa compilazione dello stesso (codice oggetto) cioè di eseguire le istruzioni nel linguaggio usato, traducendole di volta in volta in istruzioni in linguaggio macchina e passandole al processore (CPU) che le elabora.
È quindi in grado di eseguire altri programmi a partire direttamente dal relativo codice sorgente
.

Invece un compilatore non esegue il programma che riceve in ingresso, ma lo traduce in linguaggio macchina (memorizzando su file un codice oggetto pronto per l'esecuzione diretta da parte del processore). Ad esempio i files eseguibili (.exe) oppure i file Dynamic Link Library, (.DLL), che contengono blocchi specifici di codice che condivisibili da diversi programmi.

Per tutti i linguaggi di programmazione si può scrivere sia un programma interprete che un compilatore, pertanto le espressioni 'linguaggio interpretato' e 'linguaggio compilato' non sono corrette, dato che interpretazione e compilazione non riguardano il linguaggio in sé. ma il come esso viene predisposto per essere utilizzato.  

Il processore o CPU è quella componente hardware di un computer che è in grado di eseguire i programmi scritti in linguaggio macchina.
Sappiamo tuttti che i computer funzionano usando la matematica binaria, cioè delle serie di elementi che possono essere solo in condizioni di acceso o di spento (ON/OFF) ovverosia di magnetizzato o non magnetizzato, ovvero di conduzione o non conduzione.

Il linguaggio macchina è quindi basato su un alfabeto detto binario perché comprende due soli simboli, generalmente indicati con 0 e 1. Un simbolo di questo alfabeto viene detto bit. Il processore o CPU è quella componente hardware di un computer che è in grado di eseguire i programmi scritti in linguaggio macchina.

2

Competenze necessarie nella produzione di una pagina o un sito web


La produzione di certi progammi complessi richiede una mole di lavoro immensa e uno o più team di persone con diverse competenze. Parliamo di moltissimi anni uomo e di costi elevatissimi.
Faccio allora l'esempio meno complesso. questo del
browser che ci consente di navigare su internet, trovare delle pagine, leggere testi, vedere immagini, guardare video, scaricare, eccetera. Cosa c'è dietro? Dietro c'è una enormità un gran lavoro e tante competenze tecniche
.
Per prima cosa esaminiamo chi entra nella sequenza di produzione di una pagina web a partire dall'utente cioè andando in senso inverso dal livello più 'alto' verso il livello più 'basso':

  1. L'utente apre la pagina e ne fruisce
  2. Il committente prova, verifica, ed accetta il lavoro
  3. L'editore e il provider (uno o più di uno) caricano il materiale sui server e provvedono a tutte le fasi di omologazione e registrazione, mettendolo online.
  4. Il committente prova ed approva o eventualmente chiede delle modifiche di programma o di progetto
  5. Il programmatore (uno o anche più di uno) che ha prodotto il codice per un sito web o una pagina web sulla base di un progetto - disegno - fatto da altri
    • codificando a mano scrivendo il codice nel linguaggio scelto (i linguaggi usati per una pagina web possono essere molti);
    • usando a sua volta un altro programma (applicazione dedicata - le applicazioni necessarie possono essere molte) che gli ha facilitato il lavoro scrivendo il codice al posto suo o anche fornendogli dei modelli precostruiti;
    • utilizzando entrambe le opzioni.
  6. Produttore di grafica grafici e di tutto ciò che si vuole sia inserito nel sito
  7. Il sistemista - progettista che ha disegnato e progettato lo schema secondo le indicazioni del committente, concordando tutto quello che serve.
  8. Prima ancora c'è il gruppo di persone che ha fatto il browser che permette di far funzionare le pagine web. Il Browser è un programma interprete che legge e traduce il linguaggio macchina e riporta sullo schermo i risultati.
  9. E ancora prima abbiamo i produttori di macroistruzioni (instruction set) in linguaggio binario e quelli che costruiscono i processori (CPU) in grado di montarle ed elaborarle.
3

INSTRUCTION SET - trasmette al processore le istruzioni nel linguaggio macchina


In altre parole in linguaggio macchina sono definite l'insieme di istruzioni fondamentali che un processore è in grado di compiere in cui i codici di programmi da eseguire devono essere tradotti. In particolare i linguaggi a più basso livello si ottengono come semplice codifica (tabella di associazione) a partire dal linguaggio macchina in un crescendo di associazioni.

Una macroistruzione è per esempio quell'insieme di segnali 0,1 binari che consente di fare la somma di due numeri contenuti in due registri.

Quando scrivo un insieme di segnali che costituisce il numero e batto il segno + poi scrivo il secondo numero e batto il segno = i due registri si sommano in un terzo numero binario rappresentato da serie di 0 e 1, poi sono gestiti da tabelle di associazioni di macroistruzioni elementari che ne consentono la visualizzazione. (sembra facile!)

4

Bit e Byte e consumo di quantità di informazione


Il bit (bit) è una unità di misura (dall'inglese "binary digit"), definita come la quantità minima di informazione che serve a discernere tra due possibili eventi equiprobabili e può assumere il valore di 0 (zero) o il valore di 1 .
Cioè un bit è una cifra binaria, ovvero uno dei due simboli del sistema numerico binario, classicamente chiamati zero (0) e uno (1); in questo caso si può parlare di numero di 8, 16, 32, 64 ... bit proprio come nella comune base dieci si parla di un numero di 2, 5, 6... cifre.

Un byte è una sequenza di bit che rappresenta un singlo carattere alfanumerico e dipende dalla struttura del processore del computer e da come è fisicamente costruita la la macchina sottostante. Il byte è divenuto l'elemento base dell'indirizzabilità nelle architetture dei computer e l'unità di misura delle capacità di memoria.

Un formato da 8 bit è pertanto in grado di assumere  256 possibili valori (da 0 a 255).

Le macchine si sono sempre più evolute nel tempo. Da architetture a 8 bit per carattere del 1964 oggi si è arrivati a 64 bit .

Ora qui i produttori tendono a confondere i consumatori quando parlano di Megabit o Megabyte perché pare chiaro che la quantità di informazioni trasmessa da un bit è inferiore a quella rappresentata da un Byte.


Quantità   Fattore   Altri nomi in uso Sigla

    -3      
    2    b    

    -1      
4b   2      nibble (usato in passato)  

    0      
1 B = 2    B byte B

    10      
1 024 B = 2    B kilobyte KB

    20      
1 024 KiB = 2     B megabyte MB

    30      
1 024 MiB = 2    B gigabyte GB

    40      
1 024 GiB = 2    B terabyte TB

Calcolatevi la differenza della quantità di informazione che vi danno quelli che vi promettono gratis 50 Gigabit o quelli che promettono 50 Gigabyte, ovvero una velocità di trasmissione di 100 Gigabit/secondo o di 10 Gigabyte/ secondo.

Nota: volendo informazioni maggiori o meno approssimate potete trovarle di wikipedia.

5

Ricordi dal Giurassico


Non riportiamo qui la storia dei computer, che potete consultare su Wikipedia con molta più profondità. Mi limito a darvi qualche mio ricordo e a partire da decenni più vicini all'attuale.

Frequentando l'università dal 1962-1963 per completare il quinquennnio di studi di ingegneria meccanica, mi occupavo, oltre che di matematica fisica e geometria, di tecniche dei materiali, di velocità accelerazioni e forze agenti nei componenti meccanici delle macchine. e poi anche di disegno e progettazione di macchine e impianti.
Oltre a un paio di esami annuali di idraulica, avevo un esame annuale di elettrotecnica. Gli esami di elettrotecnica erano finalizzati alla conoscenza dei componenti elettrici ed elettronici delle macchine e degli impianti, e allora la mia idea del computer era quella che fossero la naturale evoluzione delle calcolatrici meccaniche.
Per il calcolo avevo un bellissimo regolo calcolatore anteguerra, un vero gioiello, molto grande e ben leggibile che avevo ereditato da mio padre ingegnere civile, facilissimo da usare, che tenevo a casa. Avevo anche un paio di regoli calcolatori moderni, di dimensioni tascabili che usavo all'Università.

Allora il servizio militare era ancora obbligatorio, quindi dopo la laurea mi presentai al concorso per entrare all'Accademia Aeronautica di Pozzuoli e riuscii a qualificarmi anche grazie ai titoli che avevo per il fatto che mio padre Arnaldo era stato prima pilota di aerei da combattimento, poi ingegnere Ufficiale del Genio Aeronautico (GARI) che durante la guerra aveva incarichi per la costruzione e manutenzione di aeroporti militari e che avevo per di più amici di famiglia piloti ed ex combattenti della seconda guerra mondiale.
Come laureato in materie scientifiche mi presentai a una selezione interna all'Accademia Aeronautica gestita da IBM Italia e la superai grazie alle mie reminiscenze dal liceo sulla matematica elementare, l'algebra e la trigonometria.

Una volta ufficiale di prima nomina classificato al 5º posto su 500 del mio corso 'Cerbero' del 1968 vidi per la prima volta un computer al CELD il centro elaborazione dati dell'aeronautica militare e dopo una breve preparazione sul COBOL (common business Oriented Language) mi misi a lavorare come programmatore, ricevendo incarichi e istruzioni direttamente dal Colonnello Comandante. SI ERA ALLA FINE DELL'ANNO 1968.

6


Il mio primo computer (Impara l'arte e mettila da parte)


Il primo computer con il quale ho lavorato era un IBM 360/32 con una RAM di 32K che presto sarebbe stata portata a 64K, sarebbe cioè diventato un IBM 360/40. Era installato in un enorme stanzone di più di 30m di lunghezza e con molte unità di registrazione a nastro, archivio per i nastrim, un banco di dischi enormi che giravano a vista dentro dei contenitori trasparenti nella parte superiore, e con le barre di lettura che si vedevano muovere, e la CPU che occupava un intero armadio.
Non esisteva uno schermo, ma solo una tastiera sopra un supporto; per stampare le pagine dovevo determinarne la lunghezza con un nastro di carta perforato tagliato a misura da montare sulle rotelle dentate della stampante. Prima facevo il flowchart di un programma, poi scrivevo le istruzioni in Cobol su carta usando un apposito modulo quadrettato. Ie istruzioni venivano poi riportate su schede perforate. Inserivo le schede e facevo il test per determinare gli eventuali errori e correggerli riscrivendo e perforando un'aktra scheda - sono distratto e ne facevo sempre almeno uno; alla fine il programma (costutito da un pacchetto di schede perforate ) era pronto per essere eseguito.
Ci voleva molta cura e attenzione in quanto il ciclo di prova e correzione era abbastanza impegnativo, se lo si doveva eseguire più di una volta.
Ricordo che un sabato ero andato al CELD per via che al mio Comandante serviva un programma con un prospetto per l'assunzione di operai di varie specialità, determinati in numero e specialità di volta in volta, a richiesta del Ministero.
Dato che il sabato non c'era il personale che perforava le schede quella volta dovetti fare tutto da solo e i lunedì dopo consegnai al colonnello il pacco di stampe della selezione richiesta.
Finito il servizio militare lasciai l'Aeronautica e trovai lavoro come impiegato tecnico di concetto presso lo Stabilimento siderurgico Italsider di Taranto e ai computer non pensai piú.

 

7

Dagli anni '70 ad oggi


La rivoluzione del PC è nata in Italia nel 1965:
Cinquant’anni fa l’idea di tenere un computer sulla scrivania o nella camera dei bambini era poco più che un’intuizione visionaria, seguita con determinazione da una geniale squadra di ingegneri di OLIVETTI(#) una delle aziende più importanti al mondo nel campo delle macchine da scrivere e da calcolo.  L'Olivetti Programma 101 (in acronimo P101) è stato un computer sviluppato dalla ditta italiana ed è considerato il primo "computer da scrivania" commerciale programmabile motivo per cui vieni definito anche come il primo Personal Computer ...
Quindici anni prima di Steve Jobs e Bill Gates, Olivetti con la Programma 101 ha aperto la strada alla rivoluzione del nostro tempo: il personal computer.
(#) decenni dopo, alla fine della dinastia Olivetti, il nuovo proprietario che aveva rilevato l'azienda, un noto industriale appoggiato dall'estrema sinistra italiana ora tessera nº 1 del Partito Democratico, la portò al fallimento per incapacità di adeguarsi al mercato.

Il lancio del P101 Olivetti avvenne il 14 ottobre 1965 a New York
, con un successo clamoroso: tra i primi a intuire le potenzialità della P101 ci furono gli scienziati della Nasa, che ne acquistarono quarantacinque esemplari per compilare le mappe lunari ed elaborare la traettoria del viaggio della missione Apollo 11, che nel 1969 portò l’uomo sulla luna.

Per quanto mi riguarda rinnovai la mia conoscenza dei computer con qualche giocattolo tipo il VIC 20 e VIC 64 per studiarño e insegnare a usare il linguaggio Basic, che regalai a mio figlio Massimiliano alla fine degli anni 70, insegnandogli anche le tecniche per costruire i flow-chart di un programma.
Successivamente fui incaricato di sponsorizzare un sistema di gestione operativa della manutenzione dello stabilimento di Taranto (SIMAN) per il quale inventai un nuovo tipo di flowchart gestionali ciclici che mi servì per illustrare il funzionamento del sistema al management dello stabilimento e mettere le basi della progettazione generale.
Curai il coordinamento della progettazione generale dirigendo il gruppo di sistemisti costituito da personale della Italsider e della ditta incaricata della progettazione, finché un infarto occorso a un mio collega mi offrì l'opportunità di sostituirlo e andare a dirigere la manutenzione di due grandi treni di laminazione per nastri a caldo.

Poi eliminarono il posto di segreteria e quindi mi capitò sulla scrivania un primo PC della IBM sul quale era montato solo il DOS originale e qualche semplice programma eseguibile che si faceva partire da qualche cartella. C'erano dei floppy enormi di capacità irrisorie - pochi KB - per caricare i programmi o registrare qualcosa.

Imparai il DOS per gestire le cartelle e i programmi, formattare i dischi etc, ma non sapevo come utilizzare il PC oltre alle poche funzioni elementari che mi avevano caricato. Quindi mi dedicai a imparare CLIPPER e DB3, linguaggi che mi riuscì facile imparare perché le istruzioni somigliavano a quelle del COBOL e cominciai a fare da solo qualche applicazione. Per esempio feci una tabella, un elenco di programmi installati, con relativa descrizione sintetica, che mi consentisse di scorrere scegliere e lanciare il programma scelto a partire dalla tabella stessa.

L'appetito vien mangiando

Questo fatto mi fece venire la voglia di approfondire e mi comperai un PC della Olivetti con un HD da 40 MB, discreta capacità per allora, montai i programmi DBIII e CLIPPER e mi diedi da fare durante i giorni festivi di pioggia. In questi linguaggi ho programmato software di gestione economica - gestione della prima nota di cassa .di una impresa che ereditai da mio padre - e tecnici - gestione e programmazione dei lavori degli operai. Ho anche usato il sistema alla stabilmento di Terni nel 1993.
Mentre ero alla DMA (divisione acciai magnetici) di Terni feci un semplice programmino per calcolare iterativamente l'assetto delle varie passate del laminatoio a freddo in funzione della potenza dei motori, del diametro dei cilindri, e della curva di incrudimento di ogni tipo di acciaio.
Prelevando i dati operativi di gestione dal sistema informativo di stabilimento ho anche elaborato e implementato la gestione con un mio sistemino locale per la produzione di report gestionali tesi ad analizzare l'efficienza degli impianti, l'incidenza delle fermate accidentali, a individuare i punti e le operazioni critiche, per programmare e gestire le conseguenti contromisure.
Il sistema ebbe molto successo, e la missione della NSC che lo valutò leggendo i report periodici che facevo stampare e inviare a tutti i responsabili diede un giudizio molto positivo, e mi propose all'alta direzione perché gestissi in maniera simile tutto lo stabilimento. Purtroppo alla fine del 1964 per problemi di famiglia e convenienza economica abbandonai lo stabilimento e andai a svolgere altri lavori sia per mio conto che per conto terzi,

Poi venne windows '95 e il resto lo sappiamo tutti benissimo. Oggi abbiamo SULLA SCRIVANIA E PERFINO in mano degli apparecchietti che una volta sarebbero sembrati magici, e che tutti usano trovandoli naturali, e ne discutono pregi e difetti senza sapere cosa c'è dietro e talvolta senza sapere neppure cosa stanno dicendo

LE TECNOLOGIE INFORMATICHE E IL SOFTWARE STIANO FACENDO PASSI DA GIGANTE, IL CHE È COSA NATURALE, PERÒ MI PREOCCUPA UN PO'.
ANCHE SE SONO IN GRADO DI MANOVRARE UN PC E PROGRAMMARE IN VARI LINGUAGGI MI SENTO RIDOTTO ALLA STREGUA DI UN MERO UTILIZZATORE.

COME SARÀ IL FUTURO? NON LO SO E TUTTO SOMMATO NON MI INTERESSA TROPPO, PERCHÉ SONO ANZIANO E NON LO VEDRÒ.

I invite you to send material to be published, because otherwise the content of this section will be poor, since for now I'm alone working just for hobby. If freely you give freely also you get ... Who sends material will be cited as the author as specified in the 'disclaimer' and in the authors'. It is not allowed anonymous material. 'See the section disclaimer'

Lino Bertuzzi