Origini e caratteristiche dei calcolatori elettronici Lunedì, 09 ottobre 2006 Supercomputer, mainframe 1
Server, workstation, desktop, notebook, palmare Un po di storia 1642 Biagio Pascal 1671 Leibniz 1801 Jacquart 1823 Charles Babbage 1936 Alan Turing 1945 John von Neumann 2
1642 Macchina calcolatrice di Pascal Dimensioni di una scatola per scarpe Interazione con delle rotelline sulle quali erano riportati i numeri da 1 a 9 Novità rivoluzionaria: introduzione del principio del riporto automatico Permetteva solo di eseguire addizioni e sottrazioni 1671 Macchina calcolatrice da Leibniz Perfezionò la calcolatrice di Pascal inventando una macchina in grado di eseguire anche moltiplicazioni e divisioni Erano macchine non programmabili ma dotate di programmi definiti dalla meccanica stessa della macchina Fondatore del sistema di numerazione binario su cui si basa il funzionamento di tutti i computer moderni 3
1801 Jacquart inventa la scheda programmazione Invenzione di un telaio per la tessitura automatica che funzionava per mezzo di una serie di schede perforate dove, la posizione dei fori guidava il filo a formare un certo disegno nell ordito Le schede erano la prima forma di programmazione di una macchina automatica 1823 Macchina di Babbage Prima macchina da calcolo di utilizzo generale (la meccanica del periodo non era però sufficientemente sofisticata per realizzarla) Sfruttava il principio sia della macchina di Pascal sia del telaio di Jacquard Due serie di schede perforate una serie costituiva il programma (le istruzioni) l altra serie di schede rappresentavano i dati (i valori) Viene considerato il Padre dei computer, tanto che le sue idee sono alla base della moderna programmazione 4
1936 Alan Turing Macchina di Turing: non si tratta di un oggetto fisicamente tangile ma di uno strumento concettuale che simula la computazione Stato interno Alfabeto Nastro infinito suddiviso in celle Testina di lettura/scrittura sul nastro Obiettivo: formalizzare la nozione di procedura di calcolo (algoritmo) e individuarne i limiti per la soluzione di problemi 1945 John von Neumann Macchina a registri a programma memorizzato: primo vero computer digitale della storia Composta da: CPU Memoria: celle con indirizzo (registri) Unità di input Unità di output Dati e istruzioni primitive (programmi) sono codificati con linguaggio binario 5
Elaboratori elettronici ORIGINI 1969, Intel: primo microprocessore 1981, IBM: primo Personal Computer 1996, Intel: primo Supercomputer (7000 processori paralleli) OGGI Supercomputer Minicomputer Mainframe Server Workstation Desktop Notebook Palmare... Calcolatore: dispositivo programmabile Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di operazioni/azioni elementari Le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti (risultati) L esecuzione di azioni viene richiesta all elaboratore attraverso frasi scritte in qualche linguaggio (istruzioni) Programmazione: attività con cui si predispone l elaboratore a eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema 6
Dentro un computer Informatica: Informazione + automatica Informazione: Insieme di entità astratte, che raccolgono conoscenza derivata dalla descrizione ed interpretazione del mondo (materiale o immateriale) Es.: un libro, una sinfonia, un quadro, un insieme di dati relativi agli studenti di un corso di laurea Relazione tra informazione e sua rappresentazione Informazione (es. Sequenza di eventi) Rappresentazione dell info su supporto materiale (es. Romanzo) 7
Rappresentazione dell informazione Trascrizione e registrazione dell informazione su supporti materiali Es. Libro scritto, CD che contiene un melodia, insieme di schede che mantengono le informazioni relative agli studenti secondo una opportuna codifica convenzioni di rappresentazione... di testi e caratteri (codice ASCII), numeri, suoni, immagini formato del supporto materiale (es. CD vs libro) struttura di una scheda anagrafica (es. Studente vs sua scheda) La stessa informazione può essere rappresentata in diversi modi Il calcolatore SUPPORTO ATTIVO per la rappresentazione di informazione Un calcolatore può raccogliere un elevatissima quantità di dati (es: tutto l archivio del British Museum) ma anche Renderli disponibili in modo istantaneo, con prospettive diverse a utenti diversi e in diversi luoghi Mantenere altri dati privati Elaborare automaticamente la rappresentazione dei dati per Presentarli in modo diverso a diversi soggetti Inferire informazioni strutturate dai dati elementari Prendere delle decisioni in base alle proprietà degli oggetti rappresentati Esempio: archivio del British Museum Permette a utenti di tutto il mondo di collegarsi a parti delle informazioni del museo via Internet Gestisce l accesso ai dati: alcuni dati solo per l amministrazione del museo Presentazione dati in modo diverso in base alla fascia d età... 8
Programmabilità Caratteristica di dispositivi che possono essere specializzati per attività complesse di elaborazione dell informazione Peculiarità del calcolatore rispetto ad altri dispositivi elettronici (ad es. VideoRegistratore) Un pallottoliere... Consente di rappresentare informazioni informazione: due numeri da addizionare rappresentazione dell informazione: gruppi di dischetti che rappresentano ciascun numero Consente di elaborare le informazioni: manipolare gruppi di dischetti in modo da ottenere un unico gruppo che rappresenti il risultato finale 9
Un calcolatore... Permette di rappresentare informazione di natura estremamente più varia Dati di vario tipo (immagini, numeri, suoni, testo, etc.) Algoritmi per elaborare i dati (come sommare due numeri, come impaginare correttamente un testo, etc.) La rappresentazione è uniforme: ogni tipo di informazione è rappresentata da una sequenza di 0 e 1 La parte del calcolatore che realizza l elaborazione è in grado di interpretare e realizzare i passi richiesti dagli algoritmi (i calcolatori sono dispositivi general purpose ) Calcolatore: dispositivo programmabile Per specializzare il calcolatore per un nuovo compito è sufficiente Immaginare un nuovo algoritmo Rappresentare l algoritmo in modo che sia comprensibile alla macchina (cioè scrivere e fornire al calcolatore il programma che realizza quell algoritmo) Chiedere alla macchina di decodificare il programma (cioè risalire dalla codifica ai passi di cui è composto) ed eseguirlo (cioè portare a termine i passi richiesti) 10
Algoritmi, Linguaggi e Programmi Algoritmo: sequenza di passi che consentono la realizzazione di un compito (es. Problem-solving) Linguaggi di Programmazione (LdP) Linguaggio macchina Assembler Linguaggi ad alto livello Compilatori Interpreti Usando i LdP si descrivono gli algoritmi che l elaboratore deve eseguire per assolvere un compito (es. Sommare due numeri, modificare i colori di un immagine) 11