Richiami di informatica e programmazione



Documenti analoghi
La Macchina Virtuale

Linguaggi di programmazione

C. P. U. MEMORIA CENTRALE

Dispensa di Informatica I.1

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Architettura hardware

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Architettura del calcolatore

Corso di Informatica

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN

Dispensa di Fondamenti di Informatica. Architettura di un calcolatore

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi

Esame di INFORMATICA

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Architettura di un computer

Informatica - A.A. 2010/11

23/02/2014. Dalla scorsa lezione. La Macchina di Von Neumann. Uomo come esecutore di algoritmi

Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1

Ing. Paolo Domenici PREFAZIONE

Origini e caratteristiche dei calcolatori elettronici

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Scuola Secondaria di Primo Grado Anna Frank Nome Cognome classe anno sc. 2008/09 INFORMATICA

Rappresentazione dell'info -- Codifiche - 1

Architettura dei computer

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Linguaggi di programmazione

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni

Linguaggi e Paradigmi di Programmazione

Software di base. Corso di Fondamenti di Informatica

CPU. Maurizio Palesi

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Il Sistema Operativo (1)

CONCETTI BASE dell'informatica Cose che non si possono non sapere!

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

MODULO Il personal computer. ISIS STRINGHER Corso Serale Anno scolastico 2010/11 Classe 1 Commerciale

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

Corso di Informatica

Il computer: primi elementi

Laboratorio di Informatica

Informazione analogica e digitale

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

IL COMPUTER APPUNTI PER LEZIONI NELLE 3 CLASSI LA MACCHINA DELLA 3 RIVOLUZIONE INDUSTRIALE. A CURA DEL Prof. Giuseppe Capuano

introduzione I MICROCONTROLLORI

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

Lez. 3 L elaborazione (II parte) Prof. Pasquale De Michele Gruppo 2

TECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO

Parte II.2 Elaboratore

Il Software. Il software del PC. Il BIOS

IL SOFTWARE. Giada Agostinacchio Classe 2^ Beat ISIS G.Meroni Lissone Anno Scolastico 2007/2008

INFORMATICA 1 L. Mezzalira

L architettura del calcolatore (Prima parte)

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

FONDAMENTI di INFORMATICA L. Mezzalira

Programmi. Algoritmi scritti in un linguaggio di programmazione

Sistemi di Elaborazione delle Informazioni. Corso di Laurea per "Tecnico Ortopedico" 03

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Strutturazione logica dei dati: i file

Calcolo numerico e programmazione Architettura dei calcolatori

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

ISTITUTO TECNICO ECONOMICO MOSSOTTI

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)

Informazione e dato. Gabriella Trucco

Sistema operativo: Gestione della memoria

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Codifica delle Informazioni

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Funzionalità di un calcolatore

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Struttura del calcolatore

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

LINGUAGGI DI PROGRAMMAZIONE

Informatica. Scopo della lezione

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Lezione 3: Architettura del calcolatore

Logica e codifica binaria dell informazione

ARCHITETTURA DEL CALCOLATORE

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l Ambiente e il Territorio

Corsi Speciali Abilitanti Indirizzo 2: Fisico-Matematico Modulo Didattico: Elementi di Informatica Classi: 48/A TEST D INGRESSO

Laboratorio di Informatica

Architettura di un calcolatore

Informatica per la comunicazione" - lezione 7 -

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

ISTITUTO d IstruzIone Superiore A. righi

Transcript:

Richiami di informatica e programmazione

Il calcolatore E una macchina usata per Analizzare Elaborare Collezionare precisamente e velocemente una grande quantità di informazioni. Non è creativo Occorre fornirgli una lista precisa e finita di azioni da compiere, cioè un algoritmo

Dentro al calcolatore Hardware Software tutto ciò che nella macchina è strettamente fisico (parti elettroniche, circuitali, meccaniche, etc.) I dati (foto digitali, testi, ) Gli strumenti informatici che servono per elaborare i dati (visualizzatori di immagini, editor di testi, videogiochi )

La componente fondamentale dell hardware: il circuito

La componente fondamentale dell informazione: il bit C. E. Shannon (1916-2001) Ogni tipo di informazione (numeri, musica, immagini, testo, istruzioni ) può essere codificato come sequenza di 0 e 1. (A mathematical theory of communication, Bell System Technical Journal, 1948) Il bit (binary digit) è l unità di misura dell informazione

Unità di misura dell informazione Multipli del bit 8 bit = 1 byte 16 bit = 1 word 2 10 byte = 1 KB (circa 1000 byte) 2 20 byte = 1 MB (circa 1 milione di byte) 2 30 byte = 1 GB (circa 1 miliardo di byte) 2 40 byte = 1 TB (circa 1000 miliardi di byte)

La codifica dei dati e degli algoritmi

Codifica di dati: il testo Tabelle che, ad un determinato numero fanno corrispondere un simbolo alfanumerico. Codici: numeri binari da 1 a 127 (ASCII standard) da 128 a 255 (ASCII esteso) Nuovo standard: Unicode

Codice ASCII standard

Codice ASCII esteso

La codifica dei dati: le immagini Suddivisione dell immagine in pixel

Scala di grigi Ad ogni tono è associato un codice. 63=11111 11 12 34 23 34 34 12 13 34 11 12 34 56 56 57 58 0 13 61 60 0=00000

Immagini RGB

Immagini RGB 10 21 34 23 34 35 12 13 34 11 60 58 56 56 57 58 6 54 61 60 11 12 34 23 34 34 12 13 34 11 12 34 56 56 57 58 0 13 61 60 8 9 10 21 3 10 11 16 34 11 12 44 46 56 58 58 10 45 44 51

Codifica degli algoritmi: i programmi Anche le istruzioni, per essere comprese dal calcolatore, devono essere espresse come sequenze di numeri binari Per definizione, un programma è un algoritmo codificato E un entità statica (le istruzioni di un programma, una volta codificate, non sono più modificate)

Esecuzione dei programmi: i processi esecuzione delle istruzioni necessarie per produrre i risultati desiderati dall utente a partire dai dati forniti inizialmente Un programma durante la sua esecuzione viene detto processo E un entità dinamica (dipende per esempio dai dati forniti) Dati Calcolatore Risultati Programma

Struttura del calcolatore

Macchina di von Neumann

Macchina di von Neumann Memoria centrale: dispositivo in grado di immettere, conservare ed estrarre informazioni Contiene i programmi Contiene i dati necessari all esecuzione dei programmi CPU: contiene gli elementi circuitali necessari al funzionamento dell elaboratore. Esegue i programmi che risiedono nella memoria centrale in modo sequenziale Dispositivi di Input/Output: permettono la comunicazione e il trasferimento dei dati (monitor, stampanti,...).

Codifica binaria sia del contenuto che dell indirizzo La memoria Fisicamente è costituita da un insieme di elementi ciascuno dei quali può assumere due soli stati fisici rappresentabili dai simboli 0 e 1 (circuiti) individuati da un indirizzo ( etichetta ) 0 1 2 3 4 5 6 7 CPU 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Memoria

Osservazione Fissato un numero di cifre N, quale è il massimo numero intero in una certa base che possiamo rappresentare su N cifre? Base 10 Base 2 9 9 9 9 1 1 1 1

La memoria Indirizzo Memoria 0 1 Dimensione massima della memoria 2 3.... 2 N -1 Ampiezza della memoria

Dimensione della memoria Se N è il numero di cifre binarie disponibili per rappresentare un indirizzo, l intervallo di indirizzi utilizzabili su un calcolatore è [0..2 N-1 ] per un totale di 2 N celle di memoria. Tale valore è chiamato dimensione massima di memoria o spazio di indirizzamento di un calcolatore.

La memoria centrale è: Un insieme finito di locazioni (celle) di uguali dimensioni; Ogni cella consta di n bit; Ogni cella è caratterizzata da un indirizzo e dal contenuto; Mentre il bit è l unità fondamentale di informazione, la cella è l unità fondamentale di memoria; L informazione, che comprende sia i dati che i programmi, risiede nella memoria.

La CPU Unità logico-aritmetica (ALU Arithmetic and Logic Unit) E il sottosistema che esegue operazioni matematiche e logiche come l addizione, la sottrazione ed il confronto. E dotata di registri = locazioni dove memorizzare temporaneamente i dati e i risultati delle operazioni. Unità di controllo (UC) Realizza ogni funzione per reazione a un preciso comando (istruzione). La direzione dei compiti è formulata dall'utente mediante un programma, che risiede in memoria codificato in forma binaria

L Unità di Controllo L UC esegue in continuazione il ciclo dell istruzione: 1. Legge dalla memoria l istruzione da eseguire 2. Decodifica l istruzione (ovvero determina il da farsi) 3. Esegue l istruzione mandando il comando appropriato all ALU, alla memoria, e ai dispositivi di I/O Questi 3 passi vengono ripetuti di continuo finché si raggiunge l ultima istruzione del programma.

Istruzioni in linguaggio macchina Le istruzioni che possono essere decodificate ed eseguite dall' unità di controllo di un calcolatore codificate in forma binaria, detta anche linguaggio macchina. Le istruzioni in questo linguaggio hanno il formato: CODICE OPERATIVO CODICE DATO(o DATI)

Esempio: somma di due numeri Somma il dato nella cella di indirizzo 54 con quello nella cella di indirizzo 376 e memorizza il risultato nella cella 376 Carica il contenuto della cella 54 in un registro Carica il contenuto della cella 376 in un altro registro e somma il contenuto dei registri Sovrascrivi il risultato nella cella 376

Op. Code (8 bit) Operando (indirizzo a 16 bit) Significato 00101110 0000000000110110 Leggi cella 54 Memoria 00001001 0000000101111000 Carica e Somma cella 376 00010001 0000000101111000 Scrivi in cella 376 0 1 0 0 1 1 0 0 1 53 0 0 0 1 1 0 0 0 ALU 54 55 56 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 REGISTRI 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 + = 376 01 0 10 0 0 0 0 1 377 0 0 0 1 0 0 0 1

I programmi e la programmazione

Classificazione dei programmi SOFTWARE APPLICATIVO SOFTWARE DI SISTEMA FIRMWARE HARDWARE

Software di sistema: il sistema operativo Rende appropriatamente utilizzabili le risorse fisiche presenti in un sistema informatico. Comando 01010101 S.O. HW Risultato 01010101

Funzioni del SO Permette agli utenti di accedere alle funzionalità del sistema operativo mediante opportune parole-chiave o comandi. Consente all utente di attivare i programmi. Gestisce la memoria, la CPU e i dispositivi di I/O. Gestisce le operazioni di recupero, eliminazione, modifica, copia dei dati Organizzazione dei dati in files: contenitori logici individuati da un nome, a loro volta raggruppati in cartelle secondo una struttura ad albero

Programmi applicativi Word processing (WP): trattamento di testi, dalla battitura alla correzione, all impaginazione e alla stampa (MICROSOFT WORD) Foglio elettronico: elaborazione di dati, soprattutto di tipo numerico e loro organizzazione in tabelle e grafici (MICROSOFT EXCEL) Gestore di dati e archivi (database): archiviare e gestire informazioni in modo efficiente e razionale Pacchetti grafici ( Computer Aided Design CAD) Pacchetti applicativi aziendali: elaborazione fatture, gestione magazzino Librerie scientifiche matematiche e statistiche.

Programmazione Come si costruisce un programma? Tradurre un algoritmo in istruzioni eseguibili per il calcolatore, ossia in linguaggio macchina.

Programmazione in linguaggio macchina Occorre conoscere i codici operativi delle istruzioni e gli indirizzi dei dati in memoria. Il programmatore deve scrivere una sequenza di cifre binarie Inconvenienti I programmi in linguaggio macchina sono molto lunghi, poco leggibili, non portabili (ogni cpu ha un suo linguaggio) Devono essere noti gli indirizzi dei dati in memoria e i codici delle istruzioni Difficile modifica del programma Difficile localizzazione degli errori

Esempio: somma di due numeri Op. Code (8 bit) Operando (indirizzo a 16 bit) Significato 00101110 0000000000110110 Leggi 53 00001001 0000000101111000 Somma 376 00010001 0000000101111000 Scrivi in 376

Programmazione in assembly Il linguaggio assembly si basa sulla corrispondenza del codice operativo delle istruzioni a parole chiave e sulla possibilità di associare i dati a nomi simbolici (variabili) Esempio: somma di due numeri. LINGUAGGIO MACCHINA Significato LINGUAGGIO ASSEMBLY 00101110 0000000000110110 Leggi 53 LOAD X 00001001 0000000101111000 Somma 376 ADD Y 00010001 0000000101111000 Scrivi in 376 STORE Y

Programmazione in assembly Si suddivide in due fasi Sorgente LOAD, X ADD, Y STORE, Y Scrittura del file sorgente, ossia di un file di testo che contiene le parole chiave corrispondenti alle istruzioni dell algoritmo Fase di assemblaggio, ossia la traduzione del sorgente in linguaggio macchina che viene effettuata da un apposito programma, detto assembler, fornito dal costruttore Assemblatore Programma 001011100000000000110 110000010010000000101 111000000100010000000 101111000

Programmazione in assembly vantaggi: il programmatore può non conoscere gli indirizzi dei dati in memoria e i codici di rappresentazione delle istruzioni facile modifica del programma e localizzazione degli errori svantaggi: programma non portabile corrispondenza 1 a 1 tra istruzione in assembler e in linguaggio macchina

Programmazione in linguaggi evoluti Come l assemby si basano sull utilizzo di parole chiave, con le quali il programmatore scrive il codice sorgente. A differenza dell assembly, ad una istruzione di un linguaggio evoluto possono corrispondere più istruzioni in linguaggio macchina La traduzione in linguaggio macchina viene effettuata da un programma traduttore Esempio: somma di due numeri. Sorgente Y=X + Y Traduttore Programma 001011100000000000110 110000010010000000101 111000000100010000000 101111000

Linguaggi evoluti Vantaggi Programmi portabili Non è richiesta la conoscenza dell hardware del calcolatore o della rappresentazione delle istruzioni a livello macchina Linguaggi orientati alla natura del problema da risolvere Fortran: problemi scientifici Cobol: problemi gestionali Basic, Pascal, Logo: scopi didattici C: costruzione sistemi operativi, compilatori, interpreti Prolog: intelligenza artificiale

Programmazione in linguaggi evoluti Il programmatore deve conoscere la sintassi del linguaggio, ossia le parole chiave e la relativa modalità di utilizzo I linguaggi si suddividono in 2 categorie in base alle caratteristiche del traduttore linguaggi compilati linguaggi interpretati

Linguaggi compilati (Fortran, C,...) Fase di editing (scrittura del file sorgente) Fase di traduzione (compilazione) File sorgente Compilatore Programma Dati Fase di esecuzione Programma Risultati

Linguaggi interpretati (Matlab) File sorgente Dati Fase di traduzione ed esecuzione Interprete Segnalazione di eventuali errori Risultati