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

Slides:



Advertisements
Presentazioni simili
Informatica Generale Marzia Buscemi
Advertisements

Software di base: Linguaggi di Programmazione
Evoluzione dei linguaggi di programmazione
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Fondamenti di Informatica
L' ARCHITETTURA DI VON NEUMANN
Introduzione al linguaggio assemby del microprocessore a parte
Architettura del calcolatore
la traduzione dei programmi
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Architettura di un calcolatore e linguaggio macchina.
L’esecuzione dei programmi
Concetti Fondamentali sulla Programmazione
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
Il software Claudia Raibulet
Informatica e Informatica di Base
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
Programmazione dei Calcolatori Elettronici
LA MEMORIA CENTRALE. La memoria nella struttura generale del calcolatore MEMORIA CONTROLLO INGRESSO E USCITA ARITMETICA E LOGICA CPU Dispositivi esterni.
IL PROCESSORE I MICROPROCESSORI INTEL Il microprocessore è un circuito integrato dotato di una struttura circuitale in grado di effettuare un determinato.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia
INFORMATICA ALGORITMI, PROGRAMMI, E LINGUAGGI DI PROGRAMMAZIONE.
Elementi fondamentali dell’ Architettura di di un elaboratore elettronico.
Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A Programmazione strutturata.
I linguaggi di programmazione Gruppo iOS 47: Colombini Christian Flora Jonathan Rossi Francesco.
Informatica - CDL in Scienze Politiche e delle Relazioni Internazionali A.A Architettura di un calcolatore Ing. Simona Colucci.
Introduzione alla programmazione MIDI
Sistemi e Applicazioni per l’Amministrazione Digitale
Lavoro di gruppo 3^E sia Peroni Jessica Mascheroni Beatrice
Prova d’Esame: selezione di domande
Rappresentazione dell’ Informazione Informazione e Comunicazione
Architettura e funzionalità
Comandi assembly Il termine assembly deriva dal programma traduttore in linguaggio macchina assembler, l’assemblatore non fa altro che assemblare il.
Dal problema al processo risolutivo
Programmazione per la Musica | Adriano Baratè
LE ARCHITETTURE NON VON NEUMANN
I microprocessori Il microprocessore è un circuito integrato costituito da silicio. Il microprocessore svolge fondamentalmente due funzioni: sovraintende.
Algoritmi e soluzioni di problemi
IL CONCETTO DI ALGORITMO
Dal problema al processo risolutivo
Cammino dei Dati (Datapath)
Architettura del Calcolatore
Architettura dei calcolatori
Architettura del calcolatore
Rappresentazione dei Numeri
Controllo e microprogrammazione
Classe III A A.s – 2012 Programma di Informatica
Programmare.
Programmazione e Laboratorio di Programmazione
Azione delle istruzioni
Programmazione e Laboratorio di Programmazione
INFORMATICA.
© 2007 SEI-Società Editrice Internazionale, Apogeo
INFORMATICA.
Sviluppo di un programma
Definizione di linguaggio di programmazione
LOGICA DI FUNZIONAMENTO
Azione delle istruzioni
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Programmazione e Laboratorio di Programmazione
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Progetto del processore e supporto del processore al SO (interruzioni – eccezioni) Salvatore Orlando.
Relazioni tra CPU e Memoria e Dispositivi I/O
Algoritmi.
ALGORITMO E’ una successione finita di passi che consente di risolvere tutti i problemi di una classe e di determinare il risultato. Caratteristiche: Finito.
ALGORITMO E’ una successione finita di passi che consente di risolvere tutti i problemi di una classe e di determinare il risultato. Caratteristiche: Finito.
Programmazione Procedurale
Transcript della presentazione:

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

Fondamenti di Informatica - D. Talia - UNICAL 2 Specifica di un algoritmo Primo approccio, scrittura diretta del programma: la soluzione coincide con la codifica Causa errori difficilmente individuabili, Non garantisce che non esistano soluzioni chiaramente migliori, Non funziona con programmi grandi, Rende difficile cambiare linguaggio di programmazione, Perciò, è conveniente concentrarsi sulla specifica del problema e dell’algoritmo; la codifica dovrebbe essere solo un passo implementativo.

Fondamenti di Informatica - D. Talia - UNICAL 3 ESEMPIO: Equazione di secondo grado Problema: Calcolare le radici dell’equazione ax 2 +bx+c = 0 Specifica del problema Dati di ingresso: tre numeri reali a, b, c. Pre-condizione: nessuna Dati di uscita: le radici x 1 e x 2, se esistono. Post-condizione: ax 1 2 +bx 1 +c = 0 e ax 2 2 +bx 2 +c = 0

Fondamenti di Informatica - D. Talia - UNICAL 4 ESEMPIO: Equazione di secondo grado Specifica dell’algoritmo: delta  b 2 – 4ac se (delta >≥ 0) sqrtdelta  radice quadrata (delta) x 1  (-b +sqrtdelta) /2a x 2  (-b –sqrtdelta) / 2a altrimenti non esistono radici realidelta

Fondamenti di Informatica - D. Talia - UNICAL 5 ESEMPIO: Prodotto di N numeri Problema: Calcolare il prodotto di N numeri. Specifica del problema: Dati di ingresso: N numeri {x 1, x 2,..., x n } Pre-condizione: nessuna Dati di uscita: un numero P Post-condizione: P =  i=1,n x i

Fondamenti di Informatica - D. Talia - UNICAL 6 ESEMPIO: Prodotto di N numeri Specifica dell’algoritmo: P  1 i  1 Finchè (1<= i <= N) P  P * x i i  i + 1

Fondamenti di Informatica - D. Talia - UNICAL 7 Fondamenti di Informatica Dal Linguaggio Macchina ai Linguaggi di Alto Livello

Fondamenti di Informatica - D. Talia - UNICAL 8 Fondamenti di Informatica - Linguaggio Macchina Le istruzioni elementari eseguite dalla CPU di un computer si chiamano istruzioni macchina. L’insieme delle istruzioni macchina (instruction set ) costituiscono il linguaggio macchina. Un linguaggio macchina consente la programmazione della Macchina di von Neumann, è direttamente eseguibile da un calcolatore senza nessuna traduzione, naturalmente cambia da macchina a macchina (ad es., quello del Pentium è diverso da quello dello AMD).

Fondamenti di Informatica - D. Talia - UNICAL 9 Fondamenti di Informatica - Linguaggio Macchina Le istruzioni sono codificate in formato binario e sono composte da CODICE OPERATIVO: indica l’istruzione da eseguire OPERANDI: indicano gli operandi (indirizzi o valore) Per semplicità ipotizziamo di avere istruzioni con solo operando. Lunghezza delle istruzioni : I = m + n m: num bit del codice operativo, n: num bit dell’operando.

Fondamenti di Informatica - D. Talia - UNICAL 10 Fondamenti di Informatica - Linguaggio Macchina Set di istruzioni insieme delle operazioni del linguaggio macchina ( <= 2 m ). Istruzioni aritmetiche, logiche, di salto, di trasferimento dati. Ipotesi: istruzione a 16 bit : 4 bit per il codice operativo e 12 bit per l’operando.

Fondamenti di Informatica - D. Talia - UNICAL 11 Fondamenti di Informatica - Linguaggio Macchina Esecuzione delle istruzioni Un programma è fatto di DATI + ISTRUZIONI. I dati hanno un formato e vengono scritti in memoria di massa per non perdere il loro valore. Ciclo di esecuzione: Acquisizione dell’istruzione dalla memoria centrale (fase di FETCH); Interpretazione (analisi del codice operativo dell’istruzione); Esecuzione (in questa fase se c’è un operando va caricato nella CPU).

Fondamenti di Informatica - D. Talia - UNICAL 12 Fondamenti di Informatica – Linguaggio Assembler Linguaggi Assemblatori (ASSEMBLER) Linguaggi le cui istruzioni corrispondono univocamente a quelle del linguaggio macchina, ma sono espresse tramite nomi simbolici (parole chiave) invece che in binario. Ad esempio : READ X ; MULT X, Y; LOAD Z; Assemblatore Strumento automatico (programma) che traduce le istruzioni da formato simbolico al formato binario  READ X.

Fondamenti di Informatica - D. Talia - UNICAL 13 Fondamenti di Informatica – Linguaggio Assembler In un linguaggio Assembler Le istruzioni vengono specificate con nomi simbolici (parole chiave). I riferimenti alle celle di memoria (dati) sono fatti mediante nomi simbolici (identificatori). I modi di indirizzamento vengono indicati tramite simboli. Il programma prima di essere eseguito deve essere tradotto in linguaggio macchina dall’ Assemblatore READ X READ Y SUB X, Y

Fondamenti di Informatica - D. Talia - UNICAL 14 Prodotto di due numeri – Linguaggio Macchina Esempio Programma assembler che calcola il prodotto di due numeri con il corrispondente programma in linguaggio macchina ASSEMBLER LINGUAGGIO MACCHINA READ X READ Y LOADA X LOADB Y MUL STOREA X WRITE X HALT X INT Y INT

Fondamenti di Informatica - D. Talia - UNICAL 15 VERSO LINGUAGGI DI ALTO LIVELLO Linguaggio Macchina Conoscenza precisa dei metodi di rappresentazione e manipolazione delle informazioni utilizzate. Linguaggio Macchina ed Assembler Necessità di conoscere dettagliatamente le caratteristiche della macchina (registri, dimensioni dati, set di istruzioni). Semplici algoritmi richiedono l'uso di molte istruzioni. Linguaggi di Alto Livello Il programmatore può astrarre dai dettagli legati all’architettura e può esprimere i propri algoritmi in modo simbolico. I linguaggi di alto livello sono indipendenti dalla macchina fisica (astrazione).

Fondamenti di Informatica - D. Talia - UNICAL 16 VERSO LINGUAGGI DI ALTO LIVELLO COME ESEGUIRE UN PROGRAMMA SCRITTO IN UN LINGUAGGIO DI ALTO LIVELLO ? Occorre tradurlo nel linguaggio macchina dello specifico processore che si sta usando. Due possibili modi: Compilazione (es. C, FORTRAN, Pascal, C++, COBOL,...) Interpretazione (es. Basic, Perl, JavaScript, …)

Fondamenti di Informatica - D. Talia - UNICAL 17 COMPILATORI I compilatori traducono un intero programma dal linguaggio L 1 al linguaggio macchina L 0 della macchina prescelta: traduzione e esecuzione procedono separatamente, al termine della compilazione è disponibile la versione tradotta del programma, la versione tradotta è però specifica di quella macchina; per eseguire il programma basta avere disponibile la versione tradotta (non serve il programma originale!). L 1  L 0

Fondamenti di Informatica - D. Talia - UNICAL 18 INTERPRETI Gli interpreti invece traducono e immediatamente eseguono il programma istruzione per istruzione traduzione ed esecuzione procedono insieme, al termine non vi è alcuna versione tradotta del programma originale, se si vuole ri-eseguire il programma occorre anche ri-tradurlo.

Fondamenti di Informatica - D. Talia - UNICAL 19 FASI DI SVILUPPO DI UN PROGRAMMA Qualunque sia il linguaggio di programmazione scelto occorre: 1. Scrivere il testo del programma e memorizzarlo su supporti di memoria permanenti (editing); 2. Se il linguaggio è compilato: Tradurre il linguaggio in linguaggio macchina (compilazione); Eseguire il programma tradotto. 3. Se il linguaggio è interpretato: Usare l’interprete per eseguire il programma.

Fondamenti di Informatica - D. Talia - UNICAL 20 Prodotto di due numeri – Linguaggio Java Programma Java che calcola il prodotto di due numeri: class prodotto { public static void main(String args[]){ int x=3; int y=5; int p; p = x * y; System.out.println("Prodotto = " + p); }