La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Storia dell'informatica - uniud 2009- 10 - corrado bonfanti - traccia lez. 11- 12 TRACCIA PER LE LEZIONI 11-12 martedì 25 maggio, ore 16 30 -18 15, aula.

Presentazioni simili


Presentazione sul tema: "Storia dell'informatica - uniud 2009- 10 - corrado bonfanti - traccia lez. 11- 12 TRACCIA PER LE LEZIONI 11-12 martedì 25 maggio, ore 16 30 -18 15, aula."— Transcript della presentazione:

1 storia dell'informatica - uniud corrado bonfanti - traccia lez TRACCIA PER LE LEZIONI martedì 25 maggio, ore , aula 5 ARGOMENTI (EVOLUZIONE DEL SOFTWARE: ALCUNI PERCORSI)  SOFTWARE: DI COSA PARLIAMO?  PERIODO PIONIERISTICO: LINGUAGGIO MACCHINA = STRUTTURA HARDWARE  LINGUAGGI DI PROGRAMMAZIONE  INGEGNERIA E INDUSTRIA DEL SW  APPENDICE: ESEMPI FORTRAN E COBOL

2 storia dell'informatica - uniud corrado bonfanti - traccia lez ARGOMENTI (EVOLUZIONE DEL SOFTWARE: ALCUNI PERCORSI)  SOFTWARE: DI COSA PARLIAMO?  PERIODO PIONIERISTICO: LINGUAGGIO MACCHINA = STRUTTURA HARDWARE  LINGUAGGI DI PROGRAMMAZIONE  INGEGNERIA E INDUSTRIA DEL SW  APPENDICE: ESEMPI FORTRAN E COBOL

3 storia dell'informatica - uniud corrado bonfanti - traccia lez Nella letteratura di carattere storico, solo una minoranza di lavori si occupano in profondità dellevoluzione del software nei suoi molteplici aspetti; in particolare quasi tutte le storie generali la trascurano del tutto o la liquidano con cenni fugaci. [1] Solo i linguaggi di programmazione possono vantare un buon numero di opere specialistiche. [2] La natura immateriale del software rende poi problematica, se non impossibile, la sua esibizione nelle istituzioni museali che sono invece ormai numerose e ricche di reperti di interesse storico che documentano levoluzione dellhardware. Un autorevole richiamo verso una maggiore attenzione alla storia del software è stato lanciato in un recente convegno intitolato History of Computing: Software Issues. [3] In tale convegno … [1] Una notevole eccezione è il recente saggio di Paul E. Ceruzzi, tradotto anche in italiano (n.[5] nella bobliografia), che vi dedica lintero Capitolo 3 - Gli albori del software, e altri ampi passaggi. [2] Tra queste, i nn.[2], [3] e [4] nella bibliografia. [3] Gli atti del convegno sono rubricati al n.[6] della bibliografia.

4 storia dell'informatica - uniud corrado bonfanti - traccia lez … si è proposto di adottare come criterio storiografico losservazione del fenomeno software secondo i seguenti punti di vista: - il software come arte (periodo pionieristico), - il software come scienza logico-linguistica (teoria; linguaggi; sistemi operativi), - il software come attività economica (professioni; industria del sw), - il software come tecnica ingegneristica (ingegneria del sw).

5 storia dell'informatica - uniud corrado bonfanti - traccia lez Il termine software è un neologismo entrato in voga intorno al 1960 come contrapposto a hardware, parola in uso già da tempo [1] ; si dava così una connotazione riconoscibile ed emblematica - una dignità insomma - a quella che potremmo chiamare laltra faccia dellinformatica. Inizialmente per software sintendevano i programmi, di qualsiasi genere, necessari a rendere operante un computer. Questa accezione ristretta venne gradualmente estesa fino ad abbracciare tutto il ventaglio di metodologie e di attività associate alla semplice scrittura dei programmi. Il quadro è diventato estremamente complesso; vediamo di chiarire …… [1] Il termine hardware, come inteso nel gergo informatico, è invece un traslato della parola inglese che corrisponde allitaliano ferramenta.

6 storia dell'informatica - uniud corrado bonfanti - traccia lez IL NOCCIOLO DURO SOFTWARE: IL NOCCIOLO DURO LINGUAGGI DI PROGRAMMAZIONE SISTEMI OPERATIVI PROTOCOLLI TLC

7 storia dell'informatica - uniud corrado bonfanti - traccia lez A QUALE SCOPO? SOFTWARE: A QUALE SCOPO? LINGUAGGI DI PROGRAMMAZIONE SISTEMI OPERATIVI PROTOCOLLI TLC APPLICAZIONI ORIZZONTALI (DINTERESSE GENERALE) VERTICALI (DINTERESSE SETTORIALE) UTENZA / MERCATO

8 storia dell'informatica - uniud corrado bonfanti - traccia lez COME FARLO? SOFTWARE: COME FARLO? LINGUAGGI DI PROGRAMMAZIONE SISTEMI OPERATIVI PROTOCOLLI TLC TOOLS DI SVILUPPO INGEGNERIA DEL SOFTWARE APPLICAZIONI ORIZZONTALI (DINTERESSE GENERALE) VERTICALI (DINTERESSE SETTORIALE)

9 storia dell'informatica - uniud corrado bonfanti - traccia lez CHI LO FA? SOFTWARE: CHI LO FA? LINGUAGGI DI PROGRAMMAZIONE SISTEMI OPERATIVI PROTOCOLLI TLC TOOLS DI SVILUPPO INGEGNERIA DEL SOFTWARE APPLICAZIONI ORIZZONTALI (DINTERESSE GENERALE) VERTICALI (DINTERESSE SETTORIALE) UTENZA / MERCATO SOFTWARE FREE INDUSTRIA DEL SOFTWARE AUTOPRODUZIONE

10 storia dell'informatica - uniud corrado bonfanti - traccia lez ENTRO QUALI CONTESTI? SOFTWARE: ENTRO QUALI CONTESTI? ARCHITETTURE HARDWARE (PROCESSORI, FIRMWARE, PERIFERICHE, RETI) LINGUAGGI DI PROGRAMMAZIONE SISTEMI OPERATIVI PROTOCOLLI TLC TOOLS DI SVILUPPO INGEGNERIA DEL SOFTWARE INFORMATICA TEORICA (COMPUTER SCIENCE) STANDARD DI FATTO / LEGALI

11 storia dell'informatica - uniud corrado bonfanti - traccia lez SOFTWARE: UN POSSIBILE QUADRO DI RIFERIMENTO Ogni casella e ogni relazione dovrebbe avere una sua storia! Noi seguiremo solo alcuni percorsi. LINGUAGGI DI PROGRAMMAZIONE SISTEMI OPERATIVI PROTOCOLLI TLC TOOLS DI SVILUPPO INGEGNERIA DEL SOFTWARE STANDARD DI FATTO / LEGALI ARCHITETTURE HARDWARE (PROCESSORI, FIRMWARE, PERIFERICHE, RETI) INFORMATICA TEORICA (COMPUTER SCIENCE) APPLICAZIONI ORIZZONTALI (DINTERESSE GENERALE) VERTICALI (DINTERESSE SETTORIALE) UTENZA / MERCATO SOFTWARE FREE INDUSTRIA DEL SOFTWARE AUTOPRODUZIONE

12 storia dell'informatica - uniud corrado bonfanti - traccia lez ARGOMENTI (EVOLUZIONE DEL SOFTWARE: ALCUNI PERCORSI)  SOFTWARE: DI COSA PARLIAMO?  PERIODO PIONIERISTICO: LINGUAGGIO MACCHINA = STRUTTURA HARDWARE  LINGUAGGI DI PROGRAMMAZIONE  INGEGNERIA E INDUSTRIA DEL SW  APPENDICE: ESEMPI FORTRAN E COBOL

13 storia dell'informatica - uniud corrado bonfanti - traccia lez Il programma inaugurale (1948) preparato per il test della Baby Machine dellUniversità di Manchester (vedi una precedente lezione). Il programma effettivo, scritto bit per bit in linguaggio macchina e introdotto in memoria mediante una serie di switches, si trova nelle due colonne sulla destra. Fonte: [8] nella bibliografia di questa lezione

14 storia dell'informatica - uniud corrado bonfanti - traccia lez Appunti autografi di A.M.Turing: programmazione del computer Mark I (Manchester, 1953) Fonte: [8] nella bibliografia di questa lezione

15 storia dell'informatica - uniud corrado bonfanti - traccia lez Appunti autografi di A.M.Turing: programmazione del computer Mark I (Manchester, 1953) A caccia di un errore: How did this happen ? Fonte: [8] nella bibliografia di questa lezione (con adattamenti del docente)

16 storia dell'informatica - uniud corrado bonfanti - traccia lez Fonte: [1] nella bibliografia di questa lezione

17 storia dell'informatica - uniud corrado bonfanti - traccia lez Nei computer pionieristici della prima generazione, compresi quelli prodotti in ambiente industriale, il software era praticamente inesistente e quindi il suo sviluppo rimaneva completamente a carico di ogni utilizzatore. Il gruppo inglese diretto da Maurice Wilkes, lavorando sul loro EDSAC (1949) allUniversità di Cambridge, fu tra i primi ad affrontare in maniera sistematica anche il problema primigenio del software mettendo a punto e dando alle stampe una libreria di componenti software (sottoprogrammi o subroutines) per risolvere una volta per tutte i problemi che più di frequente ricorrono nel calcolo matematico. Abbiamo detto una volta per tutte, ma bisogna intendersi: i sottoprogrammi della libreria EDSAC, pur utilissimi come esemplificazione di un approccio sistematico, non erano infatti applicabili a nessun computer diverso da esso. Fatto che era esplicitamente avvertito nel sottotitolo del libro: With special reference to the EDSAC. Il software EDSAC si basava su due elementi chiave destinati a fare scuola in quanto preludevano a fondamentali componenti del cosiddetto software di base. Il primo era il programma di caricamento che leggeva il simbolico da nastro, lo traslitterava in codice binario di macchina e trasferiva il controllo a tale codice eseguibile. Questo ingegnoso ed elegante programma, di appena 40 istruzioni designate come initial orders, svolgeva quindi le funzioni di traduttore e di loader. I programmi non potevano essere salvati in codice di macchina e quindi ogni loro esecuzione doveva ripartire dal nastro simbolico; in questo senso il processo di traduzione può essere considerato affine alla tecnica degli intrpretatori piuttosto che a quella dei compilatori. Il secondo era il meccanismo di chiamata dei sottoprogrammi e di ritorno al programma chiamante: una invenzione di David Wheeler passata alla storia come Wheelers Jump. Considerata limportanza storica dellEDSAC e il suo valore paradigmatico nei confronti di molti computer dellepoca, nel seguito vi farò riferimento a titolo esemplificativo.

18 storia dell'informatica - uniud corrado bonfanti - traccia lez Sruttura generale dellEDSAC (1949), rappresentativa dei computer pionieristici. Input e output sono ancora rudimentali: - lettore/perforatore di banda di carta - telescrivente. Notare inoltre lesiguità degli organi aritmetici (no Floating Point): - registro moltiplicatore - accumulatore (addizioni e sottrazioni). Ne conseguono le caratteristiche salienti del corredo di istruzioni native ovvero del linguaggio macchina, unico linguaggio inizialmente disponibile per costruire il software. Fonte: [1] nella bibliografia di questa lezione (con adattamenti del docente) MULTIPLIER REGISTER ACCUMULATOR

19 storia dell'informatica - uniud corrado bonfanti - traccia lez Il corredo di istruzioni native (Order Code) dellEDSAC. Fonte: [1] nella bibliografia di questa lezione (con adattamenti del docente)

20 storia dell'informatica - uniud corrado bonfanti - traccia lez Nella rappresentazione simbolica delle istruzioni il primo carattere (lettera maiuscola) costituisce il codice operativo e il secondo (n, quando presente) designa lindirizzo delloperando (o argomento) su cui agisce listruzione stessa. Per brevità sorvoliamo sul significato della seconda lettera maiuscola, quando presente.

21 storia dell'informatica - uniud corrado bonfanti - traccia lez struttura di controllo Unica struttura di controllo: il salto condizionato

22 storia dell'informatica - uniud corrado bonfanti - traccia lez accumulatore Registro accumulatore: un passaggio obbligato

23 storia dell'informatica - uniud corrado bonfanti - traccia lez MULTIPLIER REGISTER ACCUMULATOR Fonte: [1] nella bibliografia di questa lezione (con adattamenti del docente) accumulatore Registro accumulatore: un passaggio obbligato

24 storia dell'informatica - uniud corrado bonfanti - traccia lez Si tratta quindi di istruzioni a un solo indirizzo, che aderiscono strettamente alla struttura fisica della macchina. Questo implica lintervento di un organo non dichiarato nel corpo dellistruzione ma individuato univocamente dalla descrizione (semantica) dellistruzione stessa. Nel caso dellEDSAC, come in quasi tutti i computer coevi, tale organo poteva essere laccumulatore (vedi p.e. listruzione A n) oppure il registro moltiplicatore (come nellistruzione H n). I prospetti che seguono illustrano alcune caratteristiche del linguaggio macchina dei computer pionieristici; si nota quante poche siano state le eccezioni rispetto al formato a un solo indirizzo.

25 storia dell'informatica - uniud corrado bonfanti - traccia lez codice operativo argomento (indirizzo di memoria) Il secondo argomento (tipicamente un organo aritmetico come laccumulatore o il moltiplicatore) è implicito e lo si evince dalla semantica dellistruzione specificata dal codice operativo. Formato delle istruzioni a un solo indirizzo

26 storia dell'informatica - uniud corrado bonfanti - traccia lez codice operativo argomento (indirizzo di memoria) Il secondo argomento (tipicamente un organo aritmetico come laccumulatore o il moltiplicatore) è implicito e lo si evince dalla semantica dellistruzione specificata dal codice operativo. Esempio 1 (codice EDSAC): copiare il contenuto della posizione di memoria n 1 nella posizione di memoria n 2 Formato delle istruzioni a un solo indirizzo Tn2n2 An1n1 Tranfer the contents of the accumulator to storage location n 2 and clear the accumulator. (N.B.: questa istruzione serve solo per azzerare laccumulatore; dato lo scopo finale dellesempio, il precedente contento dellaccumulatore è irrilevante) Add the number in storage location n 1 into the accumulator. Tn2n2 Tranfer the contents of the accumulator to storage location n 2 and clear the accumulator. (N.B.: nel caso non si volesse lasciare azzerato laccumulatore, andrebbe usata listruzione U n 2 )

27 storia dell'informatica - uniud corrado bonfanti - traccia lez Esempio 2 (codice EDSAC): sommare i contenuti delle posizioni di memoria n 1 e n 2 e mettere il risultato nella posizione di memoria n 2 (con parole più immediate: sommare il contenuto di n 1 al contenuto di n 2 ) Tn3n3 An1n1 Tranfer the contents of the accumulator to storage location n 3 and clear the accumulator. (N.B.: questa istruzione serve solo per azzerare laccumulatore; la posizione di memoria n 3 è usata come area di comodo) Add the number in storage location n 1 into the accumulator. Tn2n2 Tranfer the contents of the accumulator to storage location n 3 and clear the accumulator. (N.B.: nel caso non si volesse lasciare azzerato laccumulatore, andrebbe usata listruzione U n 2 ) An2n2 Add the number in storage location n 2 into the accumulator.

28 storia dell'informatica - uniud corrado bonfanti - traccia lez I due esempi precedenti, per quanto banali, mostrano quanto la programmazione in linguaggio macchina fosse complicata e prona ad errori. La semplice struttura dellEDSAC, e il conseguente formato a un solo indirizzo delle istruzioni, è stata peraltro adottata da quasi tutti i progettisti dei computer pionieristici, come evidenziato nelle due tavole che seguono.

29 storia dell'informatica - uniud corrado bonfanti - traccia lez Fonte: [8] nella bibliografia di questa lezione (con adattamenti del docente)

30 storia dell'informatica - uniud corrado bonfanti - traccia lez Nel formato a 3 indirizzi, il quarto elemento dellistruzione (indicato da +1) contiene lindirizzo della prossima istruzione da eseguire; indirizzo che, di norma, è invece contenuto in un apposito registro denominato Instruction (o Program) Counter. Fonte: [8] nella bibliografia di questa lezione (con adattamenti del docente)

31 storia dell'informatica - uniud corrado bonfanti - traccia lez Nei primi computers, il corredo delle istruzioni di macchina (istruzioni native) raramente ne prevedeva più di una ventina. Fonte: [8] nella bibliografia di questa lezione (con adattamenti del docente)

32 storia dell'informatica - uniud corrado bonfanti - traccia lez Nel computer EDSAC II (1951) Maurice Wilkes introdusse il concetto di macchina microprogrammata. Il microprogramma era una ROM che conteneva un interprete capace di tradurre in comandi effettivamente eseguibili a livello hardware (e inaccessibili al programmatore) le istruzioni scritte in un linguaggio più sintetico e più potente: era questo il linguaggio disponibile al programmatore, al quale appariva come il vero linguagggio macchina (o linguaggio nativo). Con riferimento allEsempio 1, la slide illustra come il microprogramma potrebbe ad esempio sovrapporsi a una modesta struttura hardware tipo EDSAC (primo modello) per trasformarla, agli occhi dellutente, in una più potente macchina con istruzioni a 2 indirizzi (la generalizzazione a 3 indirizzi è intuitiva). La microprogrammazione fu una delle idee più innovative e di maggior successo nella storia dellinformatica moderna e dette luogo alla tecnologia cosiddetta firmware che ha avuto e ha tuttora innumerevoli applicazioni. Esempi tipici di macchine microprogrammate sono state le famiglie di computer IBM 360 e 370 e la serie VAX della DEC (Digital Equipment Corporation) nonché, in Italia, la CEP (Calcolatrice Elettronica Pisana) e lELEA 6001, dellOlivetti. Nel modello a strati, in cui lo strato più esterno è linterfaccia utente, il firmware è rappresentato come come lo strato più interno che avvolge il nucleo hardware: una sorta di ibrido in cui limmaterialità del software possiede stabilmente una sede fisica che ne realizza le funzioni.

33 storia dell'informatica - uniud corrado bonfanti - traccia lez C (Copy)n1n1 n2n2 Tn2n2 An1n1 Tn2n2 Livello utente MICROPROGRAMMA (su ROM) Livello firmware Livello hardware LINGUAGGIO MACCHINA (istruzione a due indirizzi) COMANDI ESEGUIBILI (istruzioni a un indirizzo)

34 storia dell'informatica - uniud corrado bonfanti - traccia lez Questo è lelenco dei tipi (Category) di sottoprogrammi, quasi un centinaio, approntati per la libreria EDSAC Fonte: [1] nella bibliografia di questa lezione (con adattamenti del docente)

35 storia dell'informatica - uniud corrado bonfanti - traccia lez Laritmetica floating point era realizzata via software e le subroutines necessarie furono un classico adempimento a carico di ogni team di programmatori, fino a quando i computer non furono dotati degli appositi dispositivi hardware e delle corrispondenti istruzioni native. EDSAC, per di più, non disponeva neppure di hardware per la divisione; a tale operazione provvedevano quindi le subroutines della categoria D.

36 storia dell'informatica - uniud corrado bonfanti - traccia lez Le subroutines per linput e per loutput formattato (print and layout), nella pratica, erano non meno utili dei sottoprogrammi matematici. Programmare la ricezione di dati dal lettore di nastro perforato o linvio alla telescrivente, carattere per carattere, erano infatti operazioni particolarmente ostiche.

37 storia dell'informatica - uniud corrado bonfanti - traccia lez Le istruzioni, qui incorniciate in colore, venivano digitate sulla telescrivente e perforate su nastro di carta in una forma simbolica che, sebbene ancora piuttosto criptica, segnava un progresso notevole rispetto alla codifica puramente binaria. Fonte: [1] nella bibliografia di questa lezione (con adattamenti del docente) Esempio di subroutine della Libreria EDSAC: il caso più semplice di divisione.

38 storia dell'informatica - uniud corrado bonfanti - traccia lez I programmi erano perforati su nastro e il corredo di software risiedeva quindi su una collezione di strisce di carta perforata. Sulla sinistra della foto si distinguono i nastri dei programmi da eseguire in giornata (job queue).

39 storia dell'informatica - uniud corrado bonfanti - traccia lez Folclore protoinformatico: preparazione dei programmi per lEDSAC. Fonte: [1] nella bibliografia di questa lezione

40 storia dell'informatica - uniud corrado bonfanti - traccia lez La foto ritrae unoperatrice intenta alla telescrivente fuori linea (cioè non collegata al computer né a una linea telefonica) dotata di un lettore e di un perforatore di banda di carta. Le istruzioni del programma, scritte sul modulo nel leggìo, vengono digitate sulla tastiera e registrate sul nastro perforato. I sottoprogrammi vengono invece letti dal nastro di libreria e, al punto opportuno, riprodotti automaticamente sul nastro principale. Lintera libreria dei sottoprogrammi è custodita nella cassettiera sulla sinistra. Linput e loutput al/dal computer erano effettuati rispettivamente per mezzo di un lettore di nastro di carta e di una telescrivente collegati direttamente alla macchina. Queste modalità operative continuarono a far parte del folclore protoinformatico anche quando i lettori veloci di schede, mutuati dalla meccanografia, divennero il mezzo di input preferito; alle strisce di carta si sostituirono allora i pacchi (deck) di schede.

41 storia dell'informatica - uniud corrado bonfanti - traccia lez ARGOMENTI (EVOLUZIONE DEL SOFTWARE: ALCUNI PERCORSI)  SOFTWARE: DI COSA PARLIAMO?  PERIODO PIONIERISTICO: LINGUAGGIO MACCHINA = STRUTTURA HARDWARE  LINGUAGGI DI PROGRAMMAZIONE  INGEGNERIA E INDUSTRIA DEL SW  APPENDICE: ESEMPI FORTRAN E COBOL


Scaricare ppt "Storia dell'informatica - uniud 2009- 10 - corrado bonfanti - traccia lez. 11- 12 TRACCIA PER LE LEZIONI 11-12 martedì 25 maggio, ore 16 30 -18 15, aula."

Presentazioni simili


Annunci Google