Skillbook Logo
foto profilo

Skill Factory

Lista post > Introduzione alla logica degli oggetti - Lezione 2

Introduzione alla logica degli oggetti - Lezione 2

Gino Visciano | Skill Factory - 03/03/2018 00:42:24 | in Tutorials

Nella lezione precedente ho introdotto il concetto di oggetto e gli ambiti tecnologici ed industriali in cui vengono applicati.

In questa lezione vedremo l'importanza che hanno gli oggetti  nel campo dell'elettronica e dell'informatica, in particolare analizzeremo le analogie che  esistitono tra gli apparecchi elettronici e le applicazioni software.

Prima degli anni 60 gli apparecchi elettronici non erano formati da componenti, ma da valvole e relé, per questo motivo erano molto grandi, difficili da riparare e di bassa qualità.

           

Fig. 1 e 2 televisore e radio a valvole

L'UNIVAC (UNIVersal Automatic Computer) è stato il primo computer commerciale creato negli Stati Uniti.

Fig. 3 UNIVAC

L'UNIVAC era un mainframe, un computer di grosse dimensioni, modulare, ad alta velocità di calcolo, che centralizzava tutte le attività di elaborazione richieste dagli utenti. Gli utenti comunicavano con il mainframe attraverso termnali non intelligenti.


Fig 4 terminale non intelligente

I programmi per mainframe si scrivevano sulle schede perforate, la prima memoria secondaria nella storia dell'informatica.


Fig 5 scheda perforata

Le schede venivano perforate da macchine chiamate perforatrici, ogni scheda conteneva un'istruzione del programma, il calcolatore leggeva le istruzioni perforate sulle schede e le eseguiva.

Fig 6 schede perforate

I primi mainframe della storia venivano usati soprattutto in ambito scientifico e militare, il linguaggio di programmazione più usato per programmarli era il Fortran (Formula Translation), un linguaggio strutturato di tipo imperativo.


Fig 7 funzione scritta in Fortran

Successivamente i mainframe si diffusero anche in ambiti più commerciali e nacquero nuovi linguaggi di programmazione, tra questi il più importante fu il COBOL (COmmon Business Oriented Language, ossia, letteralmente, "linguaggio comune orientato alle applicazioni commerciali"). Il COBOL è  molto usato ancora oggi.

Fig 8 listato COBOL

Anche il COBOL, come il FORTRAN, era un linguaggio di programmazione imperativostrutturato. I linguaggi di programmazione di questo tipo usano le istruzioni condizionali ed i cicli per organizzare le istruzioni dei programmi in modo logico.

Sono questi i tempi dei Flow-Chart (Diagrammi di Flusso) e degli spaghetti house, perché nella logica dei programmi prevaleva l'uso dell'istruzione GOTO che permetteva ai programmatori di saltare, quando serviva, in punti diversi del programma, al punto da rendere il flusso logico delle applicazioni così complesso da farlo assomigliare ad un piatto di spaghetti. 

Fig 9 flow-chart (diagramma di flusso)
 

L'elettronica e l'informatica si sono sempre evolute di pari passo e tra loro c'è sempre stata una stratta analogia, infatti negli anni 60  le applicazioni software presentavano gli stessi problemi delle apparecchiature elettroniche, non erano formate da oggetti, ma da sequenze logiche d'istruzioni, quindi erano complesse,  avevano un alto costo di produzione, erano poco affidabili e difficili da manutenere.

Con gli anni l'evoluzione tecnolgica ha permesso la miniaturizzzione dei componenti elettronici, le valvole ed i relé sono diventati transistor, diodi, resistenze, condensatori e led.

Fig. 10 componenti elettronici
 

Grazie alla miniaturizzazione gli apparecchi elettronici sono diventati sempre più piccoli ed affidabili.

Fig. 11  e 12 radio a transistor

Un ulteriore passo avanti nel campo dell'elettronica, viene fatto quando,  a cavallo degli anni 60, nascono i primi circuiti integrati.

Un circuito integrato o IC (da Integrated Circuit) , è un dispositivo elettronico detto anche CHIP nel quale, sono integrati gli elementi attivi (transistors, diodi, ecc.) della tecnologia avanzata dell'industria dei semiconduttori.

Fig. 13 circuito integrato (chip)

Da questo momento in poi ha inizio l'era dell'elettronica per componeti che negli anni 70 ci ha prtati alla nascita del primo personal computer.

 

Fig. 14 personal computer
 

Negli anni 70 sicuramente il linguaggio di programmazione più diffuso (general-purpose) era il BASIC ( (Beginner's All-purpose Symbolic Instruction Code, ossia, letteralmente, codice simbolico per principianti per ogni applicazione).

Fig. 15 listato programma BASIC

Anche il BASIC, come i predecessori, era un linguaggio di programmazione imperativostrutturato,  quindi non era molto diverso dagli altri. Per cogliere un reale cambiamento nel campo dello sviluppo applicativo dobbiamo attendere la fine degli anni 60, quando viene creato il primo linguaggio di programmazione funzionale il C

Il linguaggio C è stato  sviluppato da Dennis Ritchie presso i Bell Labs della AT&T tra il 1969 e il 1973, si differenzia dagli altri linguaggi di programmazione perché il paradigma di programmazione e di tipo procedurale, per questo motivo si definisce funzionale e l'istruzione GOTO non esiste più.

Il C, pur non essendo  ancora un linguaggio ad oggetti, ne è stato sicuramente il precursore. Grazie all'uso delle procedure, delle funzioni e delle strutture, praticamente gli antenati delle classi  dei linguaggi ad oggetti, le applicazioni sviluppate con C, risultavano meno complesse,  avevano costi di produzione più bassi, erano più affidabili e più semplici da manutenere,  proprio com'è accaduto per le apparecchiature elettroniche quando sono stati creati i transistor, i  diodi, le resistenze, i condensatori ed i led.

Fig. 16 listato linguaggio C

 

Oggi di strada ne abbiamo fatta tanta, gli apparecchi elettronici, sono formati da poche schede con componeti, quindi sono super compatti, hanno costi di produzione bassisimi, sono di alta qualità e si possono riparare facilmente o addirittura sostituire, dato il basso costo.

 
 

Fig. 17 Apparecchi elettronici super compatti

 

Naturalmente anche i linguaggi di programmazione si sono evoluti ed oggi sono ad oggetti, ovvero le applicazioni sviluppate con linguaggi ad oggetti tipo C++, JAVA, C#, etc. sono composte da componenti (oggetti) che collaborano tra loro, proprio come le apparecchiature elettroniche moderne, quindi sono molto compatte, hanno costi di produzione bassi, sono di alta qualità e si possono manutenre facilmente.

Principalmente tutte le applicazioni software si possono assemblare con tre tipi di oggetti, i MODEL che contengono dati, le VIEW, che hanno il compito di permettere la visualizzazione oppure l'inserimento dei dati negli oggetti di tipo MODEL ed i CONTROLLER, che hanno il compito di gestire il flusso logico applicativo.

Fig. 18 tipi di oggetti

Il diagramma seguente descrive un esempio di applicazione creata utilizzando oggetti di tipo MVC.

Fig. 19 applicazione creata con componeti di tipo MVC

 

Arrivederci alla prossima lezione!!!


<< Lezione precedente           Lezione successiva >>


Laboratori di Logica di Programmazione in C

Share Button
TOP