Macchine Astratte (anche dette Macchine Virtuali)
|
|
- Valerio Masini
- 7 anni fa
- Visualizzazioni
Transcript
1 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 e Informatica
2 Cosa significa computare? computazione F. Barbanera, G. Bella 2 Macchine Astratte v.2.2
3 Genericamente: input output procedimento effettivo Computazione e una trasformazione di informazione da una forma implicita ad una esplicita, mediante una sequenza di passi computazionali unitari. Buono, ma troppo generico F. Barbanera, G. Bella 3 Macchine Astratte v.2.2
4 Modello Computazionale Un modello computazionale fornisce una formalizzazione delle nozioni di informazione passo computazionale unitario Un modello computazionale e quindi una definizione piu concreta di computazione. F. Barbanera, G. Bella 4 Macchine Astratte v.2.2
5 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 5 Macchine Astratte v.2.2
6 Il modello computazionale di Alan Turing (1936): La Macchina di Turing (TM) composta da 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 un controllo finito, che memorizza lo stato corrente un insieme di quintuple Una quintupla (istruzione) descrive cosa deve scrivere la testina e dove spostarsi (dx o sx) quando la testina legge un certo simbolo e si è in un certo stato corrente. F. Barbanera, G. Bella 6 Macchine Astratte v.2.2
7 Modello Computazionale di Turing informazione rappresentata da una lista di simboli (contenuti nel nastro) passo unitario di computazione come esecuzione di una quintupla. F. Barbanera, G. Bella 7 Macchine Astratte v.2.2
8 TM alla base della programmazione imperativa La Macchina di Turing introduce gli elementi essenziali della moderna programmazione imperativa: locazione assegnamento memoria stato iterazione F. Barbanera, G. Bella 8 Macchine Astratte v.2.2
9 Church: Il Lambda-calcolo Il lambda calcolo è un altro modello computazionale, basato sui concetti di - Variabile (in senso matematico) - Applicazione - Astrazione funzionale - Ricorsione E alla base della Programmazione Funzionale (Lisp, Haskell, ML) F. Barbanera, G. Bella 9 Macchine Astratte v.2.2
10 Verso una definizione di macchina basata sui concetti introdotti dalle TM, ma non eccessivamente essenziale. F. Barbanera, G. Bella 10 Macchine Astratte v.2.2
11 Macchina Astratta (Imperativa) E un insieme di algoritmi e strutture dati in grado di memorizzare ed eseguire programmi. 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 11 Macchine Astratte v.2.2
12 Osservazioni Precisa corrispondenza fra macchine astratte (imperative) e linguaggi di programmazione (imperativi). IMPORTANTE!!! Modelli computazionali diversi conducono a nozioni diverse di macchine astratte La maggioranza delle architetture concrete sono realizzazioni di macchine astratte imperative (per ragioni tecnologiche) F. Barbanera, G. Bella 12 Macchine Astratte v.2.2
13 Struttura di una Macchina Astratta F. Barbanera, G. Bella 13 Macchine Astratte v.2.2
14 Architettura di Van Neumann E la struttura delle realizzazioni fisiche di Macchine astratte imperative La CPU (Central Processing Unit) interpreta il Programma e legge i Dati dalla RAM (Random Access Memory). F. Barbanera, G. Bella 14 Macchine Astratte v.2.2
15 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 15 Macchine Astratte v.2.2
16 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 L algoritmo Interprete F. Barbanera, G. Bella 16 Macchine Astratte v.2.2
17 Esempio di Macchina Astratta - macchina tradizionale - memoria: vettore indicizzato di stringhe binarie operazioni primitive: aritmetico-logiche su stringhe di bit trasferimento dati: modalita per indirizzare la memoria controllo di sequenza: registro contatore istruzioni (PC) ecc. F. Barbanera, G. Bella 17 Macchine Astratte v.2.2
18 Esempi di macchine astratte lavatrice calcolatrice JVM (Java Virtual Machine) ristorante F. Barbanera, G. Bella 18 Macchine Astratte v.2.2
19 Esempio 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 19 Macchine Astratte v.2.2
20 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, ma volendo, si potrebbe. F. Barbanera, G. Bella 20 Macchine Astratte v.2.2
21 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 eseguibili da 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 21 Macchine Astratte v.2.2
22 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 22 Macchine Astratte v.2.2
23 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 23 Macchine Astratte v.2.2
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 prevedailtipoastrattolista. 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 24 Macchine Astratte v.2.2
25 L hardware: la realizzazione fisica di una MA 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 25 Macchine Astratte v.2.2
26 Alternative? In generale, come implementare una Macchina Astratta M? gia trattato 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 F. Barbanera, G. Bella 26 Macchine Astratte v.2.2
27 Realizzazione Interpretativa Sia M la Macchina Astratta da realizzare. Sia M una MA 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 27 Macchine Astratte v.2.2
28 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 28 Macchine Astratte v.2.2
29 Nasce un problema Come calcolare 3+5 mentre si dispone di una macchina fisica che puo solo incrementare un numero binario? C e una differenza di potenza espressiva fra le due macchine (tra i due linguaggi). In generale, la differenza di potenza espressiva frala MacchinaAstrattadarealizzaree la macchina ospite esistente, e detta semantic gap. F. Barbanera, G. Bella 29 Macchine Astratte v.2.2
30 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 30 Macchine Astratte v.2.2
31 Singola macchina intermedia MM macchinachevogliamorealizzare macchinaintermedia macchinagia 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 31 Macchine Astratte v.2.2
32 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 32 Macchine Astratte v.2.2
33 Una gerarchia di macchine per esempio, un HLL computer reale F. Barbanera, G. Bella 33 Macchine Astratte v.2.2
34 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 34 Macchine Astratte v.2.2
35 Tipica gerarchia di macchine in un moderno calcolatore Il passaggio a ciascun livello intermedio colma una parte del semantic gap. F. Barbanera, G. Bella 35 Macchine Astratte v.2.2
36 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, le memorie, le ALU. F. Barbanera, G. Bella 36 Macchine Astratte v.2.2
37 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 37 Macchine Astratte v.2.2
38 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 38 Macchine Astratte v.2.2
39 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 39 Macchine Astratte v.2.2
40 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 40 Macchine Astratte v.2.2
41 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 41 Macchine Astratte v.2.2
42 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 42 Macchine Astratte v.2.2
43 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 43 Macchine Astratte v.2.2
44 ATTENZIONE!!! In un sistema di calcolo non c e limite ai livelli di MA presenti. Non tutti i sistemi di calcolo hanno il livello microprogrammato (CISC con, RISC senza) F. Barbanera, G. Bella 44 Macchine Astratte v.2.2
Macchine Astratte (anche dette Macchine Virtuali)
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
DettagliMacchine 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
DettagliAXO - 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
DettagliCorso 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
DettagliMacchine 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
DettagliMarco 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
DettagliTraduzione 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
DettagliTraduzione 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
DettagliMacchine 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
DettagliArchitettura 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
DettagliMacchine 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
DettagliMacchine 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
DettagliArchitettura 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
DettagliLez. 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
DettagliLezione 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
DettagliLa 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
DettagliMacchine 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
DettagliSommario. 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,
DettagliLa 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
DettagliLinguaggi 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
DettagliSettimana 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
DettagliLaboratorio 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
DettagliMacchina 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
DettagliMacchina 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
DettagliASTRAZIONE. 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
DettagliAlgoritmo. 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
DettagliELEMENTI 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
DettagliProgrammazione 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
DettagliELABORAZIONE 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
DettagliLinguaggi 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
DettagliIstruzioni 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
DettagliArchitettura 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
DettagliA.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,
DettagliLINGUAGGI 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
DettagliLINGUAGGI 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
DettagliIl 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)
DettagliInformatica 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
DettagliIntroduzione 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
Dettaglio 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
DettagliIl 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
DettagliFondamenti 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
DettagliArchitettura 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
DettagliIntroduzione 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
DettagliOrganizzazione 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 è
DettagliArchitettura 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
DettagliIstruzioni 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
DettagliArchitettura 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
DettagliPROBLEMI 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
DettagliLinguaggi 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
DettagliLez. 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
DettagliLe 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
DettagliINFORMATICA. 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
DettagliProgramma 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
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione!paradigmi linguistici, costrutti!semantica!implementazione, strutture a tempo di esecuzione 1 Linguaggi di programmazione e astrazione! i linguaggi di programmazione ad alto
DettagliArchitettura 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
DettagliRappresentazione 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
DettagliArchitettura 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
DettagliCosa è 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
DettagliLezione 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
DettagliLINGUAGGI DI ALTO LIVELLO
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic Ada
DettagliNote 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
DettagliASTRAZIONE 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
DettagliArchitettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione
Architettura di un calcolatore e linguaggio macchina Primo modulo Tecniche della programmazione CPU Central Processing Unit, processore Unita logica/aritmetica: elaborazione dati Unita di controllo: coordina
DettagliProgrammazione II. Lezione 2. Daniele Sgandurra 22/10/2010.
Programmazione II Lezione 2 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 22/10/2010 1/40 Programmazione II Lezione 2 22/10/2010 Sommario 1 2/40 Programmazione II Lezione 2 22/10/2010 Parte I 3/40 Programmazione
DettagliInformatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia
Informatica Dipartimento di Economia Ing. Cristiano Gregnanin Corso di laurea in Economia 20 ottobre 2016 1 / 19 Linguaggi 2 / 19 Linguaggi 3 / 19 Linguaggi di alto livello Si basano su una macchina virtuale
DettagliCorso 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
DettagliLinguaggi di alto livello, compilatori e interpreti
Linguaggi di alto livello, compilatori e interpreti Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Limiti del linguaggio assembler Esempio: gestione
DettagliFONDAMENTI DI INFORMATICA
Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia talia@deis.unical.it A.A. 2002-2003 Facoltà di Ingegneria UNICAL Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica
DettagliProgramma 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
DettagliInformatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione
Informatica 3 LEZIONE 1: Introduzione Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di Informatica 3 Lezione 1- Modulo 1 Introduzione al corso Introduzione Corso di Informatica 3
DettagliTraduzione e interpretazione
Traduzione e interpretazione Parte dei lucidi sono stati gentilmente forniti dal Prof. Salza VII.1 Linguaggi di programmazione Linguaggi ad alto livello Maggiore espressività Maggiore produttività Migliore
DettagliSistemi 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
DettagliArchitettura 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
DettagliProgrammazione: 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
DettagliAlgoritmo: 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
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio
DettagliAlgoritmi 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
DettagliSistemi 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
DettagliIl linguaggio del calcolatore: linguaggio macchina e linguaggio assembly
Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Richiamo sull
DettagliInformatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione
Informatica 3 Informatica 3 LEZIONE 1: Introduzione Lezione 1- Modulo 1 Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di Introduzione al corso Politecnico di Milano - Prof. Sara Comai
DettagliEsempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina
Il compilatore C Astrazione Linguaggio macchina implica la conoscenza dei metodi usati per la rappresentazione dell informazioni nella CPU Linguaggio Assembly è il linguaggio delle istruzioni che possono
DettagliFONDAMENTI DI INFORMATICA
Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia talia@deis.unical.it A.A. 2002-2003 Facoltà di Ingegneria UNICAL Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica
DettagliArchitettura degli Elaboratori - 1
Architettura degli Elaboratori - 1 Università degli Studi di Padova Facoltà di Scienze MM.FF.NN. Corso di Laurea in Informatica docente: Alessandro Sperduti Obiettivi del Corso Descrizione dell architettura
DettagliProgrammazione 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
DettagliCorso di Fondamenti di Informatica Elementi di Architettura
di Cassino e del Lazio Meridionale Corso di Informatica Elementi di Architettura Anno Accademico 2016/2017 Francesco Tortorella Modello di von Neumann Bus di sistema CPU Memoria Centrale Interfaccia Periferica
DettagliIntroduzione: 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
DettagliLezione 15. L elaboratore Elettronico
Lezione 15 Architettura di un calcolatore L elaboratore Elettronico Un elaboratore elettronico è una macchina elettronica in grado di elaborare dati secondo le specifiche fornite da un algoritmo Internamente
DettagliCorso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Simulazione del Questionario a Risposte Multiple.
Domanda n. 1 Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Simulazione del Questionario a Risposte Multiple 8-Nov-2004 Argomento: Rappresentazione dell'informazione
DettagliAlgoritmi, 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
DettagliCorso 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
DettagliProgrammazione. 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
DettagliLezione 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,
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 2: Introduzione al corso Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Classificazione degli elaboratori Alcuni concetti base: la struttura
DettagliFondamenti 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
DettagliIniziare a programmare in C++
Iniziare a programmare in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli
DettagliFondamenti 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