Fondamenti di Informatica

Documenti analoghi
FONDAMENTI DI INFORMATICA

FONDAMENTI DI INFORMATICA

Istruzioni e linguaggio macchina

Istruzioni e linguaggio macchina

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

FONDAMENTI DI INFORMATICA

Architettura degli Elaboratori

Fondamenti di Informatica A. A / 1 9

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.

FONDAMENTI DI INFORMATICA

Rappresentazione dell informazione

Linguaggi di programmazione

Sistemi di Elaborazione delle Informazioni

Il Modello di von Neumann (2) Prevede 3 entità logiche:

Linguaggi di Programmazione

Concetti di base dell ICT

Architettura degli Elaboratori

Architettura di un calcolatore: primi cenni introduttivi. Calcolatore: sottosistemi

Programmazione modulare

I linguaggi di programmazione

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

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)

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

PROBLEMI E ALGORITMI

Macchina Astratta: struttura e realizzazione.

Algoritmo PARTE A: Algoritmi, linguaggi di programmazione e programmi

Linguaggi di Programmazione

Introduzione al funzionamento di un calcolatore elettronico

Architettura e funzionamento del calcolatore

Architettura dell elaboratore

Architettura dell elaboratore

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

Architettura di un elaboratore

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

Programmazione modulare

INFORMATICA GENERALE

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

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

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

Architettura. Neumann rivista

Architettura di un calcolatore: primi cenni introduttivi

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

Architettura dei computer

LABORATORIO DI INFORMATICA

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

Corso di Fondamenti di Informatica Macroarea di Ingegneria 2017/18. Tutor: prof. Francesco De Vincenzi

I Linguaggi di Programmazione

I linguaggi. Informatica

La macchina di Von Neumann. UNIVERSITÀ DEGLI STUDI DEL SANNIO Benevento DING DIPARTIMENTO DI INGEGNERIA CORSO DI "PROGRAMMAZIONE I"

Concetti di Base sulla Programmazione. Prof.Ing.S.Cavalieri

Corso di Linguaggi di Programmazione + Laboratorio

FONDAMENTI DI INFORMATICA

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

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

Programma svolto informatica a.s. 2017/2018. Classe 1D

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

Corso di Informatica

Traduzione e interpretazione

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Macroarea di Ingegneria 2016/17. Tutor: prof. Francesco De Vincenzi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

I linguaggi di programmazione

Il linguaggio macchina

G L O S S A R I O. Fondamenti di Informatica I - Università degli Studi di Trento Dott. Roberti Pierluigi

Concetti Introduttivi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Programmazione C Massimo Callisto De Donato

Informatica di base 4 crediti 32 ore!!

INPUT COMPUTER OUTPUT

ALGORITMI: PROPRIETÀ FONDAMENTALI

Architettura di un elaboratore. Il modello di von Neumann

Laboratorio di Architettura

Componenti e connessioni. Capitolo 3

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Docenti Marco Cirrito, Pier Luigi Girelli. Disciplina. OBIETTIVI MINIMI (necessari al passaggio alla classe successiva)

Cognome:, Nome: Matricola:

CPUSim. Laboratorio 30/11/2016

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

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

Modulo informatica di base 1 Linea 2

Il computer. Il case e l'unità di elaborazione. Il computer, una macchina aggiornabile.

Hardware, software, codifica informazioni

Il processore - CPU (CENTRAL PROCESSING UNIT)

Componenti principali

Calcolatore: sottosistemi

Il linguaggio di programmazione Python

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

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

LABORATORIO DI INFORMATICA

Orario del corso. Contenuti del corso. Modalità d esame. Analisi Numerica 1 a.a. 2011/2012

Linguaggi di Programmazione

Transcript:

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 chiave: Codifica Possiamo interpretare gli 0 e 1 nella memoria del computer come più ci piace. Possiamo trattarli come numeri. Possiamo codificare informazioni in questi numeri Perfino il fatto più volte accennato che il computer comprenda numeri è una interpretazione Usiamo le tensioni sui fili per codificare 0 e 1, ognuno definisce un byte che possiamo, a nostra volta, interpretare come numero decimale A proposito: perché interpretiamo questa stringa di bit come 74? 2

3 La codifica può essere stratificata in un qualsiasi numero di livelli Codifica ASCII dei caratteri A codificato come 65 B codificato come 66 Se esiste un byte che contiene il numero 65, e decidiamo che è un carattere voilà diventa una A! Possiamo costruire una serie di numeri per definire un testo 77, 97, 114, 107 sta per Mark 60, 97, 32, 104, 114, 101, 102, 61 sta per <a href= (HTML)

Strati di codifica 4 Un numero è solo un numero Se bisogna considerarlo un carattere, ci sarà un software (o hardware) che lo farà Per esempio, che associa il numero 65 con la rappresentazione grafica del carattere A Se bisogna considerarlo come parte di un documento HTML ci sarà un software preposto allo scopo (browser)..che capisce che <A HREF= è l inizio di un link La parte che comprende l HTML comunica con la parte che a sua volta interpreta che 65 è una A

Multimedia e unimedia Ma lo stesso byte che contiene il valore 65 potrebbe essere interpretato come Suono (una piccolissima parte p. es. 1/44100 di secondo) La quantità di colore rosso di un singolo punto di una immagine La quantità di colore rosso di un singolo punto di una immagine che è un singolo fotogramma di un film Usiamo software e hardware per gestire tutti questi strati Come decidere il significato di un numero e come organizzare i numeri per rappresentare I dati desiderati? Tramite le strutture dati I dati da organizzare in strutture possono essere numerosi Per rappresentare tutti I punti di una schermata tipica possono volerci milioni di byte: esempio : 1280x800 = 102400 punti normalmente si usano 24 bit (3 byte) per punto ossia 3*1024000 = 3072000 byte Ogni secondo di musica in un CD occupa 44100x2 byte 5

Architettura di un sistema informatico L architettura di un sistema informatico descrive come interagiscono hardware e software. Ciascuno strato (livello di astrazione) è una generalizzazione di alcune caratteristiche di funzionamento del sistema. 6

Linguaggi di programmazione La codifica permette di scambiare informazioni con il computer attraverso un «vocabolario» dati, formule, procedimenti, Il linguaggio di programmazione permette di istruire il computer allo svolgimento di certe operazioni (algoritmo) app, pacchetto software, Tipologie di linguaggi di programmazione: Prima generazione (I): linguaggi macchina Seconda generazione (II): linguaggio assembly Terza generazione (III): C,C++, fortran, Basic Quarta generazione (IV): Java, Matlab 7

Linguaggi di programmazione e livelli di astrazione Si usano linguaggi diversi per differenti livelli di astrazione Linguaggio macchina (I) 0100 0000 0000 1000 0100 0000 0000 1001 0000 0000 0000 1000 Linguaggio assembly (II) LOAD X ADD Y STORE Z Linguaggio di alto livello (III, IV) def fun(): a = 0; print a+5 Sequenza di istruzioni binarie eseguibili direttamente dalla CPU Istruzioni in corrispondenza diretta (1-a-1) con le istruzioni binarie ma espresse in formato simbolico Machine independent: non è legato al tipo di hardware e sistema operativo 8

Linguaggio di programmazione Formalizzato da Sintassi (regole grammaticali) Semantica (significato) Vocabolario Key words Variables Una frase in linguaggio naturale può essere grammaticalmente corretta ma non avere significato: L erba scrive il gatto 9

Sequenza di realizzazione di un programma Java Language Program Progettazione e stesura del codice sorgente 0100 0000 0000 1000 0100 0000 0000 1001 0000 0000 0000 1000 10

Esecuzione di un programma Input: Codice eseguibile + Dati di elaborazione 000000 00000 00101 0001000010000000 000000 00100 00010 0001000000100000 100011 00010 01111 0000000000000000 100011 00010 10000 0000000000000100 101011 00010 10000 0000000000000000 101011 00010 01111 0000000000000100 000000 11111 00000 0000000000001000 Processor (CPU) Devices Control Memory Input Datapath Output 11

Esecuzione di un programma Codice e dati caricati in memoria Processor (CPU) Control Datapath Memory 000000 00000 00101 0001000010000000 000000 00100 00010 0001000000100000 100011 00010 01111 0000000000000000 100011 00010 10000 0000000000000100 101011 00010 10000 0000000000000000 101011 00010 01111 0000000000000100 000000 11111 00000 0000000000001000 Devices Input Output 12

Esecuzione di un programma FETCH : Il processore preleva l istruzione Processor (CPU) Control Datapath Memory 000000 00000 00101 0001000010000000 000000 00100 00010 0001000000100000 100011 00010 01111 0000000000000000 100011 00010 10000 0000000000000100 101011 00010 10000 0000000000000000 101011 00010 01111 0000000000000100 000000 11111 00000 0000000000001000 Devices Input Output 13

Esecuzione di un programma DECODE : La CPU decodifica le istruzioni Control Datapath Processor (CPU) 000000 00100 00010 0001000000100000 Memory Devices Input Output 14

Esecuzione di un programma EXEC : La CPU esegue l istruzione, eventualmente interagendo con la memoria per caricare operandi e registrare risultati Control Datapath Processor (CPU) 000000 00100 00010 0001000000100000 contents Reg #4 ADD contents Reg #2 results put in Reg #2 Memory Devices Input Output 15

Esecuzione di un programma Fetch Exec Decode 16

Esecuzione di un programma Quando il programma termina, i risultati vengono inviati al dispositivo di output Processor Memory Devices Control Input Datapath 00000100010100000000000000000000 00000000010011110000000000000100 00000011111000000000000000001000 Output 00000100010100000000000000000000 00000000010011110000000000000100 00000011111000000000000000001000 17