Laboratorio di Architettura
|
|
- Violetta Torre
- 5 anni fa
- Visualizzazioni
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 Lezione 2 Andrea Torsello Dipartimento di Informatica Università Ca Foscari di Venezia È possibile programmare il computer usando vari linguaggi di programmazione
DettagliLinguaggi 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é
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
DettagliPrimi 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
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
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,
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, 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
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
Dettagli10: 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
DettagliLaboratorio 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
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
DettagliLinguaggi, 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
DettagliLezione 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
DettagliIntroduzione. 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
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
DettagliLaboratorio 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
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
DettagliIntroduzione 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:
DettagliFondamenti 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
DettagliElementi 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à
DettagliIntroduzione 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)?
DettagliInformatica 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
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
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
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
DettagliProgrammazione 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
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
DettagliPROBLEMI 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
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
DettagliArchitettura 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
DettagliLaboratorio 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
DettagliCOMPILAZIONE. 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
DettagliI 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
DettagliCorso 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
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
DettagliINPUT 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
DettagliCos è 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
DettagliFondamenti 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
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
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 I linguaggi di programmazione e gli
DettagliAMBIENTI 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
DettagliLe 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.
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
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
DettagliArchitettura 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
Dettagli3. 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
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
DettagliElementi 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à
DettagliCalcolatori 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
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
DettagliI 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
DettagliInformatica 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
DettagliLA 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
Dettagli1. 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:
DettagliLaboratorio 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
DettagliArchitettura 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
DettagliInformatica 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
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
DettagliLaboratorio 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
DettagliIl 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
DettagliPag. 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
DettagliLezione 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
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
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)
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
DettagliUn 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
DettagliTecnologie 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
DettagliLa 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:
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
DettagliLA 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
DettagliAlgoritmi, 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
DettagliIl 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
DettagliLezione 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
DettagliDall 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
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.
DettagliProgrammazione 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
DettagliInterpreti 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
DettagliLinguaggi 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
DettagliIl 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
DettagliEsercitazioni 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
DettagliOctave. 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...
DettagliIntroduzione 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
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
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
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
DettagliImplementazione 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,
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
DettagliSistemi 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
DettagliSistemi 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
DettagliIntroduzione 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