Macchine Astratte (anche dette Macchine Virtuali)

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Macchine Astratte (anche dette Macchine Virtuali)"

Transcript

1 Macchine Astratte (anche dette Macchine Virtuali) Corso: Architettura degli Elaboratori Docenti: F. Barbanera, G. Bella UNIVERSITA DI CATANIA Dip. di Matematica e Informatica Esempi di macchine astratte riconoscitore vocale calcolatrice JVM (Java Virtual Machine) microchip ristorante F. Barbanera, G. Bella 2 Macchine Astratte v.2.1

2 Perche le macchine astratte? Una macchina astratta serve a computare. Esempi di computazione: svolgere un operazione aritmetica, eseguire un programma Java, preparare ordinazioni di piatti gastronomici, etc. Definizione astratta: computare vuol dire trasformare un insieme di dati. F. Barbanera, G. Bella 3 Macchine Astratte v.2.1 Perche computare? Per una migliore comprensione dei dati in input! 3+5 computazione1 8 i = j + k computazione2 ILOAD j ILOAD k IADD ISTORE i Attenzione: migliore e un concetto relativo! F. Barbanera, G. Bella 4 Macchine Astratte v.2.1

3 Perche computare? Da certi esempi di macchine concludiamo che computare puo essere una necessita. Pane fresco, prego! Ecco il denaro! computazione3 computazione Esame scritto di Architetture computazione5 Esame scritto di Architetture Questa prova e molto ma molto complicata, pero, visto che ho seguito bene le lezioni per tutto l anno, sento che riusciro ad ultimarla senza troppi problemi. Entro il 1964, l IBM era l azienda leader per la produzione di computer..aveva pero dei pressanti problemi di compatibilita F. Barbanera, G. Bella 5 Macchine Astratte v.2.1 Computazione input output regole meccanizzabili (procedimento effettivo) Computazione e una qualunque trasformazione di un input in un output mediante regole meccanizzabili. F. Barbanera, G. Bella 6 Macchine Astratte v.2.1

4 Modello Computazionale Un modello computazionale e una descrizione di come rappresentare l input, come interpretare l'output, come implementare il procedimento effettivo. Def. astratta: computare vuol dire trasformare un insieme di dati. Fissato un preciso modello computazionale, si puo dare una definizione piu concreta di computazione. F. Barbanera, G. Bella 7 Macchine Astratte v.2.1 nome dell inventore Alcuni modelli computazionali Gödel, basato sulla logica Church, basato sul calcolo di funzioni Post, basato sulla manipolazione di stringhe di caratteri Turing, basato su una macchina con un nastro e una testina F. Barbanera, G. Bella 8 Macchine Astratte v.2.1

5 Il modello computazionale di Alan Turing (1936) Basato sull osservazione di un essere umano che risolve un problema di calcolo seguendo un metodo meccanico. Questi scrive su un foglio usa un numero finito di simboli rilegge varie porzioni del lavoro svolto possiede uno stato mentale che e influenzato dalle azioni precedenti, e che influenza le azioni successive F. Barbanera, G. Bella 9 Macchine Astratte v.2.1 La macchina di Turing Una macchina per computare deve disporre di: un nastro infinito, suddiviso in celle, ciascuna capace di contenere un qualunque simbolo di un alfabeto una testina movibile, capace di leggere e/o scrivere un simbolo in una cella una scatola nera, nota come controllo finito, che memorizza lo stato mentale corrente F. Barbanera, G. Bella 10 Macchine Astratte v.2.1

6 Esempio celle nastro infinito A = {0, 1} testina mobile alfabeto simboli q 1 controllo finito stato F. Barbanera, G. Bella 11 Macchine Astratte v.2.1 Operazioni elementari della macchina Operazione 1: cambiare il simbolo contenuto nella cella sotto la testina. Tale operazione causa un cambiamento di stato. Operazione 2: spostare la testina da una cella a una adiacente. Tale operazione non causa un cambiamento di stato. F. Barbanera, G. Bella 12 Macchine Astratte v.2.1

7 Esempio di operazione A = {0, 1} q 12 F. Barbanera, G. Bella 13 Macchine Astratte v.2.1 Esempi di operazione A = {0, 1} q 2 F. Barbanera, G. Bella 14 Macchine Astratte v.2.1

8 Esempi di operazione A = {0, 1} q 2 F. Barbanera, G. Bella 15 Macchine Astratte v.2.1 Esempi di operazione A = {0, 1} q 2 F. Barbanera, G. Bella 16 Macchine Astratte v.2.1

9 Esempi di operazione A = {0, 1} q 2 F. Barbanera, G. Bella 17 Macchine Astratte v.2.1 Esempio di operazione 1 A = {0, 1} q 23 F. Barbanera, G. Bella 18 Macchine Astratte v.2.1

10 Programma di una macchina Stabilisce quali e quante operazioni di tipo 1 o di tipo 2 la macchina possa fare E un insieme di quintuple della forma: (q 1, a, b, M, q 2 ) essendo a, b A ed M {L, R, X} possibili spostamenti F. Barbanera, G. Bella 19 Macchine Astratte v.2.1 Esempio di programma (q 1, 1, 0, X, q 2 ) (q 2, 0, 0, L, q 2 ) (q 2, 0, 1, X, q 3 ) (q 3, 1, 1, R, q 3 ) Si osservi che il nuovo stato e funzione del simbolo letto, dello stato corrente e dello spostamento effettuato. F. Barbanera, G. Bella 20 Macchine Astratte v.2.1

11 Configurazione istantanea Configurazione istantanea di una macchina di Turing e la tripla costituita da: lista dei simboli contenuti nelle celle posizione della testina stato corrente Esempio: q 4 F. Barbanera, G. Bella 21 Macchine Astratte v.2.1 Esempio di programma e c.i. (q 1, 1, 0, X, q 2 ) (q 2, 0, 0, L, q 2 ) (q 2, 0, 1, X, q 3 ) (q 3, 1, 1, R, q 3 ) q q 2 configurazione iniziale F. Barbanera, G. Bella 22 Macchine Astratte v.2.1 q 2

12 Esempio di programma e c.i. (q 1, 1, 0, X, q 2 ) (q 2, 0, 0, L, q 2 ) (q 2, 0, 1, X, q 3 ) (q 3, 1, 1, R, q 3 ) q q 3 configurazione finale F. Barbanera, G. Bella 23 Macchine Astratte v.2.1 Modello Computazionale (ripasso) Un modello computazionale e una descrizione di come rappresentare l input, come interpretare l'output, come implementare il procedimento effettivo. Def. astratta: computare vuol dire trasformare un insieme di dati. Fissato un preciso modello computazionale, si puo dare una definizione piu concreta di computazione. F. Barbanera, G. Bella 24 Macchine Astratte v.2.1

13 Modello Computazionale di Turing input rappresentato dalla lista dei simboli contenuti nelle celle nella configurazione iniziale output va considerata la lista dei simboli contenuti nelle celle nella configurazione finale procedimento effettivo implementato come programma costituito da quintuple della forma appena vista Il modello computazionale di Turing si identifica con la Macchina di Turing. F. Barbanera, G. Bella 25 Macchine Astratte v.2.1 Computazione nel modello computazionale di Turing E una sequenza di configurazioni istantanee tali che: la configurazione iniziale e la prima nella sequenza ciascuna configurazione e ottenuta dalla precedente eseguendo l unica quintupla applicabile la configurazione finale e l ultima nella sequenza, qualora la sequenza sia finita F. Barbanera, G. Bella 26 Macchine Astratte v.2.1

14 Verso la programmazione imperativa La Macchina di Turing introduce alcuni elementi tipici della moderna programmazione imperativa: locazione celle aggiornabili in maniera distruttiva assegnamento quintuple assegnano un valore alla cella sotto la testina memoria nastro funge da memoria ad accesso sequenziale stato memorizzato nel controllo finito iterazione computazione come iterazione dell esecuzione delle quintuple F. Barbanera, G. Bella 27 Macchine Astratte v.2.1 Tutto era Hardware Inizialmente, Turing considera i programmi come parte integrante del controllo finito. (q 1, 1, 0, X, q 2 ) (q 2, 0, 0, L, q 2 ) (q 2, 0, 1, X, q 3 ) (q 3, 1, 1, R, q 3 ) (q 1, 1, 0, X, q 2 ) (q 2, 0, 0, L, q 2 ) (q 2, 0, 1, X, q 3 ) (q 3, 1, 1, R, q 3 ) q 2 Una macchina per una precisa computazione. F. Barbanera, G. Bella 28 Macchine Astratte v.2.1

15 Nasce il Software (q 1, 1, 0, X, q 2 ) Quindi, Turing intuisce che un programma puo essere codificato mediante simboli dell alfabeto di input (q 2, 0, 0, L, q 2 ) q 2 (q 2, 0, 1, X, q 3 ) (q 3, 1, 1, R, q 3 ) La codifica del programma e il software! F. Barbanera, G. Bella 29 Macchine Astratte v.2.1 Nasce il Software Quindi, Turing intuisce che un programma puo essere codificato mediante simboli dell alfabeto di input e un programma capace di simulare il programma qui codificato programma universale q 2 Nasce il concetto di Macchina di Turing Universale, una vera macchina programmabile. F. Barbanera, G. Bella 30 Macchine Astratte v.2.1

16 Dualismo Hardware-Software Hardware cio che e fisicamente realizzato Software cio che e descrizione formale delle operazioni da svolgere Nascono come equivalenti: quanto realizzato in hardware e realizzabile via software e viceversa. F. Barbanera, G. Bella 31 Macchine Astratte v.2.1 Architettura di Van Neumann E basata sulla Macchina di Turing Universale La CPU (Central Processing Unit) interpreta il Programma e legge i Dati dalla RAM (Random Access Memory). F. Barbanera, G. Bella 32 Macchine Astratte v.2.1

17 Architettura di Van Neumann La maggioranza delle architetture concrete sono basate su di essa (per ragioni tecnologiche) Descritta mediante un astrazione delle componenti di una Macchina di Turing Universale, ossia una loro descrizione nel modo piu generale possibile Le macchine astratte basate sull architettura di Van Neumann sono dette imperative perche basate su comandi (istruzioni) F. Barbanera, G. Bella 33 Macchine Astratte v.2.1 Architettura di Van Neumann memoria (nastro nelle M. di T.) contenente dati e programmi; possibile strutturazione non lineare dei dati operazioni sui dati (semplici nelle M. di T.) tecnica di lettura dei dati (testina nelle M. di T.) dalla memoria tecnica per determinare l istruzione seguente (sequenzializzazione delle quintuple nelle M. di T.) tecnica per l esecuzione di programmi (controllo finito nelle M. di T.) F. Barbanera, G. Bella 34 Macchine Astratte v.2.1

18 (E una descrizione piu dettagliata dell architettura di Van Neumann) Macchina Astratta (Imperativa) E un insieme di strutture dati per memorizzare dati, e di algoritmi per eseguire programmi. componenti fondamentali memoria operazioni primitive operazioni e strutture dati per gestire il trasferimento dati, ossia leggere gli operandi e memorizzare i risultati delle istruzioni operazioni e strutture dati per gestire il controllo di sequenza, ossia l ordine di esecuzione delle operazioni del programma interprete per l esecuzione del programma F. Barbanera, G. Bella 35 Macchine Astratte v.2.1 Osservazioni Ovvia corrispondenza fra macchine astratte e linguaggi di programmazione (imperativi, funzionali, ad oggetti, ecc.) Modelli computazionali diversi conducono a nozioni diverse di macchine astratte F. Barbanera, G. Bella 36 Macchine Astratte v.2.1

19 Struttura di una Macchina Astratta F. Barbanera, G. Bella 37 Macchine Astratte v.2.1 L Interprete E preposto all esecuzione dei programmi Coordina il funzionamento delle altre componenti, allo scopo di eseguire un ciclo FETCH/EXECUTE continuamente fino all esecuzione dell istruzione primitiva HALT F. Barbanera, G. Bella 38 Macchine Astratte v.2.1

20 mediante operazioni e strutture dati per gestire il controllo di sequenza mediante operazioni e strutture dati per gestire il trasferimento dati si acquisisce dalla memoria operazioni primitive Schema di un Interprete F. Barbanera, G. Bella 39 Macchine Astratte v.2.1 Esempio 1 di Macchina Astratta - macchina fisica tradizionale - memoria: RAM operazioni primitive: aritmetico-logiche, su stringhe di bit, lettura-scrittura celle memoria trasferimento dati: modalita per indirizzamento operandi e per memorizzazione risultati controllo di sequenza: strutture per punti di ritorno sottoprogrammi, registro contatore istruzioni (PC), algoritmi per gestione salti condizionati e non interprete: vari interpreti dei comandi F. Barbanera, G. Bella 40 Macchine Astratte v.2.1

21 Esempio 2 di Macchina Astratta - macchina fisica a pila - memoria: nel modello tradizionale, memoria solo per memorizzazione statica di programmi e dati operazioni primitive: push e pop trasferimento dati: pila per operandi e operatori, algoritmi per prelevare e memorizzare controllo di sequenza interprete F. Barbanera, G. Bella 41 Macchine Astratte v.2.1 Esempio 3 di Macchina Astratta -ristorantememoria: taccuini dei camerieri (input), dispensa (dati), tavole imbandite (output) operazioni primitive: varie capacita culinarie dell insieme dei cuochi trasferimento dati: regole per trasferimento ingredienti dalla dispensa ai cuochi controllo di sequenza: ordine di arrivo delle ordinazioni ai cuochi, ordine di utilizzo degli ingredienti di una ricetta interprete: camerieri F. Barbanera, G. Bella 42 Macchine Astratte v.2.1

22 E l Input/Output? Fra le componenti di una Macchina Astratta, non abbiamo incluso le strutture dati e gli algoritmi per la gestione dell Input/Output. Difficilmente esse possono essere generalizzate! Ad esempio, l input potrebbe essere memorizzato in una lista oppure in un albero, oppure Se l input fosse una lista di stringhe, si potrebbe concedere la lettura delle stringhe dispari o delle stringhe pari in posizione o in lunghezza. F. Barbanera, G. Bella 43 Macchine Astratte v.2.1 Il Linguaggio Macchina Si consideri una Macchina Astratta M LM, il linguaggio macchina di M, e il linguaggio in cui si esprimono tutti i programmi interpretabili dall interprete di M LMEST, il linguaggio macchina esteso di M, e un linguaggio di stringhe di caratteri direttamente traducibili in LM Esempio: un programma in LM e una sequenza di vari livelli di tensione per i bit di una memoria fisica; l equivalente in LMEST e un insieme di stringhe di 0 e di 1. F. Barbanera, G. Bella 44 Macchine Astratte v.2.1

23 Il Linguaggio Macchina LM e il linguaggio in cui i programmi eseguibili da M vengono rappresentati internamente LMEST e il linguaggio in cui i programmi eseguibili da M vengono rappresentati esternamente Il medesimo oggetto programma astratto puo essere rappresentato in ambedue i linguaggi. Quindi non faremo differenza fra i due linguaggi. Il LOADER carica un programma in LMEST, lo traduce in LM e lo carica nella memoria della macchina. F. Barbanera, G. Bella 45 Macchine Astratte v.2.1 Un binomio inscindibile Data una macchina astratta, resta definito il linguaggio di programmazione che e il suo linguaggio macchina Dato un linguaggio di programmazione, resta definita la macchina astratta che lo abbia come suo cuoco linguaggio macchina spaghetti, insalata, astratta Macchina M Linguaggio LM lavabiancheria delicato, colori,forte F. Barbanera, G. Bella 46 Macchine Astratte v.2.1

24 Complessita In virtu del binomio visto, si puo affermare che la complessita di una macchina dipende dalla complessita del suo linguaggio, e viceversa. Esempio 1. Si supponga che LM preveda il tipo astratto LISTA. Allora, M deve contenere operazioni elementari per realizzare Head, Tail, Length, ed algoritmi per l allocazione dinamica della memoria per le liste. Esempio 2. Si pensi a un moderno HLL (high-level language) F. Barbanera, G. Bella 47 Macchine Astratte v.2.1 Quando passare all hardware? Oggi, e tecnicamente possibile realizzare una macchina astratta associata ad un linguaggio di alto livello. Due degli inconvenienti derivanti sarebbero: - costi della realizzazione - scarsa flessibilita della macchina ottenuta Quindi, in pratica, solo macchine astratte piuttosto semplici vengono realizzate in hardware. F. Barbanera, G. Bella 48 Macchine Astratte v.2.1

25 Alternative? In generale, come implementare una Macchina Astratta M? Esistono 3 realizzazioni: hardware : realizzare M fisicamente interpretativa : emulare M mediante una macchina gia realizzata compilativa : tradurre il linguaggio di M in quello di una macchina gia realizzata gia trattato F. Barbanera, G. Bella 49 Macchine Astratte v.2.1 Realizzazione Interpretativa Sia M la Macchina Astratta da realizzare. Esista una Macchina Astratta M gia realizzata. M e detta macchina ospite. Si realizzano tutti gli algoritmi e le strutture dati che definiscono le componenti di M mediante programmi e strutture dati di LM. Se questi ultimi sono memorizzati in una memoria ad alta velocita, di sola lettura, sullo stesso chip contenente le altre componenti di M, si parla di interpretazione via firmware. F. Barbanera, G. Bella 50 Macchine Astratte v.2.1

26 Realizzazione Compilativa Come nel caso precedente, sia M la Macchina Astratta da realizzare, e sia M la macchina ospite. Si traduce l intero programma scritto in LM in un programma funzionalmente equivalente scritto in LM. Tale traduzione e eseguita dal compilatore. Le componenti di M in realta non vengono realizzate, ma l utente ugualmente godra delle funzionalita di M. F. Barbanera, G. Bella 51 Macchine Astratte v.2.1 Nasce un problema Come calcolare 3+5 mentre si dispone di una macchina fisica che incrementa un numero binario? C e una differenza di potenza espressiva fra le due macchine. In generale, la differenza di potenza espressiva fra la Macchina Astratta da realizzare e la macchina ospite esistente, e detta semantic gap. F. Barbanera, G. Bella 52 Macchine Astratte v.2.1

27 Efficienza della realizzazione Spesso il semantic gap e cosi ampio che sia l interpretazione che la compilazione potrebbero risultare inefficienti (M sarebbe lenta). Con l interpretazione, l interprete di M e realizzato da un programma in LM, eseguito dall interprete di M Con la compilazione, il programma in LM potrebbe avere dimensioni enormi, e quindi essere lento; il compilatore stesso e molto complicato se LM ed LM sono molto diversi Pertanto, si e pensato a delle macchine intermedie F. Barbanera, G. Bella 53 Macchine Astratte v.2.1 Singola macchina intermedia MM macchina intermedia macchina che vogliamo realizzare macchina gia realizzata programma in in LM Mi Mi interpretazione compilazione programma in in LMi LMi Mi va progettata in modo da massimizzare compattezza del codice in LMi prodotto velocita d interpretazione di Mi su M M M programma in in LM F. Barbanera, G. Bella 54 Macchine Astratte v.2.1

28 Esperienze pratiche Mi e tipicamente solo un estensione di M poiche ne usa il medesimo interprete, potenziato con un insieme di routine dedicate dette run-time system Java si basa sullo schema appena visto: Mi e la JVM (Java Virtual Machine); LMi e detto Bytecode; il runtime system e detto Java RunTime Environment Tutte le combinazioni compilazione/interpretazione sono possibili La singola macchina viene generalizzata a piu macchine intermedie all uopo di maggior flessibilita del sistema F. Barbanera, G. Bella 55 Macchine Astratte v.2.1 Una gerarchia di macchine per esempio, un HLL computer reale F. Barbanera, G. Bella 56 Macchine Astratte v.2.1

29 Osservazione Alcune componenti di una macchina possono essere identiche ad altrettante della macchina ospite. Esempio. Si immagini di poter utilizzare in C alcune routine per l aritmetica binaria. Esempio schematico. Ciascun linguaggio ha componenti precipue (interpretate o compilate nei livelli inferiori) ed altre ereditate immutate. F. Barbanera, G. Bella 57 Macchine Astratte v.2.1 Tipica gerarchia di macchine in un moderno calcolatore Il passaggio a ciascun livello intermedio colma una parte del semantic gap. F. Barbanera, G. Bella 58 Macchine Astratte v.2.1

30 Livello 0 logica digitale Componenti fondamentali sono le porte logiche (GATES ). Le porte logiche sono dispositivi analogici, ma fanno da tramite verso quelli binari (e quindi digitali) perche realizzano funzionalita (Not, And, Or, ) formalizzabili mediante una teoria binaria detta Algebra di Boole. Combinando variamente le porte logiche, si otterranno i registri e le memorie. F. Barbanera, G. Bella 59 Macchine Astratte v.2.1 Livello 1 - microprogrammazione Componenti fondamentali sono registri e circuiti digitali che realizzano varie funzionalita aritmetico-logiche. Troviamo anche il datapath, le memorie, l IFU (Instruction-Fetch Unit). Nasce il concetto di flusso di informazione poiche sequenze di bit viaggiano da una componente all altra della Macchina Astratta di questo livello, venendo eventualmente elaborate. F. Barbanera, G. Bella 60 Macchine Astratte v.2.1

31 Livello 2 istruzioni macchina Livello cui ci si riferisce quando si parla di linguaggio macchina. Istruzioni tipiche sono: ADD, MOVE, SUB, etc Tale livello e direttamente implementato in hardware nel caso delle architetture RISC, mentre e realizzato mediante interpretazione firmware nelle architetture CISC. F. Barbanera, G. Bella 61 Macchine Astratte v.2.1 programmare fino a questo livello e per sistemisti Livello 3 sistema operativo Esso non copre del tutto il livello sottostante. Molte istruzioni del 2 sono disponibili insieme a nuove, piu evolute funzionalita : FILE e FILE SYSTEM la prima organizzazione strutturata e gerarchica delle informazioni MEMORIA VIRTUALE la macchina offre un enorme quantita di memoria in piu rispetto a quella fisica PROCESSI e MULTITASKING piu pezzi di programma in esecuzione indipendente e pseudo-parallela F. Barbanera, G. Bella 62 Macchine Astratte v.2.1

32 Livello 4 assembly E il primo a presentare alcune caratteristiche elementari di un linguaggio di programmazione (etichette, variabili globali, procedure, ) E realizzato mediante compilazione. Il compilatore si chiama assembler. L assembler e tipicamente scritto in istruzioni macchina (di livello 2). F. Barbanera, G. Bella 63 Macchine Astratte v.2.1 Livello 5 HLL I moderni linguaggi di programmazione si posizionano a questo livello. Esistono varianti sia interpretative che compilate di certe macchine di questo livello. (Ad esempio, quella il cui linguaggio e il BASIC) Osservazione 1. La JVM si sta consolidando fra i livelli 4 e 5. Osservazione 2. I livelli descritti sono solo una possibile strutturazione gerarchica di un sistema. F. Barbanera, G. Bella 64 Macchine Astratte v.2.1

33 Al di sotto della logica digitale Possiamo individuare almeno 2 livelli: livello -1 elettronica circuitale; si combinano i dispositivi di base (transistor, diodi, etc ) per ottenere le porte logiche livello -2 fisica dello stato solido; si sfrutta la struttura fisica dei solidi e le proprieta dei semiconduttori per realizzare dispositivi di base Servono da tramite fra i fenomeni fisici e le tecniche per l automazione del calcolo. Immaginare delle Macchine Astratte a tali livelli sarebbe pura speculazione. F. Barbanera, G. Bella 65 Macchine Astratte v.2.1 Programmazione e livelli di astrazione Un programma scritto in un HLL aggiunge un livello alla gerarchia. Esso estende la Macchina Astratta associata all HLL con nuove strutture dati e nuove operazioni. Quindi, la potenza di un HLL si puo misurare coi meccanismi di astrazione che esso offre. Nessun linguaggio al momento estende il controllo di sequenza, del trasferimento dei dati, o la gestione della memoria. F. Barbanera, G. Bella 66 Macchine Astratte v.2.1

Macchine Astratte (anche dette Macchine Virtuali)

Macchine Astratte (anche dette Macchine Virtuali) Macchine Astratte (anche dette Macchine Virtuali) Corso: Architettura degli Elaboratori Docente: Franco Barbanera Lucidi by G.Bella (modificati by F.Barbanera) UNIVERSITA DI CATANIA Dip. di Matematica

Dettagli

Macchine Astratte. Definizione e tipi di implementazione

Macchine Astratte. Definizione e tipi di implementazione Macchine Astratte Definizione e tipi di implementazione Macchine astratte Sono un insieme di concetti che sintetizzano le caratteristiche base di ogni linguaggio di programmazione Sono un modello di riferimento

Dettagli

Macchine astratte, linguaggi, interpretazione, compilazione

Macchine astratte, linguaggi, interpretazione, compilazione Macchine astratte, linguaggi, interpretazione, compilazione 1 Macchine astratte una collezione di strutture dati ed algoritmi in grado di memorizzare ed eseguire programmi componenti della macchina astratta

Dettagli

La Programmazione. Cos è la programmazione? Concetti preliminari. Programmazione e Laboratorio di Programmazione Luca Tesei 1

La Programmazione. Cos è la programmazione? Concetti preliminari. Programmazione e Laboratorio di Programmazione Luca Tesei 1 La Programmazione Cos è la programmazione? Concetti preliminari Programmazione e Laboratorio di Programmazione Luca Tesei 1 Sommario La programmazione, questa sconosciuta Programmiamo Macchine Astratte

Dettagli

Sommario. La Programmazione. Programmare vs Usare un computer. Programmare vs Usare un computer. Programmi ognidove. Programmi ognidove

Sommario. La Programmazione. Programmare vs Usare un computer. Programmare vs Usare un computer. Programmi ognidove. Programmi ognidove Sommario La zione Cos è la programmazione? Concetti preliminari La programmazione, questa sconosciuta Programmiamo Macchine Astratte Linguaggi di basso e alto livello e loro implementazione Esempi: C,

Dettagli

La Programmazione. Programmare Macchine Astratte Compilazione / Interpretazione Java. Laboratorio di Programmazione - Luca Tesei

La Programmazione. Programmare Macchine Astratte Compilazione / Interpretazione Java. Laboratorio di Programmazione - Luca Tesei La Programmazione Programmare Macchine Astratte Compilazione / Interpretazione Java 1 Programmare vs Usare un computer Esite una grossa differenza e l'ignoranza della stessa genera confusione e incomprensioni

Dettagli

Macchine Astratte. Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari. Linguaggi di Programmazione feb, 2016

Macchine Astratte. Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari. Linguaggi di Programmazione feb, 2016 Macchine Astratte Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari Linguaggi di Programmazione 010194 29 feb, 2016 Sommario 1 Introduzione Macchina astratta Interprete Implementazione

Dettagli

Lezione 1. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Lezione 1. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata. Lezione 1 Sistemi operativi 4 marzo 2014 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 14 1.1 Di cosa parliamo in questa lezione? È una introduzione generale ai sistemi

Dettagli

Traduzione ed Interpretazione

Traduzione ed Interpretazione Traduzione ed Interpretazione Queste sconosciute Siano L Linguaggio ad alto livello M L Macchina astratta di L M 0 Macchina ospite Implementazione interpretativa di L Implementazione compilativa di L Simulazione

Dettagli

Traduzione ed Interpretazione. Queste sconosciute

Traduzione ed Interpretazione. Queste sconosciute Traduzione ed Interpretazione Queste sconosciute Siano L Linguaggio ad alto livello M L M 0 Macchina astratta di L Macchina ospite Implementazione interpretativa di L Simulazione software di M L su M 0

Dettagli

Corso di Linguaggi di Programmazione + Laboratorio

Corso di Linguaggi di Programmazione + Laboratorio Corso di inguaggi di Programmazione + aboratorio Capitolo 1 - Introduzione Si ringrazia il Dott. Marco de Gemmis per la collaborazione nella predisposizione del materiale didattico Apprendimento di un

Dettagli

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori AXO - Architettura dei Calcolatori e Sistema Operativo organizzazione strutturata dei calcolatori I livelli I calcolatori sono progettati come una serie di livelli ognuno dei quali si basa sui livelli

Dettagli

Architettura di Von Neumann

Architettura di Von Neumann Architettura di Von Neumann L architettura è ancora quella classica sviluppata da Von Neumann nel 1947. L architettura di Von Neumann riflette le funzionalità richieste da un elaboratore: memorizzare i

Dettagli

Macchine astratte, linguaggi, interpretazione, compilazione

Macchine astratte, linguaggi, interpretazione, compilazione Macchine astratte, linguaggi, interpretazione, compilazione 1 Macchine astratte una collezione di strutture dati ed algoritmi in grado di memorizzare ed eseguire programmi componenti della macchina astratta

Dettagli

Macchine astratte, linguaggi, interpretazione, compilazione

Macchine astratte, linguaggi, interpretazione, compilazione Macchine astratte, linguaggi, interpretazione, compilazione 1 Macchine astratte una collezione di strutture dati ed algoritmi in grado di memorizzare ed eseguire programmi componenti della macchina astratta

Dettagli

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Lez. 5 La Programmazione. Prof. Salvatore CUOMO Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente

Dettagli

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI ELEMENTI DI PROGRAMMAZIONE a.a. 22/3 MACCHINE, ALGORITMI, PROGRAMMI Andrea Prevete, UNINA2 23 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a stati finiti)... macchine di

Dettagli

Marco Tarini - Università dell'insubria A.A. 2016/17. Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate

Marco Tarini - Università dell'insubria A.A. 2016/17. Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Astrazione e Macchine Virtuali parte 2: in un tipico calcolatore I livelli nei moderni calcolatori 6. Livello delle applicazioni

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Ciclo di, classificazione e livelli delle architetture di calcolatore Lezioni del Corso di Laurea Triennale in Informatica Per gentilezza del Prof. Sebastiano Pizzutilo (Dipartimento

Dettagli

Architettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Architettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) Computer elaboratore di informazione riceve informazione in ingresso (input) elabora questa informazione restituisce informazione ottenuta elaborando

Dettagli

A.A. 2018/2019. CPU e Linguaggio Macchina FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

A.A. 2018/2019. CPU e Linguaggio Macchina FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante A.A. 2018/2019 Docente Prof. Raffaele Pizzolante FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE Architettura di Von Neumann Modello concettuale di un architettura di computer che permette di rappresentare,

Dettagli

Fondamenti di Informatica. Ipotesi fondamentale. Irrisolubilità. Prof. V.L. Plantamura Informatica e Comunicazione Digitale a.a.

Fondamenti di Informatica. Ipotesi fondamentale. Irrisolubilità. Prof. V.L. Plantamura Informatica e Comunicazione Digitale a.a. Fondamenti di Informatica Prof. V.L. Plantamura Informatica e Comunicazione Digitale a.a. 2006-2007 Ipotesi fondamentale Tesi di Church Qualunque algoritmo può essere espresso sotto forma di matrice funzionale

Dettagli

Macchine Astratte. Luca Abeni. February 22, 2017

Macchine Astratte. Luca Abeni. February 22, 2017 Macchine Astratte February 22, 2017 Architettura dei Calcolatori - 1 Un computer è composto almeno da: Un processore (CPU) Esegue le istruzioni macchina Per fare questo, può muovere dati da/verso la memoria

Dettagli

Introduzione al funzionamento di un calcolatore elettronico

Introduzione al funzionamento di un calcolatore elettronico 1 / 21 Introduzione al funzionamento di un calcolatore elettronico Natascia Piroso 23 settembre 2009 2 / 21 Sommario Che cos è un calcolatore? 1 Che cos è un calcolatore? Definizioni preliminari Il calcolatore

Dettagli

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) 1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

Architettura hardware

Architettura hardware Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Settimana n.2. Obiettivi Esecuzione di un programma. Tutorial su CodeBlocks e ambiente di sviluppo.

Settimana n.2. Obiettivi Esecuzione di un programma. Tutorial su CodeBlocks e ambiente di sviluppo. Settimana n.2 Obiettivi Esecuzione di un programma. Tutorial su CodeBlocks e ambiente di sviluppo. Contenuti Linguaggi di programmazione Dati e istruzioni Architettura di un elaboratore Uso del compilatore

Dettagli

Istruzioni e linguaggio macchina

Istruzioni e linguaggio macchina Istruzioni e linguaggio macchina I linguaggi macchina sono composti da istruzioni macchina, codificate in binario, con formato ben definito processori diversi hanno linguaggi macchina simili scopo: massimizzare

Dettagli

Il linguaggio di programmazione Python

Il linguaggio di programmazione Python Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Macchina Astratta: struttura e realizzazione.

Macchina Astratta: struttura e realizzazione. Macchina Astratta: struttura e realizzazione. Sommario Macchina Astratta e l interprete di Macchina Hight e Low Level Languages Implementazione di un Linguaggio Macchina Intermedia Gerarchia di Macchine

Dettagli

LABORATORIO DI INFORMATICA

LABORATORIO DI INFORMATICA LABORATORIO DI INFORMATICA Corso di laurea in Scienze della Formazione Primaria a.a.2014/2015 A cura del Prof. Sergio Miranda LEZIONE N.3 Architettura di Von Neumann PREMESSA Caratteristica fondamentale

Dettagli

PROBLEMI E ALGORITMI

PROBLEMI E ALGORITMI Fondamenti di Informatica PROBLEMI E ALGORITMI Fondamenti di Informatica - D. Talia - UNICAL 1 Specifica di un algoritmo Primo approccio, scrittura diretta del programma: la soluzione coincide con la codifica

Dettagli

Programmazione: Sommario

Programmazione: Sommario Programmazione: Sommario Concetti di Base della Programmazione; Algoritmi; Diagrammi di Flusso; Istruzioni Sequenziali, Condizionali, Cicliche; Logo Variabili, Procedure e Parametri; 1 Il Problema computazionale

Dettagli

Fondamenti di Informatica e Programmazione. P ro f. G i a n n i D A n g e l o

Fondamenti di Informatica e Programmazione. P ro f. G i a n n i D A n g e l o Fondamenti di Informatica e Programmazione CPU e Linguag gio Macchina P ro f. G i a n n i D A n g e l o Email: giadangelo@unisa.it A.A. 2018/19 Elaborazione dell Informazione L'elaborazione delle informazioni

Dettagli

Cosa è un programma. Informatica di Base -- R.Gaeta 18

Cosa è un programma. Informatica di Base -- R.Gaeta 18 Cosa è un programma Il programma è la scatola nera che risolve il problema computazionale; Il programma è una sequenza di istruzioni che devono essere eseguite; Il programma è la traduzione per il computer

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Corso di Laurea in ITPS a.a. 07-08 Macchine Astratte Valeria Carofiglio (Questo materiale è una rivisitazione del materiale prodotto da Nicola Fanizzi) Contenuti Macchine Astratte

Dettagli

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina

Dettagli

Algoritmo: procedimento non ambiguo che in un numero finito di passi risolve un problema (o una classe di problemi)

Algoritmo: procedimento non ambiguo che in un numero finito di passi risolve un problema (o una classe di problemi) LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 2 LA MACCHINA DI VON NEUMANN Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna

Dettagli

Istruzioni e linguaggio macchina

Istruzioni e linguaggio macchina Istruzioni e linguaggio macchina I linguaggi macchina sono composti da istruzioni macchina, codificate in binario, con formato ben definito processori diversi hanno linguaggi macchina simili scopo: massimizzare

Dettagli

Il Software programmabili programma algoritmo

Il Software programmabili programma algoritmo Il Software La proprietà fondamentale dei calcolatori e` quella di essere programmabili cioè in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall utente mediante un programma, ossia

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende

Dettagli

Programmazione A.A Architettura dei Calcolatori. ( Lezione V ) Componenti hardware e loro schema funzionale

Programmazione A.A Architettura dei Calcolatori. ( Lezione V ) Componenti hardware e loro schema funzionale Programmazione A.A. 2002-03 I Architettura dei Calcolatori ( Lezione V ) Componenti hardware e loro schema funzionale Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica

Dettagli

Rappresentazione dell informazione

Rappresentazione dell informazione Rappresentazione dell informazione Codifica dei numeri Rappresentazioni in base 2, 8, 10 e 16 Rappresentazioni M+S, C1 e C2 Algoritmi di conversione di base Algoritmi di somma, moltiplicazione e divisione

Dettagli

Architettura dei calcolatori

Architettura dei calcolatori Cos'è un calcolatore? Architettura dei calcolatori Esecutore automatico di algoritmi Macchina universale Elementi di Informatica Docente: Giorgio Fumera Corso di Laurea in Edilizia Facoltà di Architettura

Dettagli

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica Programmazione Dipartimento di Matematica Ing. Cristiano Gregnanin Corso di laurea in Matematica 29 febbraio 2016 1 / 28 Linguaggi 2 / 28 Linguaggi 3 / 28 Linguaggi di alto livello Si basano su una macchina

Dettagli

Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a Docente: H. Muccini

Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a Docente: H. Muccini [http://www.di.univaq.it/muccini/labarch] Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a. 2005-2006 Docente: H. Muccini Lecture 2: Prime Istruzioni -Concetti Fondamentali

Dettagli

ASTRAZIONE. Sono indipendenti dalla macchina hardware sottostante ASTRAZIONE 1

ASTRAZIONE. Sono indipendenti dalla macchina hardware sottostante ASTRAZIONE 1 ASTRAZIONE Esistono linguaggi a vari livelli di astrazione Linguaggio Macchina: implica la conoscenza dei metodi utilizzati per la rappresentazione delle informazioni Linguaggio Macchina e Assembler: implica

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 Programma del corso Informatica di

Dettagli

Introduzione: informatica. 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina Bosco

Introduzione: informatica. 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina Bosco Introduzione: informatica 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina Bosco Indice - di cosa si occupa l informatica - una definizione della scienza informatica - cosa è un

Dettagli

Macchina di von Neumann/Turing

Macchina di von Neumann/Turing Macchina di von Neumann/Turing Concetto di programma memorizzato Memoria principale per dati e istruzioni ALU opera su dati in formato binario Unità di controllo che interpreta le istruzioni in memoria

Dettagli

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi Istruzioni variabili e tipi Sottoprogrammi Strutture di controllo Ricorsione 1 2 Obiettivo Ciclo di sviluppo di programmi Risoluzione

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Dettagli

ASTRAZIONE ASTRAZIONE

ASTRAZIONE ASTRAZIONE ASTRAZIONE Esistono linguaggi a vari livelli di astrazione Linguaggio Macchina: implica la conoscenza dei metodi utilizzati per la rappresentazione delle informazioni Linguaggio Macchina e Assembler: implica

Dettagli

Architettura di Von Neumann

Architettura di Von Neumann Architettura del calcolatore Architettura di Von Neumann L architettura è ancora quella classica sviluppata da Von Neumann nel 1947. L architettura di Von Neumann riflette le funzionalità richieste da

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Programmazione per BioInformatica Introduzione. Docente. Programma del corso. Nicola Drago

Programmazione per BioInformatica Introduzione. Docente. Programma del corso. Nicola Drago Programmazione per BioInformatica Introduzione Nicola Drago nicoladrago@univrit Dipartimento di Informatica Università di Verona Docente Nicola Drago Dip Di Informatica e-mail: nicoladrago@univrit Programma

Dettagli

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori Programma del corso o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori o Elementi di Programmazione Algoritmi e programmi o Algoritmo

Dettagli

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori Programma del corso Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori Cos è un Calcolatore? Un computer (calcolatore) è una macchina

Dettagli

Lezione 15 Il Set di Istruzioni (1)

Lezione 15 Il Set di Istruzioni (1) Lezione 15 Il Set di Istruzioni (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Un quadro della situazione Input/Output Sistema di Interconnessione Registri

Dettagli

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni Istruzioni macchina Linguaggio macchina Insieme delle istruzioni (instruction set) che la CPU puo eseguire Capitolo 10 1 2 Elementi di un istruzione macchina Codice operativo Specifica l operazione da

Dettagli

Informatica Teorica. Macchine a registri

Informatica Teorica. Macchine a registri Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire

Dettagli

Fondamenti di Informatica A. A / 1 9

Fondamenti di Informatica A. A / 1 9 Fondamenti di Informatica Prof. Marco Lombardi A. A. 2 1 8 / 1 9 Architettura di Von Neumann Architettura di Von Neumann: l Unità di Elaborazione L Unità di Elaborazione L unità di elaborazione (CPU) contiene

Dettagli

Architettura del. Calcolatori (1) Calcolatori (2) L architettura di Von Neumann. CPU RAM Memoria I/O. secondaria. bus

Architettura del. Calcolatori (1) Calcolatori (2) L architettura di Von Neumann. CPU RAM Memoria I/O. secondaria. bus Architettura del calcolatore Calcolatori (1) Introdotti all'inizio degli anni 1940 Costruiti assemblano componenti elettronici elementari per memorizzare informazioni ed eseguire programmi informazioni

Dettagli

Architettura del Calcolatore

Architettura del Calcolatore Giuseppe Manco Lezione 3 17 Ottobre 2003 Architettura del calcolatore Il calcolatore è uno strumento programmabile per la rappresentazione, la memorizzazione e l elaborazione delle informazioni un calcolatore

Dettagli

La nozione di algoritmo

La nozione di algoritmo La nozione di algoritmo Agostino Dovier Dip. di Matematica e Informatica, Univ. Udine UDINE, Aprile 2015 Agostino Dovier (DIMI) La nozione di algoritmo UDINE 1 / 17 Un algoritmo viene descritto in un certo

Dettagli

Corso di Architettura (Prof. Scarano) 09/04/2002

Corso di Architettura (Prof. Scarano) 09/04/2002 Corso di Architettura (Prof. Scarano) 09/0/2002 Un quadro della situazione Lezione 15 Il Set di Istruzioni (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno

Dettagli

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Lez. 8 La Programmazione Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Dott. Pasquale De Michele Dott. Raffaele Farina Dipartimento di Matematica e Applicazioni Università di Napoli

Dettagli

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica Il calcolatore È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica ogni livello di descrizione è caratterizzato da una struttura rappresentante l organizzazione

Dettagli

Organizzazione strutturata

Organizzazione strutturata Organizzazione strutturata Evoluzione storica a.a. 2002-03 L. Borrelli 1 Complessità dei Sistemi di Elaborazione Caratteristica dei Sistemi di Elaborazione: Complessità Per trattare sistemi complessi è

Dettagli

Note su Macchine Astratte

Note su Macchine Astratte Note su Macchine Astratte Sommario Nelle presenti note, partendo dalla definizione del modello computazionale delle Macchine di Turing, si arriva alla nozioni di Macchina Astratta 1, realizzazione di macchine

Dettagli

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Corso di Fondamenti di Informatica Linguaggi di Programmazione Corso di Informatica Linguaggi di Programmazione Anno Accademico 2011/2012 Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di un

Dettagli

Corso di Programmazione Dati e Istruzioni. Comunicazione dell algoritmo all elaboratore. Programmazione. Dott. Pasquale Lops

Corso di Programmazione Dati e Istruzioni. Comunicazione dell algoritmo all elaboratore. Programmazione. Dott. Pasquale Lops Materiale didattico preparato dal dott. Stefano Ferilli Corso di Programmazione Dati e Istruzioni Dott. Pasquale Lops lops@di.uniba.it Corso di Programmazione - DIB 1/28 Comunicazione dell algoritmo all

Dettagli

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione Fortran Cobol Basic Pascal Python C

Dettagli

Algoritmi e Complessità

Algoritmi e Complessità Algoritmi e Complessità Università di Camerino Corso di Laurea in Informatica (tecnologie informatiche) III periodo didattico Docente: Emanuela Merelli Email:emanuela.merelli@unicam.it a.a. 2002-03 e.merelli

Dettagli

INFORMATICA. L informatica comprende:

INFORMATICA. L informatica comprende: Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione

Dettagli

Architettura di un elaboratore

Architettura di un elaboratore Informatica 1 Hardware e Software ing. Luigi Puzone 1 Architettura di un elaboratore Architettura organizzazione logica dei componenti interni della macchina modo in cui questi componenti cooperano per

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic

Dettagli

Sistemi di Elaborazione

Sistemi di Elaborazione Sistemi di Elaborazione Ingegneria delle Telecomunicazioni nicola.tonellotto@isti.cnr.it Libro di testo inclusa Appendice B The Basics of Logic Design disponibile online Programma delle lezioni e lucidi

Dettagli

Algoritmi, linguaggi e programmi. Emilio Di Giacomo e Walter Didimo

Algoritmi, linguaggi e programmi. Emilio Di Giacomo e Walter Didimo Algoritmi, linguaggi e programmi Emilio Di Giacomo e Walter Didimo Risolvere i problemi Il calcolatore permette di risolvere molti problemi, ma sfortunatamente non tutti Il concetto di algoritmo consente

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Introduzione al corso Prof. Venturino Taggi e prof. Alfredo Accattatis, slide (rielaborate) del prof. Emiliano Casalicchio accattatis@ing.uniroma2.it taggi@ing.uniroma2.it Concetti

Dettagli

Abilità Informatiche e Telematiche

Abilità Informatiche e Telematiche Abilità Informatiche e Telematiche (Laurea Triennale + Laurea Magistrale) Marco Pedicini mailto:marco.pedicini@uniroma3.it Corso di Laurea Magistrale in Informazione, Editoria e Giornalismo, Università

Dettagli

M 2 M 1. Architettura. Architettura dei calcolatori. Paolo Bison. struttura e funzionalità di un calcolatore hardware software

M 2 M 1. Architettura. Architettura dei calcolatori. Paolo Bison. struttura e funzionalità di un calcolatore hardware software Architettura dei calcolatori Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova Architettura struttura e funzionalità di un calcolatore hardware software Architettura dei calcolatori,

Dettagli

Architettura. Neumann rivista

Architettura. Neumann rivista Architettura dei calcolatori Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova Architettura struttura e funzionalità di un calcolatore hardware software Hardware Architettura dei

Dettagli

Teoria dell Informazione

Teoria dell Informazione Corso di Laurea Magistrale in Scienze dell Informazione Editoriale, Pubblica e Sociale Teoria dell Informazione Cosa è l informazione L informazione è qualcosa che si possiede e si può dare ad un altro

Dettagli

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Architettura dei calcolatori Paolo Bison Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Architettura dei calcolatori, Paolo Bison, FI08, 2008-09-29 p.1 Architettura struttura

Dettagli

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE ELEMENTI DI PROGRAMMAZIONE a.a. 23/4 UNA GERARCHIA DI MACCHINE Andrea Prevete, UNINA2 24 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a numero finito di stati)... macchine

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Linguaggio macchina e assembler (caso di studio: processore MIPS) slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello Architettura degli Elaboratori 1 1 Istruzioni

Dettagli

Automi e Macchine. Computabilità. Progetto Nazionale Lauree Scientifiche Licei Fracastoro e Messedaglia Verona, novembre/dicembre 2012.

Automi e Macchine. Computabilità. Progetto Nazionale Lauree Scientifiche Licei Fracastoro e Messedaglia Verona, novembre/dicembre 2012. Automi e Macchine Computabilità Progetto Nazionale Lauree Scientifiche Licei Fracastoro e Messedaglia Verona, novembre/dicembre 2012 Computabilità AA 2012/13 Ugo Solitro Sommario Introduzione Automi a

Dettagli

Le istruzioni corrispondono univocamente a quelle macchina, ma vengono espresse tramite nomi simbolici i (parole chiave)

Le istruzioni corrispondono univocamente a quelle macchina, ma vengono espresse tramite nomi simbolici i (parole chiave) ASTRAZIONE Esistono linguaggi a vari livelli di astrazione Linguaggio Macchina: implica la conoscenza dei metodi utilizzati per la rappresentazione delle informazioni Linguaggio Macchina e Assembler: implica

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

Informatica e Bioinformatica: Circuiti

Informatica e Bioinformatica: Circuiti Date TBD Macchina Hardware/Software Sistema Operativo Macchina Hardware La macchina hardware corrisponde alle componenti fisiche del calcolatore (quelle viste nella lezione precedente). Un sistema operativo

Dettagli

Macchine astratte, linguaggi, interpretazione, compilazione

Macchine astratte, linguaggi, interpretazione, compilazione Macchine astratte, linguaggi, interpretazione, compilazione 1 Macchine astratte! una collezione di strutture dati ed algoritmi in grado di memorizzare ed eseguire programmi! componenti della macchina astratta

Dettagli

Linguaggi di programmazione e astrazione

Linguaggi di programmazione e astrazione Linguaggi di programmazione e astrazione i linguaggi di programmazione ad alto livello moderni sono il più potente strumento di astrazione messo a disposizione dei programmatori che possono, con un solo

Dettagli

Esecuzione dei programmi

Esecuzione dei programmi LEZIONE 4 Memorie, Algoritmi e Variaili Esecuzione dei programmi Per essere eseguito dalla macchina di Von Neumann, un programma, che è costituito da una sequenza di istruzioni e dai dati, deve essere

Dettagli