1 / 84

Introduzione

Introduzione. Programmazione in Perl. Guido Boella Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino guido@di.unito.it http://www.di.unito.it/~guido. Accendo il computer …. Metafora linguistica : parlo al computer

sherri
Download Presentation

Introduzione

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. Introduzione Programmazione in Perl Guido Boella Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino guido@di.unito.it http://www.di.unito.it/~guido

  2. Accendo il computer … Metafora linguistica: parlo al computer dicendogli cosa deve fare ed esso mi parla scrivendomi il risultato della elaborazione (precedente l’introduzione del mouse)

  3. Accendo il computer Metafora visiva: ho a disposizione degli oggetti che posso manipolare (scelgo, prendo, sposto, copio, taglio, incollo, aggiungo, …) (successiva all’introduzione del mouse)

  4. Programmare un computer ? • Un computer è una macchina programmabile, tuttavia esso non è direttamente utilizzabile da parte degli utenti poiché richiederebbe la conoscenza sull’organizzazione fisica della specifica macchina e del suo linguaggio macchina • Ogni machina avrebbe le sue differenti caratteristiche • Il linguaggio macchina è estremamente complicato e non di facile gestione ? Utente ? Linguaggio Macchina

  5. Programmare un computer: astrazione • In altre parole desideriamo astrarci dai dettagli fisici della macchina in oggetto e dal suo specifico linguaggio macchina • L’idea è quella di realizzare al di sopra della macchina reale una macchina virtuale astratta che abbia le funzionalità desiderate e che sia facile da utilizzare per l’utente • L’utente interagisce con la macchina virtuale, ogni comando viene poi tradotto nei corrispondenti comandi sulla macchina fisica • La macchina virtuale è realizzata mediante software (programmi) Utente Software traduzione in LM Linguaggio Macchina Macchina Virtuale

  6. Programmare un computer: astrazione Utente • La macchina virtuale viene realizzata in genere mediante il software di base: • Sistema Operativo: file system, memoria, cpu, risorse ausiliarie, comunicazione • Linguaggi e ambienti di programmazione ad alto livello: interpreti e compilatori • Non vi sono limiti al numero e al tipo di macchine virtuali che possono essere realizzate • In genere nelle macchine moderne sono strutturate su più livelli (struttura a cipolla) Software traduzione Software traduzione Linguaggio Macchina Macchina Virtuale Macchina Virtuale

  7. Programmare un computer: astrazione • Astrarre dall’organizzazione fisica della macchina • Usare nello stesso modo, o comunque in modo molto simile, macchine leggermente diverse dal punto di vista hardware o, al limite, macchine con hardware profondamente diverso • Avere un semplice linguaggio di interazione con la macchina • Avere un linguaggio semplice ed ad alto livello per programmare la macchina • Avere un insiemi di programmi applicativi per svolgere compiti diversi • MACCHINE VIRTUALI

  8. Architettura dei computer • In un computer possiamo distinguere cinque unità funzionali: • l’unitàdi controllo • l’unità aritmetico-logica • la memoria centrale (RAM) • la memoria periferica • i dispositivi di ingresso/uscita Informatica Generale

  9. Unità di uscita Memoria centrale (RAM) Unità di controllo Unità logico aritmetica Memoria periferica Unità di ingresso Struttura di un computer PROCESSORE

  10. Figura 6 Diagramma schematico di un personal computer

  11. Figura 1 Unità centrale di elaborazione

  12. Figura 3 Un disco rigido

  13. Figura 4 Una scheda principale(motherboard)

  14. Il Processore • Il processore è il componente che fornisce la capacità di elaborazione delle informazioni contenute nella memoria centrale • L’elaborazione avviene in accordo a sequenze di istruzioni (istruzioni macchina) Informatica Generale

  15. La memoria centrale • Fornisce la capacità di “memorizzare” le informazioni • Può essere vista come una lunga sequenza di componenti elementari, ognuna delle quali può contenere un’unità di informazione (un bit) • Le componenti elementari sono aggregate tra di loro e formano delle strutture complesse dette celle (otto bit formano un byte) • La memoria può essere vista come una sequenza di celle Informatica Generale

  16. 0 1 2 3 4 N La memoria centrale • Ciascuna cella è caratterizzata da un indirizzo • Gli indirizzi corrispondono all’ordinamento delle celle nella sequenza • Gli indirizzi sono numeri interi (partono da 0) Informatica Generale

  17. La memoria centrale • Un altro nome con cui viene indicata la memoria centrale è memoria RAM (Random Access Memory) • Questa definizione indica che il tempo di accesso ad una cella è lo stesso indipendente dalla posizione della cella • Le operazioni che si possono effettuare sulla memoria sono le operazioni di lettura e scrittura di informazioni nelle celle Informatica Generale

  18. La memoria centrale • Le dimensioni della memoria centrale variano a seconda del tipo di computer e vengono espresse mediante le seguenti unità di misura: • 1 Kilobyte (KByte) corrisponde a 1024 byte • 1 Megabyte (MByte) corrisponde a 1024 Kbyte • 1 Gigabyte (GByte) corrisponde a 1024 MByte • 1 Terabyte (TByte) corrisponde a 1024 GByte • Nei computer attuali le dimensioni tipiche della memoria centrale vanno dagli 8 ai 512 Mbyte Informatica Generale

  19. La memoria centrale • Un altro aspetto che caratterizza la memoria è il tempo di accesso (tempo necessario per leggero o scrivere un’informazione in una cella) • Le memorie centrali dei computer attuali sono molto veloci e i loro tempi di accesso sono di pochi nanosecondi (un miliardesimo di secondo) Informatica Generale

  20. La memoria centrale • La memoria centrale perde ogni suo contenuto quando si interrompe l’alimentazione elettrica. Questa caratteristica viene chiamata volatilità • È quindi necessario per conservare le informazioni (programmi e dati) avere altri tipi di memoria che preservano il contenuto anche senza alimentazione elettrica Informatica Generale

  21. La memoria periferica • La memoria centrale non può essere troppo grande a causa del suo costo elevato • Non consente la memorizzazione permanente dei dati (volatilità) • Per questi motivi nell’architettura di un calcolatore sono stati introdotti due tipi di memoria: • Memoria centrale veloce, volatile, di dimensioni relativamente piccole; • Memoria periferica, più lenta e meno costosa, con capacità di memorizzazione maggiore ed in grado di memorizzare i dati in forma permanente Informatica Generale

  22. La memoria periferica • La memoria periferica viene utilizzata per mantenere tutti i programmi e tutti i dati che possono essere utilizzati dal computer • La memoria periferica viene anche detta memoria di massa • Quando si vuole eseguire un certo programma, questo dovrà essere copiato dalla memoria di massa a quella centrale (caricamento) Informatica Generale

  23. La memoria periferica • Il processore non può utilizzare direttamente la memoria di massa per l'elaborazione dei dati • Il programma in esecuzione deve essere in memoria centrale e quindi le informazioni devono essere trasferite dalla memoria periferica a quella centrale ogni volta che servono

  24. La memoria periferica:I dischi magnetici • I dischi magnetici sono i dispositivi di memoria periferica più diffusi • Sono dei supporti di plastica o vinile, su cui è depositato del materiale magnetizzabile • Nel corso delle operazioni i dischi vengono mantenuti in rotazione a velocità costante e le informazioni vengono lette e scritte da testine del tutto simili a quelle utilizzate nelle cassette audio/video • Entrambi i lati di un disco possono essere sfruttati per memorizzare le informazioni Informatica Generale

  25. Le unità di ingresso/uscita • Le unità di ingresso/uscita (anche dette periferiche), permettono di realizzare l'interazione tra l'uomo e la macchina • La loro funzione primaria è quella di consentire l'immissione dei dati all'interno dell'elaboratore (ingresso), o l'uscita dei dati dall'elaboratore (uscita) • Solitamente hanno limitata autonomia rispetto al processore centrale (sono completamente gestiti, controllati e coordinati dal processore) Informatica Generale

  26. Le unità di ingresso/uscita: il video • Dal punto di vista fisico, un video può essere visto come una matrice di punti illuminati con diversa intensità • Ogni punto sullo schermo prende il nome di pixel e un'immagine viene quindi composta accendendo o spegnendo i pixel sullo schermo • Ci sono video in bianco e nero o a colori e inoltre si deve distinguere tra video a carattere, e video grafici Informatica Generale

  27. Le unità di ingresso/uscita: il video • Oggi sono comuni video con un numero di colori che va da 256 fino a 16 milioni • Esistono video a diversi livelli di risoluzione, cioè con diverse densità di pixel; nei personal sono oggi comuni video con risoluzioni che vanno da 640X480 fino a 4096X3300 pixel (altissima risoluzione) • La dimensione di un video viene misurata in pollici e fa riferimento alla lunghezza della diagonale • Ad esempio, quando si parla di un video a 14 pollici, indicati come 14", si intende un video con una diagonale lunga 14 pollici Informatica Generale

  28. Accendo il computer … • Avvio del sistema operativo • Identificazione utente • Attivazione dell’ambiente di lavoro Sistema operativo: software speciale che determina il comportamento del computer, fa funzionare i programmi applicativi, gestisce la memoria, il file system, gli utenti, ... Esempi: Windows98, Linux, Unix, BeOS, MacOS

  29. Il Sistema Operativo • Avviamento dell’elaboratore e creazione dell’ambiente virtuale • Gestione del processore e dei processi (un programma in esecuzione) • Gestione della memoria principale (allocazione) • Gestione della memoria virtuale (visione astratta della memoria, swapping) • Gestione della memoria secondaria (file system, organizzazione logica e gestione fisica dei file) • Gestione delle risorse di input/output (periferiche) • Linguaggio di comandi per l’interazione con l’utente

  30. Gestione della memoria secondaria • Il file system è costituito da un insieme di programmi che devono svolgere due compiti importanti: • fornire all’utente una visione logica dei file e utilizzare lo spazio sui dischi in modo ottimale • nome logico • operazioni per lavorare sui file • accesso alle informazioni contenute nei file • strutturazione • protezione • gestire i file nella memoria di massa • allocazione fisica dei file (contigua vs sparsa, indexata vs linkata)

  31. file • Unità di memoria, agli occhi dell’utente • Può contenere: • Documenti • Programmi • Dati • Le ultime tre lettere (o l’icona) indicano il tipo del file Perché un file Word deve essere aperto con Word e non può essere letto utilizzando un altro applicativo? Non contiene semplicemente dei dati?

  32. ALBERO File e cartelle File: corrispondono ai documenti, possono contenere testi, presentazioni, immagini di vari formati, programmi Cartelle: sono contenitori, servono a organizzare il materiale contenuto in memoria cartelle file

  33. Il sistema operativo:il file system • La struttura gerarchica che i S.O realizzano per organizzare i file è detta ad albero • L’albero ha un’unica directory radice che viene detta root directory (o direttorio radice); viene simbolicamente indicata con il simbolo “\” (slash) • Inoltre, bisogna specificare a quale unità di memoria secondaria si riferisce la struttura ad albero • a: e b: per i floppy disk • c: per l’hard disk • d: oppure e: per il CD-ROM o dischi aggiuntivi

  34. ROOT Il sistema operativo:il file system Applicazioni Elab_imm Photoshop.exe Elab_suoni Premiere.exe Elab_testi Winword.exe libro1 Narrativa-Fra libro2 Floppy a: libro1 Biblioteca libro2 Narrativa-Ing libro3 libro1 Narrativa-Ita libro2 libro3 Bianchi Utenti Pautasso Indice Rossi

  35. Il sistema operativo:il file system • Se non esiste la strutturazione in directory, tutti i file possono essere identificati mediante il loro nome • Nel caso di un’organizzazione gerarchica a più livelli il nome non è più sufficiente ad identificare il file (nell’esempio precedente esistono diversi file con lo stesso nome) • Per individuare un file o una directory in modo univoco si deve allora specificare l'intera sequenza di directory che lo contengono, a partire dalla radice dell'albero

  36. Il sistema operativo:il file system • Ad esempio il file libro1 di narrativa italiana è univocamente identificato dalla sequenza: A:\Biblioteca\Narrativa-Ita\libro1 • La directory Pautasso di Utenti è identificata dalla sequenza: A:\Utenti\Pautasso il carattere “\”viene usato come separatore. • Una sequenza di questo tipo può essere vista come il cammino che si deve compiere per raggiungere un determinato file a partire dalla radice dell'albero, ed è chiamata path

  37. Il sistema operativo:il file system • Si dice path corrente l’indirizzo della cartella (directory) su cui si sta lavorando • Un altro modo di individuare un file (o una directory) è basato sul concetto di posizione • In questo caso per individuare un file o una directory in modo univoco si deve specificare l'intera sequenza di directory che lo contengono, a partire dalla posizione (path) corrente

  38. Il sistema operativo:il file system Applicazioni Elab_imm Photoshop.exe Elab_suoni Premiere.exe Elab_testi Winword.exe libro1 Narrativa-Fra libro2 Floppy a: libro1 Biblioteca libro2 Narrativa-Ing libro3 libro1 Narrativa-Ita libro2 libro3 Bianchi Utenti Pautasso Posizione corrente Indice Rossi

  39. Il sistema operativo:il file system • Se la posizione corrente è A:\Biblioteca, il file libro1 di narrativa italiana è univocamente identificato dalla sequenza: Narrativa-Ita\libro1 • Se la posizione corrente è A:\Utenti, la directory Pautasso è identificata dalla sequenza: Pautasso • Per raggiungere un determinato file a partire dalla posizione corrente si utilizza il path relativo

  40. C Documenti Pagine Web … path crash course crashCourse… desktop.bmp vt100.bmp Path/directory

  41. cartelle Area di lavoro applicativi D E S K T O P

  42. Il sistema operativo:i file • I file sono memorizzati su dispositivi di memoria secondaria (hard disk, floppy, CD) • L’utente deve solo preoccuparsi di dare un nome ad un file (al momento della creazione) ed usarlo per le operazioni da eseguire su di esso • Come dare nomi ai file che si creano?

  43. Il sistema operativo:i file • Il nome è generalmente composto da due parti: • il nome vero e proprio (si possono usare caratteri alfanumerici in numero dipendente dal S.O.) • l’estensione (una sequenza di caratteri che aiuta ad identificare il tipo di contenuto del file) • nome ed estensione sono separati dal carattere punto (.) • Il nome è obbligatorio mentre l’estensione è opzionale (ma fortemente consigliata)

  44. Il sistema operativo:il file system • Per organizzare gerarchicamente i file, il sistema operativo deve fornire all'utente un insieme di operazioni sulle directory, per esempio: • creare una nuova directory • rimuovere una directory • ridenominare una directory • elencare il contenuto (l'insieme di file e sotto-directory) di una directory • copiare o spostare i file da una directory ad un'altra

  45. PROGRAMMA = RICETTA • George Lakoff: “Metaphors we live by” • Per comprendere cio’ che non conosciamo ci si basa su analogie con cio’ che conosciamo meglio.

  46. La prova del cuoco • Programma = elenco di cose da fare per raggiungere il risultato voluto • Come una ricetta di cucina • La prima differenza è il linguaggio:linguaggio naturale, come l’italiano richiede una sorta di senso il senso comune è molto piu' complicato da realizzare in un computer di quanto uno comunemente possa aspettarsi • Per non parlare delle incomprensioni

  47. Istruzione (“buttare la pasta”) = comando • Ogni istruzione viene data in una frase e termina con un punto. (i comandi vanno separati uno dall’altro) • punto di partenza: ingredienti = dati in input • dove metto gli ingredienti? • contenitori per gli ingredienti (pentole, piatti) = variabilile variabili sono dei pezzi di memoria centrale (ram)(per i matematici: “x=y”) • tipi di contenitori per diverse categorie di ingredienti = tipi di dati

  48. Dati, variabili e tipi di dati • problemi quantitativi e qualitativi • un bicchiere non mi basta per contenere un litro d'acqua(tipi di dati omogenei ma di dimensioni diverse) • la pasta la metto in uno scolapasta • ma non posso usare uno scolapasta per metterci dell'acqua(tipi di dati eterogenei richiedono variabili fatte diversamente)

  49. Riempire le variabili • se ho un contenitore l'ingrediente contenuto viene buttato via quando ci metto un altro ingrediente • posso usare un contenitore per contenere solo un ingrediente alla volta: o latte o acqua • se ho un bicchiere di latte e voglio metterci dell'acqua il latte deve essere buttato via. • Quindi se in una variabile metto dentro 1 e poi 2, l’1 viene buttato via se non lo metto prima in un’altra variabile

  50. Le variabili hanno un nome • Se ho una pentola con dentro un tacchino posso dire:“mettere la pentola sul fuoco” • Allo stesso modo posso parlare di una variabile per compiere delle operazioni (“chiamare una procedura”) sul dato che è contenuto nella variabile anziche’ ripetere il dato ogni volta • (quindi una variabile dà un nome ad un pezzo di memoria)

More Related