gen 18

4. IL RAPPORTO HARDWARE – SOFTWARE

Guadagna denaro contante con il tuo sito web!

Nel capitolo precedente abbiamo parlato dei livelli dei linguaggi di programmazione. Si è visto come la suddivisione in livelli avviene. Infatti quando parliamo di alto o basso livello non parliamo delle caratteristiche tecniche di un linguaggio ma, invece, della sua distanza dalla macchina. Per distanza non indichiamo i centimetri che ci distano dal computer. Immaginavo già qualcuno che andava a prendere il metro per vedere a che livello era. Risate a parte, per distanza si intende la distanza di semantica dal linguaggio che capisce il computer: il linguaggio binario. Nel corso di questo capitolo parleremo del rapporto che c’è tra software e hardware, toccheremo le definizioni di compilatore ed interprete, definizioni necessarie per proseguire in questo cammino verso la programmazione.

4. Il rapporto Hardware – Software

Bene o male, sappiamo tutti la differenza che occorre tra l’hardware e sotware. Nonostante ciò è bene ripetere questa definizione che spesso da nascita alle confusioni più disparate:

Hardware: Tradotto in inglese significa ferraglia. L’hardware rappresenta lo scheletro della macchina, tutti i componenti fisici che materialmente si possono toccare sono i componenti hardware. Un hardware può essere una memoria RAM, un Processore, ma anche la USB Pen è un dispositivo hardware.

Software: Il software rappresenta i programmi, ovvero quell’insieme di programmi che sono in grado di far funzionare una macchina programmabile (il pc, un cellulare ecc..).

Potrebbe essere spontanea la domanda: a me programmatore cosa può interessare il rapporto che intercorre tra il software e l’hardware di una macchina? Alla domanda si può rispondere in modo molto semplice. Se nel capitolo precedente abbiamo detto che la prima cosa che un programmatore deve sapere è il cosa programmare, al secondo posto deve sicuramente mettere in conto le potenzialità che il suo programma ha bisogno per funzionare. Un programma occupa dello spazio sull’hard disk, e per funzionare utilizza la memoria RAM.

Sapere quindi che un programma andrà su un computer che non riuscirà ad eseguire quelle istruzioni è obbligatorio, perchè si potrà distribuire un programma che occupi meno risorse, oppure nel peggiore dei casi, si avvisa l’utente che quel programma non è designato per quel determinato computer. Ecco perchè è stato reso obbligatorio specificare le caratteristiche di un programma, mettendone in evidenzia sopratutto le risorse che richiede per un corretto funzionamento.

Smentiamo poi chi vuole mettere su piani diversi queste due componenti che caratterizzano un compuer funzionante. Dire che l’hardware ha una valenza maggiore del software o viceversa è poco corretto. È come dire che il binario sinistro di un treno è più importante di quello destro. Hardware e Software camminano in modo parallelo, poichè se uno manca, l’altro automaticamente non serve a niente. Provate voi ad utilizzare un computer senza il sistema operativo e senza il BIOS, oppure prendetevi in mano un cd. A cosa serve? Diventano, l’uno senza l’altro, un insieme di cose inutili, buone solo ad essere cestinate.

Più volte nel corso dei capitoli precedenti abbiamo parlato del codice binario. Il computer è in grado, infatti di comprendere solamente questo codice formato da numeri, da 2 numeri: lo zero e l’uno. Lo zero indica un segnale OFF, FALSO, NO mentre la cifra uno indica segnali come ON, VERO, SI. Al computer quindi non potremo mai parlare in inglese, state sicuri che non ci degnerà neanche della sua attenzione. Tuttavia imparare il linguaggio binario è davvero molto difficile. Ed è proprio per l’esigenza di scrivere semplicemente i programmi che nascono due strumenti che fanno si che oggi programmare sia molto semplice: i compilatori e gli interpreti. Diamone la definizione:

Compilatore: Si definisce compilatore quel programma che traduce simultaneamente tutte le righe di un codice, in istruzioni binarie, che possono essere comprese dal computer. Si definiscono poi linguaggi compilati, quei linguaggi che utilizzano questa tecnica.

Anche se non informatica, un esempio di compilazione è una traduzione. Infatti il compilatore non fa altro che tradurre le istruzioni di un linguaggio di programmazione in istruzioni del linguaggio macchina.

Interprete: Si definisce interprete quel programma che traduce un’istruzione alla volta dal linguaggio di programmazione al codice binario. Si definiscono linguaggi interpretati quei linguaggi che lavorano in questa logica.

Anche qui possiamo fare un esempio per capire questa logica. Immaginate un convegno ed un interprete che fa la traduzione parola per parola di quello che dice un’altra persona. Questa logica lavora, su grandi linee, in questo modo.

Chiudiamo qui questo quarto capitolo. Dal prossimo capitolo inizieremo ad entrare nell’ottica del problema, guardando la struttura di esso, delle risoluzioni. In particolare inizieremo a parlare dell’algoritmo, che sta alla base di tutta la programmazione. Come al solito se avete problemi non esitate a commentare.

Lezione precedente Lezione Successiva

Tags:

Lascia un commento