1 / 90

TRACCIA PER LE LEZIONI 10-11 lunedì 9 giugno, ore 14 30 -16 15 , aula I ARGOMENTI

TRACCIA PER LE LEZIONI 10-11 lunedì 9 giugno, ore 14 30 -16 15 , aula I ARGOMENTI  EVOLUZIONE DEL SOFTWARE: ALCUNI PERCORSI. SOFTWARE: DI COSA PARLIAMO?.

atira
Télécharger la présentation

TRACCIA PER LE LEZIONI 10-11 lunedì 9 giugno, ore 14 30 -16 15 , aula I ARGOMENTI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TRACCIA PER LE LEZIONI 10-11 lunedì 9 giugno, ore 1430-1615, aula I ARGOMENTI  EVOLUZIONE DEL SOFTWARE: ALCUNI PERCORSI storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  2. SOFTWARE: DI COSA PARLIAMO? storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  3. Nella letteratura di carattere storico, solo una minoranza di lavori si occupano in profondità dell’evoluzione 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 l’evoluzione dell’hardware. 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 l’intero Capitolo 3 - “Gli albori del software, 1952-1968” - 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. storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  4. … si è proposto di adottare come criterio storiografico l’osservazione del “fenomeno software” secondo i seguenti punti di vista: storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  5. … si è proposto di adottare come criterio storiografico l’osservazione del “fenomeno software” secondo i seguenti punti di vista: - il software “come arte” (periodo pionieristico), storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  6. … si è proposto di adottare come criterio storiografico l’osservazione 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), storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  7. … si è proposto di adottare come criterio storiografico l’osservazione 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), storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  8. … si è proposto di adottare come criterio storiografico l’osservazione 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). storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  9. 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 “l’altra faccia dell’informatica”. Inizialmente per “software” s’intendevano 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 all’italiano “ferramenta”. storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  10. LINGUAGGI DI PROGRAMMAZIONE SISTEMI OPERATIVI PROTOCOLLI TLC SOFTWARE: IL “NOCCIOLO DURO” storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  11. APPLICAZIONI LINGUAGGI DI PROGRAMMAZIONE UTENZA / MERCATO “ORIZZONTALI” (D’INTERESSE GENERALE) SISTEMI OPERATIVI PROTOCOLLI TLC “VERTICALI” (D’INTERESSE SETTORIALE) SOFTWARE: A QUALE SCOPO? storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  12. APPLICAZIONI LINGUAGGI DI PROGRAMMAZIONE “ORIZZONTALI” (D’INTERESSE GENERALE) SISTEMI OPERATIVI PROTOCOLLI TLC “VERTICALI” (D’INTERESSE SETTORIALE) INGEGNERIA DEL SOFTWARE TOOLS DI SVILUPPO SOFTWARE: COME FARLO? storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  13. APPLICAZIONI LINGUAGGI DI PROGRAMMAZIONE “ORIZZONTALI” (D’INTERESSE GENERALE) SISTEMI OPERATIVI PROTOCOLLI TLC UTENZA / MERCATO “VERTICALI” (D’INTERESSE SETTORIALE) INGEGNERIA DEL SOFTWARE AUTOPRODUZIONE INDUSTRIA DEL SOFTWARE TOOLS DI SVILUPPO SOFTWARE “FREE” SOFTWARE: CHI LO FA? storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  14. STANDARD “DI FATTO” / “ LEGALI” LINGUAGGI DI PROGRAMMAZIONE INFORMATICA TEORICA (COMPUTER SCIENCE) SISTEMI OPERATIVI PROTOCOLLI TLC ARCHITETTURE HARDWARE (PROCESSORI, FIRMWARE, PERIFERICHE, RETI) INGEGNERIA DEL SOFTWARE TOOLS DI SVILUPPO SOFTWARE: ENTRO QUALI CONTESTI? storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

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

  16. PERIODO PIONIERISTICO: LINGUAGGIO MACCHINA = = STRUTTURA HARDWARE storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  17. Il programma “inaugurale” (1948) preparato per il test della Baby Machine dell’Università 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 storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  18. Appunti autografi di A.M.Turing: programmazione del computer Mark I (Manchester, 1953) Fonte: [8] nella bibliografia di questa lezione storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  19. 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) storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  20. Fonte: [1] nella bibliografia di questa lezione storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  21. 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) all’Università 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 Wheeler’s Jump. Considerata l’importanza storica dell’EDSAC e il suo valore paradigmatico nei confronti di molti computer dell’epoca, nel seguito vi farò riferimento a titolo esemplificativo. storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  22. Sruttura generale dell’EDSAC (1949), rappresentativa dei computer pionieristici. Input e output sono ancora rudimentali: - lettore/perforatore di banda di carta - telescrivente. Notare inoltre l’esiguità 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. MULTIPLIER REGISTER ACCUMULATOR Fonte: [1] nella bibliografia di questa lezione (con adattamenti del docente) storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  23. Il corredo di istruzioni native (Order Code) dell’EDSAC. Fonte: [1] nella bibliografia di questa lezione (con adattamenti del docente) storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  24. Nella rappresentazione simbolica delle istruzioni il primo carattere (lettera maiuscola) costituisce il codice operativo e il secondo (n, quando presente) designa l’indirizzo dell’operando (o argomento) su cui agisce l’istruzione stessa. Per brevità sorvoliamo sul significato della seconda lettera maiuscola, quando presente. storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  25. Unica struttura di controllo: il salto condizionato storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  26. Registro accumulatore: un passaggio obbligato storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  27. Si tratta quindi di istruzioni a un solo indirizzo, che aderiscono strettamente alla struttura fisica della macchina. Questo implica l’intervento di un organo non dichiarato nel corpo dell’istruzione ma individuato univocamente dalla descrizione (“semantica”) dell’istruzione stessa. Nel caso dell’EDSAC, come in quasi tutti i computer coevi, tale organo poteva essere l’accumulatore (vedi p.e. l’istruzione A n) oppure il registro moltiplicatore (come nell’istruzione 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. storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  28. MULTIPLIER REGISTER ACCUMULATOR PERCORSI DA MEMORIA A MEMORIA NELLE ARCHITETTURE TIPO EDSAC CON ISTRUZIONI NATIVE A UN SOLO INDIRIZZO: I REGISTRI ARITMETICI (IN PARTICOLARE L’ACCUMULATORE) COSTITUIVANO UN PASSAGGIO OBBLIGATO. Fonte: [1] nella bibliografia di questa lezione (con adattamenti del docente) storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  29. codice operativo argomento (indirizzo di memoria) Formato delle istruzioni a un solo indirizzo Il secondo argomento (tipicamente un organo aritmetico come l’accumulatore o il moltiplicatore) è implicito e lo si evince dalla semantica dell’istruzione specificata dal codice operativo. storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  30. codice operativo T A T argomento (indirizzo di memoria) n2 n1 n2 Formato delle istruzioni a un solo indirizzo Il secondo argomento (tipicamente un organo aritmetico come l’accumulatore o il moltiplicatore) è implicito e lo si evince dalla semantica dell’istruzione specificata dal codice operativo. Esempio 1 (codice EDSAC): copiare il contenuto della posizione di memoria n1 nella posizione di memoria n2 Tranfer the contents of the accumulator to storage location n2 and clear the accumulator. (N.B.: serve solo per azzerare l’accumulatore; dato lo scopo finale dell’esempio, il precedente contento dell’accumulatore è irrilevante) Add the number in storage location n1 into the accumulator. Tranfer the contents of the accumulator to storage location n2 and clear the accumulator. (N.B.: nel caso non si volesse lasciare azzerato l’accumulatore, andrebbe usata l’istruzione Un2) storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  31. T A T A n3 n1 n2 n2 Esempio 2 (codice EDSAC): sommare i contenuti delle posizioni di memoria n1 e n2 e mettere il risultato nella posizione di memoria n2 Tranfer the contents of the accumulator to storage location n3 and clear the accumulator. (N.B.: serve solo per azzerare l’accumulatore; la posizione di memoria n3 è usata come area “di comodo”) Add the number in storage location n1 into the accumulator. Add the number in storage location n2 into the accumulator. Tranfer the contents of the accumulator to storage location n2 and clear the accumulator. (N.B.: nel caso non si volesse lasciare azzerato l’accumulatore, andrebbe usata l’istruzione Un2) storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  32. I due esempi precedenti, per quanto banali, mostrano quanto la programmazione in linguaggio macchina fosse complicata e prona ad errori. La semplice struttura dell’EDSAC, 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. storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  33. 1948 1949 1950 1952 1953 1953 Fonte: [8] nella bibliografia di questa lezione (con adattamenti del docente) storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  34. Fonte: [8] nella bibliografia di questa lezione (con adattamenti del docente) Nel formato a 3 indirizzi, il quarto elemento dell’istruzione (indicato da “+1”) contiene l’indirizzo della prossima istruzione da eseguire; indirizzo che, di norma, è invece contenuto in un apposito registro denominato Instruction Counter. storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  35. 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) storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  36. LINGUAGGIO MACCHINA Livello utente Copy n1 n2 T A T n2 n1 n2 Livello firmware MICROPROGRAMMA su ROM COMANDI ESEGUIBILI Livello hardware storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  37. Nel computer EDSAC II (1951) Maurice Wilkes introdusse il concetto di macchina microprogrammata. Il microprogramma era una ROM che contieneva un programma 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 all’Esempio 1, la slide illustra come il microprogramma potrebbe ad esempio sovrapporsi a una modesta struttura hardware tipo EDSAC (primo modello) per trasformarla, agli occhi dell’utente, 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 dell’informatica 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 l’ELEA 6001, dell’Olivetti. Nel modello a strati, in cui lo strato più esterno è l’interfaccia utente, il firmware è rappresentato come come lo strato più interno che avvolge il nucleo hardware: una sorta di ibrido in cui l’immaterialità del software possiede stabilmente una sede fisica che ne realizza le funzioni. storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  38. Questo è l’elenco dei tipi (Category) di sottoprogrammi, quasi un centinaio, approntati per la libreria EDSAC Fonte: [1] nella bibliografia di questa lezione (con adattamenti del docente) storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  39. L’aritmetica 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. storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  40. Le subroutines per l’input e per l’output formattato (print and layout), nella pratica, erano non meno utili dei sottoprogrammi matematici. Programmare la ricezione di dati dal lettore di nastro perforato o l’invio alla telescrivente, carattere per carattere, erano infatti operazioni particolarmente ostiche. storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  41. Esempio di subroutine della Libreria EDSAC: il caso più semplice di divisione. Fonte: [1] nella bibliografia di questa lezione (con adattamenti del docente) 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. storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  42. 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). storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  43. Fonte: [1] nella bibliografia di questa lezione Folclore protoinformatico: preparazione dei programmi per l’EDSAC. storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  44. La foto ritrae un’operatrice 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. L’intera libreria dei sottoprogrammi è custodita nella cassettiera sulla sinistra. L’input e l’output 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. storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  45. LINGUAGGI DI PROGRAMMAZIONE storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  46. Lo sviluppo dei linguaggi di programmazione è stato motivato da diverse istanze la prima delle quali, facilmente intuibile, è stata quella di rendere meno ostico il lavoro di programmazione. La risposta iniziale a tale requisito è stata l’introduzione dei linguaggi cosiddetti assemblativi (Assembler). N. B. Con il termine “assemblatore” (assembler) si designano sia il linguaggio e sia il programma traduttore. storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  47. label op. code operands / arguments comments Brano di un programma scritto in assembler (IBM 360) storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  48. Pur mantenendo una corrispondenza uno a uno con le istruzioni del linguaggio macchina, un linguaggio di tipo assembler presenta i seguenti principali vantaggi: - il codice operativo (op.code) è tendenzialmente mnemonico (p.e. MVI = MoVe Immediate; BC = Branch on Condition; LA = Load Address); - l’etichetta (= indirizzo) o label dell’istruzione e degli operandi (campi di dati) può essere espressa con nomi di comodo scelti dal programmatore; - i campi di dati vengono definiti mediante le pseudo-istruzioni che, nell’esempio, compaiono nelle ultime tre righe (DS = Define Storage; DC = Define Constant, con indicazione del valore iniziale); - i commenti esplicativi sono ad uso del programmatore e vengono ignorati dal programma traduttore. Un gran numero di linguaggi di questo tipo, più o meno sofisticati, furono sviluppati autonomamente da gruppi di programmatori per uso “locale” sul computer che avevano in dotazione. Quelli di cui è rimasta memoria sono tuttavia legati ai computer che avevano la maggiore diffusione e quindi, inevitabilmente, ai vari modelli IBM: tra i più precoci - metà degli anni ‘50 - il SOAP (Symbolic Optimizer and Assembly Program) per l’IBM 650. Gli assembler rimanevano comunque linguaggi di una notevole complessità - comportavano anche la necessità di imparare a conoscere con un notevole grado di dettaglio il funzionamento interno del computer su cui si lavorava - e per di più lasciavano irrisolto un aspetto critico: tutto il software sviluppato per una certa macchina risultava inutilizzabile su macchine differenti, anche se possedute da una stessa organizzazione, o quando si passava a macchine più evolute. Per di più, se da un lato il progresso delle tecnologie hardware offriva al programmatore in assembler un corredo di istruzioni native sempre più ampio e versatile, dall’altro lato - e quasi paradossalmente - l’eccessiva proliferazione di opzioni gli veniva a complicare la vita. Le figure che seguono, anche senza commento, possono dare un’idea dei livelli di complessità raggiunti (a titolo esemplificativo, il riferimento è alla famiglia di elaboratori IBM 360, messa sul mercato nel 1964). storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  49. Alcune delle 130 istruzioni disponibili nel linguaggio assembler per l’IBM 360 (1964) storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

  50. Formati delle istruzioni del sistema IBM 360. storia dell'informatica - UNIUD 2007-8 - c. bonfanti - traccia lez. 10-11

More Related