Laboratorio di Architettura

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Laboratorio di Architettura"

Transcript

1 Laboratorio di Architettura Lezione 2 Andrea Torsello Dipartimento di Informatica Università Ca Foscari di Venezia p.1/50 Linguaggi È possibile programmare il computer usando vari linguaggi di programmazione Ogni linguaggio ha i suoi pro e contro MA... Alla fine, l unico linguaggio che il computer capisce è il linguaggio macchina Per usare altri linguaggi, occorre usare qualcosa in grado di far capire al computer gli altri linguaggi p.2/50

2 INTERPRETI Un INTERPRETE per un certo linguaggio L è un programma che interpreta appunto il linguaggio L e fa sì che questo venga correttamente eseguito dal computer Dato un interprete I, e un programma P nel linguaggio L, indichiamo con I(P) l esecuzione di P da parte di I p.3/50 VANTAGGI L interprete può non limitarsi solo a eseguire il programma, ma può fornire altri mezzi per controllarne l esecuzione Esempi: esecuzione passo passo, finestre di controllo delle variabili, trace modes, breakpoint etc etc. DEBUG p.4/50

3 SVANTAGGI Essendo una simulazione, tipicamente l interprete interpreta ogni istruzione del programma ogni volta che viene eseguita LENTEZZA Per eseguire un programma, ho bisogno dell interprete p.5/50 COMPILATORI Il COMPILATORE, invece, è un programma che prende un programma in un linguaggio L e lo traduce in un programma in un altro linguaggio Il SOURCE LANGUAGE ( sorgente ) viene tradotto nel TARGET LANGUAGE ( obiettivo ) p.6/50

4 COMPILATORI Tipicamente il TARGET LANGUAGE è il linguaggio macchina Eccezione: Linguaggi a BYTE-CODE (Es. JAVA) il linguaggio viene compilato ad un LINGUAGGIO INTERMEDIO che poi viene INTERPRETATO p.7/50 VANTAGGI Non ho più bisogno del compilatore, una volta tradotto il programma (Tipicamente) maggiore velocità, visto che il programma risultante è in linguaggio macchina p.8/50

5 SVANTAGGI Meno flessibile dell interprete per il debugging Più difficile da scrivere p.9/50 Scenario Nuovo computer, unico linguaggio disponibile: linguaggio macchina Volete usare il vostro linguaggio di programmazione preferito L Primo passo: scrivete un interprete I per far correre i programmi in L VANTAGGI: facile da scrivere, facile fare il debug dei programmi SVANTAGGI: lento, lento, lento!...e per far correre un programma ( hello world ) occorre portarvi dietro tutto l interprete p.10/50

6 Soluzione 1 Scrivete il compilatore in linguaggio macchina MOLTO DIFFICILE p.11/50 Soluzione 2 Scrivete il vostro compilatore C nel linguaggio L (!!) lo usate con l interprete I : I(C) gli date in input proprio il compilatore stesso (C): I(C)(C) voilà, avete il vostro compilatore I(C)(C) p.12/50

7 Self Compiling Compiler un compilatore che compila se stesso viene chiamato self compiling compiler Nota: in letteratura, spesso I(C) si scrive solo C, per cui il self-compiling compiler diventa semplicemente C(C) p.13/50 Importanza Anzitutto, come detto, concettuale: anche qui, l idea fondamentale, alla base dell architettura del computer, che DATO e PROGRAMMA sono la stessa cosa E poi, pratica: permette di ottenere un compilatore Come visto nello scenario, quando ho poche risorse Quando il linguaggio L è molto potente e un compilatore difficile da scrivere p.14/50

8 Soluzione 3 Sia C un compilatore per la macchina M C (C) è un compilatore che esegue nella macchina M, ma compila codice per la nostra macchina (cross-compiler) C (C)(C) è il compilatore desiderato p.15/50 Il processo di compilazione Il passaggio dal codice sorgente alla esecuzione del programma passa per 3 fasi. 1. Compilazione 2. Linking 3. Caricamento p.16/50

9 Compilazione Il programma viene analizzato e per ogni istruzione viene generato del linguaggio macchina che la implementa. L output è un file oggetto un file in cui sono specificati i simboli usati e implementati dal codice e in cui viene mantenuto il codice generato (formato dipendente dal sistema). p.17/50 Linking Il linguaggio macchina ottenuto da varie fasi di compilazione viene messo assieme risolvendo i riferimenti ai simboli implementati nei vari file oggetto. Il risultato è un file eseguibile un file in cui oltre al codice c è informazione riguardo alla posizione in memoria in cui va caricato il programma, nonché eventuali simboli ancora non risolti p.18/50

10 Caricamento: Il Loader è un componente del sistema operativo che carica il programma in memoria e vi passa il controllo alla prima istruzione del programma In sistemi con con librerie dinamiche, carica il linker dinamico per risolvere i simboli mancanti p.19/50 Dati I dati in un computer sono numeri (numeri interi) 13124, , Ma attenzione, come sono veramente contenuti i dati nel computer? p.20/50

11 Sistemi di numerazione Noi usiamo il sistema decimale, ma ci sono vari altri modi di scrivere i numeri: Uno, due, tre, quattro, cinque, sei, sette... Antichi: I, II, III, IV, V, VI, VII, VIII, IX, X,... E ancora più antichi:,,,,,,... p.21/50 Sistemi di numerazione Noi usiamo un sistema di numerazione POSIZIONALE a dieci cifre (cosiddetto DECIMALE, o a BASE DIECI) p.22/50

12 Decimale Dieci cifre 0 = 1 = 2 =. 9 = p.23/50 posizionale 452 significa ( ) + 4 ( ) ( ) Allora 10 significa ( ) che è 10 p.24/50

13 Dieci cifre Perché proprio dieci cifre? (suggerimento: quante dita abbiamo?) Lo stesso trucco si può fare con un numero qualsiasi di cifre p.25/50 Due cifre Due cifre (dette anche bit) 0 = 1 = 101 allora significa ( ) + 1 ( ) ( ) Tradotto nel nostro sistema = 5 p.26/50

14 Tante cifre Per esempio 36: 0 = 1 =. 9 = A = B =. Z = p.27/50 36 cifre Così, ad esempio, 1H2 significa 1 + H ( Z + 1 ) + 1 ( Z + 1 ) ( Z + 1 ) Che nel nostro sistema sarebbe: = 1909 p.28/50

15 Come si distingue? 101 in quale sistema di numerazione? indica 101 nel sistema binario indica 101 nel sistema decimale 101 n indica 101 nel sistema a n cifre Talvolta si usa anche 101 bin, 101 dec e 101 hex (o 0x101), per indicare i sistemi in base 2, 10 e 26 rispettivamente p.29/50 E il computer? Quante cifre usa il computer? p.30/50

16 E il computer? Quante cifre usa il computer? DUE Chiedete a Salvatore Orlando il perché p.30/50 E il computer? Quante cifre usa il computer? DUE Chiedete a Salvatore Orlando il perché Però... p.30/50

17 E il computer? Quante cifre usa il computer? DUE Chiedete a Salvatore Orlando il perché Però... Spesso conviene riunire le cifre binarie in gruppi più grandi (es. 4 o 8 cifre) In virtù del sistema posizionale, possiamo vedere questi blocchi di più cifre come altrettante cifre p.30/50 Esadecimale Quattro cifre binarie possono rappresentare 16 numeri diversi ( 0000, 0001, 0010,..., 1110, 1111 ) Possiamo usare un sistema numerico a sedici cifre (cosiddetto ESADECIMALE, o HEX): 0, 1,..., 9, A, B, C, D, E, F Così, ad esempio è uguale a B hex si può vedere come in base 2, e quindi come BD hex p.31/50

18 Riassumendo Il computer usa il sistema binario Molto spesso, siccome i numeri utilizzati sono multipli di quattro cifre, conviene usare la numerazione esadecimale, che è MOLTO PIÙ COMPATTA, visto che in ogni caso è molto facile passare dall una all altra numerazione Per casa: perché si riuniscono in gruppi di 4 cifre e non, per esempio, 8? p.32/50 Memoria La MEMORIA del computer ùsa serie di contenitori per numeri Ogni contenitore contiene un numero che è limitato (tipicamente, 8 cifre binarie: un BYTE Per identificare tali contenitori, si usano identificatori detti INDIRIZZI di memoria Spesso, tali indirizzi sono numeri come, ad esempio 0, 1, 2, 3, 500, , A0BC2E hex p.33/50

19 Linguaggio Macchina Il LINGUAGGIO MACCHINA è il linguaggio che il computer usa per eseguire istruzioni e manipolare dati p.34/50 Come è fatto Un programma è una sequenza di numeri o cifre, Es F0A470B980DBE190EF517C6120B F18D651826C AA106 BF FF846B D F45B C08 4A C D818281B4F A26C282B82B B1D49 p.35/50

20 Programmi come dati Il Computer vede tutto come DATI (numeri). Volendo, può vedere certi dati come corrispondenti a istruzioni (il cosiddetto LINGUAGGIO MACCHINA) Ad esempio, potrebbe voler significare somma uno al valore del registro t0 p.36/50 Programmi come dati AIUTO!!! È illeggibile! p.37/50

21 Linguaggio Macchina per umani Leggere numeri non è molto facile Per noi umani, conviene tradurre questi codici numerici in qualcosa di più leggibile Ad esempio, potrebbe tradursi in forma più leggibile con add t0, 1 (somma 1 al registro t0) tale formato più leggibile è detto LINGUAGGIO ASSEMBLY Spesso, vista la stretta corrispondenza, si fa confusione, o si considerano i due termini uguali p.38/50 Linguaggio Assembly Il linguaggio assembly è un linguaggio di programmazione, che rispecchia fedelmente le istruzioni del linguaggio macchina USO: più leggibile, più flessibile NOTA: proprio perché un assembly può aggiungere funzionalità, ci possono essere MOLTI LINGUAGGI ASSEMBLY DIVERSI per lo stesso linguaggio macchina (anche se, ovviamente, con differenze minime) p.39/50

22 Esecuzione Un programma in linguaggio macchina è una sequenza di dati Esso risiede nella MEMORIA ESTERNA del computer C è una locazione di memoria speciale, il cosiddetto PROGRAM POINTER, che contiene un indirizzo di memoria. Il dato corrispondente a tale indirizzo, viene considerato dal processore come la prossima istruzione in linguaggio macchina da eseguire. p.40/50 Che operazioni? Le tipiche operazioni di un linguaggio macchina riguardano: Il movimento di dati La manipolazione di dati Il flusso di istruzioni p.41/50

23 Il movimento dei dati Da una parte all altra della memoria Esistono (almeno) due memorie Interna al processore: molto veloce, ma piccola e limitata Esterna al processore: più lenta, ma molto grande ed estendibile p.42/50 Memoria interna Data la piccola taglia (e le particolari funzionalità), di solito si usano indirizzi con nomi speciali, detti REGISTRI (a0, a1, t0, t1,...) p.43/50

24 Memoria esterna Vista la grande taglia, si usano numeri per identificarla (0, 1, 2, 3,...) Usare numeri ha anche il vantaggio, fondamentale, che si possono usare tutte le operazioni aritmetiche per manipolare indirizzi di memoria p.44/50 Il movimento dei dati Nel linguaggio mips ci sono (fondamentalmente) due operazioni per passare dati dalla memoria interna (registri) alla memoria esterna, e viceversa: LOAD STORE p.45/50

25 LOAD LOAD (letteralmente carica ), prende il valore da un indirizzo di memoria esterna, e lo carica nella memoria interna LOAD registro indirizzo carica il valore contenuto all indirizzo indirizzo nel registro registro p.46/50 STORE STORE (letteralmente immagazzina ), scrive un certo valore nell indirizzo di memoria specificato STORE registro indirizzo scrive il valore contenuto in registro nella memoria all indirizzo specificato p.47/50

26 La manipolazione dei dati Tipicamente, si può agire con le operazioni aritmetiche (+, -, *, /), ed altre operazioni di natura simile p.48/50 Il flusso di istruzioni Abbiamo detto che è grazie al program pointer che il computer sa quale istruzione eseguire Una volta eseguita l istruzione cosa si fa? tipicamente, si porta il program pointer all indirizzo sucessivo p.49/50

27 Il flusso di istruzione Se non potessimo modificare questo flusso, il programma verrebbe allora sempre eseguito come una linea, in sequenza Purtroppo, come mostreremo in un altra lezione, questo sarebbe troppo limitativo: ogni istruzione verrebbe eseguita SOLO UNA VOLTA! Ci sono opportune istruzioni che permettono di modificare il program pointer in modo da cambiare la sequenza delle istruzioni eseguite Questo ci permette di implementare cicli, esecuzioni condizionali e chiamata di funzioni p.50/50

Linguaggi. Laboratorio di Architettura INTERPRETI VANTAGGI DEBUG. Lezione 2

Linguaggi. Laboratorio di Architettura INTERPRETI VANTAGGI DEBUG. Lezione 2 Linguaggi Laboratorio di Architettura Lezione 2 Andrea Torsello Dipartimento di Informatica Università Ca Foscari di Venezia È possibile programmare il computer usando vari linguaggi di programmazione

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Fondamenti di Informatica Daniele Loiacono Ho definito un algoritmo e adesso? Daniele Loiacono Dall algoritmo all esecuzione q Come deve essere formalizzato un algoritmo affinché

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

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

Dettagli

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia

Informatica. 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

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

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

Linguaggi, compilatori e interpreti

Linguaggi, compilatori e interpreti Linguaggi, compilatori e interpreti 1 Il codice macchina Ciascun calcolatore ha un ampio insieme di istruzioni che è in grado di eseguire. Le istruzioni vengono rappresentate mediante sequenze di bit 001000100011

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

10: I LINGUAGGI di PROGRAMMAZIONE PARTE 1

10: I LINGUAGGI di PROGRAMMAZIONE PARTE 1 Data: 12-10-2016 Pag: 8 10: I LINGUAGGI di PROGRAMMAZIONE PARTE 1 1. Definizioni a) Linguaggi Naturali = i linguaggi degli esseri umani Lessico = le parole che si usano Sintassi = le regole con cui si

Dettagli

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 4 24/10/2013

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 4 24/10/2013 Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 4 24/10/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University

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

Linguaggi, compilatori e interpreti

Linguaggi, compilatori e interpreti Linguaggi, compilatori e interpreti Il codice macchina Ciascun calcolatore ha un ampio insieme di istruzioni che è in grado di eseguire. Le istruzioni vengono rappresentate mediante sequenze di bit 000101

Dettagli

Lezione n. 2i Informatica e tecnologia informatica Sistema di elaborazione Algoritmo Linguaggi di programmazione Realizzazione di un programma

Lezione n. 2i Informatica e tecnologia informatica Sistema di elaborazione Algoritmo Linguaggi di programmazione Realizzazione di un programma Lezione2i Lezione n. 2i Informatica e tecnologia informatica Sistema di elaborazione Algoritmo Linguaggi di programmazione Realizzazione di un programma Informatica e tecnologia informatica Il termine

Dettagli

Introduzione. Informatica B. Daniele Loiacono

Introduzione. Informatica B. Daniele Loiacono Introduzione Informatica B Cos è l informatica? q È la scienza che si occupa della rappresentazione dell informazione e della sua elaborazione e gestione " Si occupa dell informazione, che fa parte di

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

Laboratorio di Calcolo Linguaggi di programmazione

Laboratorio di Calcolo Linguaggi di programmazione Laboratorio di Calcolo Linguaggi di programmazione Software Insieme di istruzioni e dati trattati dal computer Le istruzioni possono essere a diversi livelli Istruzioni macchina: insieme limitato di funzioni

Dettagli

Esempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina

Esempio. 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

Dettagli

Introduzione alla Programmazione. Giselda De Vita

Introduzione alla Programmazione. Giselda De Vita Introduzione alla Programmazione Giselda De Vita - 2015 1 Sulla base dell ambito in cui si colloca il problema da risolvere, è opportuno adottare un linguaggio piuttosto che un altro: ² Calcolo scientifico:

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

Elementi di programmazione

Elementi di programmazione Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Elementi di programmazione Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università

Dettagli

Introduzione al C. InformaticaB. Daniele Loiacono

Introduzione al C. InformaticaB. Daniele Loiacono Introduzione al C InformaticaB Facciamo un passo indietro Compilare o Interpretare? q Come rendo comprensibili al calcolatore i programmi scritti in un linguaggio di programmazione (ad es. C, C++, Java)?

Dettagli

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

Iniziare a programmare in C++

Iniziare 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

Dettagli

Traduzione e interpretazione

Traduzione 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

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 in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java

Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java Programmi Un programma è un insieme di istruzioni che il computer deve seguire Usiamo programmi in continuazione

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

PROBLEMI ALGORITMI E PROGRAMMAZIONE

PROBLEMI ALGORITMI E PROGRAMMAZIONE PROBLEMI ALGORITMI E PROGRAMMAZIONE SCIENZE E TECNOLOGIE APPLICATE CLASSE SECONDA D PROGRAMMARE = SPECIFICARE UN PROCEDIMENTO CAPACE DI FAR SVOLGERE AD UNA MACCHINA UNA SERIE ORDINATA DI OPERAZIONI AL

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

Architettura dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H

Architettura dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H Architettura dei calcolatori e sistemi operativi Architettura MIPS e set istruzioni Capitolo 2 P&H Instruction Set Architecture ISA Linguaggio assemblatore e linguaggio macchina ISA processore MIPS Modello

Dettagli

Laboratorio di Architettura lezione 5. Massimo Marchiori W3C/MIT/UNIVE

Laboratorio di Architettura lezione 5. Massimo Marchiori W3C/MIT/UNIVE Laboratorio di Architettura lezione 5 Massimo Marchiori W3C/MIT/UNIVE Da Alto a Basso livello: compilazione Come si passa da un linguaggio di alto livello a uno di basso livello? Cioe a dire, come lavora

Dettagli

COMPILAZIONE. Tarsformazione di linguaggi

COMPILAZIONE. Tarsformazione di linguaggi COMPILAZIONE Tarsformazione di linguaggi Le fasi della compilazione File sorgente Compilazione File sorgente File sorgente File sorgente Compilazione Compilazione Compilazione Libreria di run-time File

Dettagli

I Linguaggi di Programmazione

I Linguaggi di Programmazione I 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

Dettagli

Corso di Architettura (Prof. Scarano) 10/05/2002

Corso di Architettura (Prof. Scarano) 10/05/2002 Lezione 0 Il Set di Istruzioni (6) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Le procedure Prima della chiamata di una procedura In ogni linguaggio di

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

INPUT COMPUTER OUTPUT

INPUT COMPUTER OUTPUT 1) Cos è un computer? INPUT COMPUTER OUTPUT E una macchina programmabile in grado di produrre dati in output attraverso l elaborazione di dati forniti in input 2) Cos è un programma? E l elenco di istruzioni

Dettagli

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione

Dettagli

Fondamenti di Algoritmi

Fondamenti di Algoritmi Fondamenti di Algoritmi Corsi di Informatica Grafica Prof. Manuel Roveri Dipartimento di Elettronica e Informazione roveri@elet.polimi.it Indice Algoritmi: Definizione Diagrammi di Flusso Esempi ed esercizi

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

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 I linguaggi di programmazione e gli

Dettagli

AMBIENTI DI PROGRAMMAZIONE

AMBIENTI DI PROGRAMMAZIONE AMBIENTI DI PROGRAMMAZIONE È l'insieme dei programmi che consentono la scrittura, la verifica e l'esecuzione di nuovi programmi (fasi di sviluppo) Sviluppo di un programma Affinché un programma scritto

Dettagli

Le tre famiglie fondamentali. Laboratorio di Architettura. 1. Manipolazione di dati. 1.1 Aritmetica di base. Lezione 3

Le tre famiglie fondamentali. Laboratorio di Architettura. 1. Manipolazione di dati. 1.1 Aritmetica di base. Lezione 3 Le tre famiglie fondamentali Laboratorio di Architettura Lezione 3 Andrea Torsello Dipartimento di Informatica Università Ca Foscari di Venezia Ci sono tre famiglie fondamentali di istruzioni, per: 1.

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

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

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Rappresentazione dell Informazione Barbara Masucci Cosa studiamo oggi Ø Un moderno elaboratore è un sistema elettronico digitale programmabile Ø Il suo comportamento è flessibile

Dettagli

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi 0.1.1.1 Definire un algoritmo 1. Con il termine algoritmo si intende: a) il software utilizzato in un calcolatore b) l elenco finito di istruzioni necessario per risolvere un problema c) un elaboratore

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

Elementi di programmazione

Elementi di programmazione Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Elementi di programmazione Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici Assemblatore, Linker e Loader Francesco Lo Presti rielaborate da Salvatore Tucci Assembler, Linker & Loader 1 Compilazione q Nella prima fase, il programma ad alto livello viene

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

I linguaggi. Informatica

I linguaggi. Informatica I linguaggi Informatica Comunicazione La comunicazione è un processo che consente di scambiare informazioni e coinvolge un mittente, un destinatario, un messaggio ed un canale comunicativo. Affinché la

Dettagli

Informatica Problema Algoritmo Programma

Informatica Problema Algoritmo Programma Informatica Problema Algoritmo Programma 2^ PARTE I linguaggi di programmazione I linguaggi di programmazione si possono suddividere fondamentalmente in tre categorie: 1. Linguaggio Macchina 2. Linguaggio

Dettagli

LA CODIFICA DELL INFORMAZIONE

LA CODIFICA DELL INFORMAZIONE LA CODIFICA DELL INFORMAZIONE Prof. Enrico Terrone A. S: 20/2 Lo schema di Tanenbaum Il livello al quale ci interessiamo in questa lezione è il linguaggio macchina, l unico dove le informazioni e istruzioni

Dettagli

1. Un array è: A. Un simbolo usato nel linguaggio C per rappresentare un numero non specificato di variabili B. Un insieme di indirizzi di memoria

1. Un array è: A. Un simbolo usato nel linguaggio C per rappresentare un numero non specificato di variabili B. Un insieme di indirizzi di memoria Esame teorico Rispondere alle domande a risposta multipla (probabilmente 10) Eventualmente 1-2 domande a risposta libera Ogni domanda ha una ed una sola risposta corretta Tempo di risposta: 60 minuti Peso:

Dettagli

Laboratorio di Architettura

Laboratorio di Architettura Laboratorio di Architettura Lezione 5 Andrea Torsello Dipartimento di Informatica Università Ca Foscari di Venezia p.1/49 La scorsa lezione Basi della compilazione da alto livello a basso livello Rappresentazione

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

Informatica Generale Andrea Corradini I linguaggi di programmazione

Informatica Generale Andrea Corradini I linguaggi di programmazione Informatica Generale Andrea Corradini 17 - I linguaggi di programmazione Sommario Cos'è un linguaggio di programmazione? Una prospettiva storica: linguaggi di prima, seconda e terza generazione I paradigmi

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

Laboratorio di Architettura lezione 11. La scorsa lezione. Motivi? Word e bytes

Laboratorio di Architettura lezione 11. La scorsa lezione. Motivi? Word e bytes Laboratorio di Architettura lezione 11 Massimo Marchiori W3C/MIT/UNIVE La scorsa lezione Nove gradi di separazione Procedure ricorsive Stack Push / Pop Fibonacci Word e bytes Finora, abbiamo solo agito

Dettagli

Il linguaggio dei computer: rappresentazione in binario e algoritmi di conversione 20 settembre 2017

Il linguaggio dei computer: rappresentazione in binario e algoritmi di conversione 20 settembre 2017 Il linguaggio dei computer: rappresentazione in binario e algoritmi di conversione 20 settembre 2017 Architettura degli Elaboratori L Architettura (informatica) è l insieme dei criteri in base ai quali

Dettagli

Pag. 1. La Rappresentazione e la Codifica delle informazioni (parte 2) Tipi di dati. Informatica Facoltà di Medicina Veterinaria

Pag. 1. La Rappresentazione e la Codifica delle informazioni (parte 2) Tipi di dati. Informatica Facoltà di Medicina Veterinaria 1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 Tipi di dati Informatica Facoltà di Medicina Veterinaria La Rappresentazione e la Codifica delle

Dettagli

Lezione 2: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 17 Marzo 2014

Lezione 2: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 17 Marzo 2014 Lezione 2: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 17 Marzo 2014 Pseudo direttive assembly Per scrivere un programma in assembly sono necessarie alcune pseudo direttive

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

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

Linguaggi di alto livello, compilatori e interpreti

Linguaggi 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

Dettagli

Un quadro della situazione. Lezione 14 Il Set di Istruzioni (2) Dove siamo nel corso. I principi di progetto visti finora. Cosa abbiamo fatto

Un quadro della situazione. Lezione 14 Il Set di Istruzioni (2) Dove siamo nel corso. I principi di progetto visti finora. Cosa abbiamo fatto Un quadro della situazione Lezione 14 Il Set di Istruzioni (2) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Input/Output Sistema di Interconnessione Registri

Dettagli

Tecnologie dell'informazione e della comunicazione

Tecnologie dell'informazione e della comunicazione Tecnologie dell'informazione e della comunicazione Introduzione al corso e Linguaggi di programmazione ad alto livello Prof. Mauro Gaspari: gaspari@cs.unibo.it Tutor: Elisa Del Bianco: elisadelbianco@gmail.com

Dettagli

La scorsa lezione. Laboratorio di Architettura. Word e bytes... Questa lezione. Lezione 8

La scorsa lezione. Laboratorio di Architettura. Word e bytes... Questa lezione. Lezione 8 La scorsa lezione Laboratorio di Architettura Lezione 8 Andrea Torsello 1 Dipartimento di Informatica Università Ca Foscari di Venezia Procedure Convenzione di chiamata Stack (Push / Pop) Implementazione:

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

LA CODIFICA DELL INFORMAZIONE. Prof. Enrico Terrone A. S: 2014/15

LA CODIFICA DELL INFORMAZIONE. Prof. Enrico Terrone A. S: 2014/15 LA CODIFICA DELL INFORMAZIONE Prof. Enrico Terrone A. S: 2014/15 Lo schema di Tanenbaum Il livello al quale ci interessiamo in questa lezione è il linguaggio macchina, l unico dove le informazioni e istruzioni

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 2.d: Linguaggi Procedurali

Algoritmi, Strutture Dati e Programmi. UD 2.d: Linguaggi Procedurali Algoritmi, Strutture Dati e Programmi : Linguaggi Procedurali Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno LINGUAGGI PROCEDURALI Curtin, cap. 12.3 1 Linguaggi di Programmazione

Dettagli

Il linguaggio Assembly

Il linguaggio Assembly Il linguaggio Assembly Linguaggio macchina Linguaggio definito da un insieme di istruzioni, codificate come stringhe di bit, che il processore può interpretare ed eseguire direttamente Linguaggio Assembly

Dettagli

Lezione 2: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 9 Marzo 2017

Lezione 2: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 9 Marzo 2017 Lezione 2: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 9 Marzo 2017 Pseudo direttive assembly Per scrivere un programma in assembly sono necessarie alcune pseudo direttive

Dettagli

Dall algoritmo al programma

Dall algoritmo al programma Dall algoritmo al programma Il concetto di algoritmo Un algoritmo è una sequenza di passi necessari per risolvere un problema o eseguire una computazione In alcuni casi, lo stesso problema/computazione

Dettagli

; programma MOV AX, DATO_1. ; somma al contenuto dell' accumulatore il contenuto del registro B

; programma MOV AX, DATO_1. ; somma al contenuto dell' accumulatore il contenuto del registro B Linguaggi di programmazione Il linguaggio base di un elaboratore è il linguaggio macchina. Linguaggio macchina: insieme di istruzioni espresse nel formato numerico (binario) di un particolare processore.

Dettagli

Programmazione C Massimo Callisto De Donato

Programmazione C Massimo Callisto De Donato Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

Interpreti e compilatori La macchina di Von Neumann

Interpreti e compilatori La macchina di Von Neumann Interpreti e compilatori La macchina di Von Neumann Informatica@Matematica Simone Martini a.a. 2015-2016 1 / 38 Parte I Architettura di Von Neumann 2 / 38 La macchina di Von Neumann La memoria contiene

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione E una notazione con cui e possibile descrivere gli algoritmi. Programma: e la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. In generale, ogni

Dettagli

Il calcolatore. Architettura di un calcolatore (Hardware)

Il calcolatore. Architettura di un calcolatore (Hardware) Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti

Dettagli

Esercitazioni ElDig2-09. Dott. Salvatore Pontarelli

Esercitazioni ElDig2-09. Dott. Salvatore Pontarelli Esercitazioni ElDig2-09 Dott. Salvatore Pontarelli mercoledì 9 dicembre 2009 Esercitazioni ElDig2-09 Esercitazioni in aula Giovedi 11:30-13:00 Ricevimento: Giovedi 9:30-11:30 e-mail pontarelli@ing.uniroma2.it

Dettagli

Octave. Luca Abeni. Informatica Luca Abeni 1 / 21

Octave. Luca Abeni. Informatica Luca Abeni 1 / 21 Luca Abeni Informatica Luca Abeni 1 / 21 Linguaggi di Programmazione di Alto Livello Parole chiave: possibilmente con significato in inglese Ma agli informatici piacciono molto contrazioni e acronimi...

Dettagli

Introduzione al Corso

Introduzione al Corso Introduzione al Nicu Sebe Informatica Nicu Sebe 1 / 12 Informazioni Scopo Contatti Nicu Sebe (niculae.sebe@unitn.it) Per informazioni/ricevimento, email http://www.disi.unitn.it/ sebe/info Materiale per

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

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Il 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

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

Implementazione di DFA in C

Implementazione di DFA in C Implementazione di DFA in C Dispensa di Laboratorio di Linguaggi di Programmazione Sommario Corrado Mencar, Pasquale Lops, Stefano Ferilli Questa dispensa fornisce le linee guida per l implementazione,

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

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia 1 Mattia Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it monoprogrammati multiprogrammati a.a. 2008/09 1 c 2009 M.. Creative Commons Attribuzione-Condividi

Dettagli

Sistemi Operativi. Bruschi Martignoni Monga. Gestione della memoria. Sistemi multiprogrammati. Partizioni fisse Partizioni variabili Paginazione

Sistemi Operativi. Bruschi Martignoni Monga. Gestione della memoria. Sistemi multiprogrammati. Partizioni fisse Partizioni variabili Paginazione 1 Mattia Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it monoprogrammati multiprogrammati Lezione XXXIII: monoprogrammati multiprogrammati a.a. 2008/09

Dettagli

Introduzione a Visual Studio Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Introduzione a Visual Studio Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Introduzione a Visual Studio 2010 Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Sviluppo del Software Un editor e un word processor specializzato e usato per scrivere i moduli sorgenti

Dettagli