Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

27
Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso

Transcript of Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

Page 1: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

Informatica B

Allievi Elettrici

AA 2000-01

Introduzione al corso

Page 2: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

Informazioni Generali• Prof. Letizia Tanca, dip. Elettronica e Informazione (DEI), stanza 128,

tel. 3531, email: [email protected]

– Mercoledì 10:15 - 12:15: lezione

– ricevimento Mercoledì 14:00 - 16:00

• Esercitazioni: ing. William Fornaciari; email: [email protected]

– Giovedì h. 8:15 - 10:15 lezione o esercitazioni

– ricevimento Giovedì 10:30 - 15:30

• Laboratorio:ing.Laura Mandelli (responsabile) sig. Luca Caputo (tutor)

– Lunedì h. 15:15 - 19:15 - prima squadra

– Martedì h. 15:15 - 19:15 - seconda squadra

• Sito web del corso (in costruzione): accessibile da www.elet.polimi.it/~tanca

Page 3: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

Testi

• Ceri, Mandrioli, Sbattella: The art and Craft of Computing, Addison Wesley

• Ceri, Mandrioli, Sbattella: Informatica: arte e mestiere, Mc Graw Hill

• Manuali vari di C• Bellettini et al. : Linguaggio C: esercizi e temi

d’esame risolti, ed. Esculapio, prog. Leonardo

Page 4: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

L’informatica

E’ la scienza che si occupa della

rappresentazione dell’ informazione

e della sua gestione

Page 5: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

L’informatica• Scienza: approccio rigoroso e sistematico• Informazione: e’ parte di qualsiasi attivita’ umana• Rappresentazione: il problema di astrarre i

concetti importanti da quelli trascurabili per poter modellare la realta’ di interesse:ci serve studiare metodi di rappresentazione appropriati all’elaborazione da parte di una macchina digitale

• Gestione: uso e trasformazione dell’informazione in maniera funzionale agli obiettivi

Page 6: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

Il corso: punti di vista• Programmazione

– impariamo un linguaggio di programmazione

– impariamo come si imposta un algoritmo

• Architettura di un Computer (i calcolatori elettronici):– hardware

– software: applicativo e di sistema (le basi di dati, la rete Internet)

Page 7: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

Programmazione

• impariamo un linguaggio di programmazione:– linguaggio C

• impariamo come si imposta una procedura:– l’astrazione

– i tipi di dati e le strutture dati

– le strutture di controllo e gli algoritmi

Page 8: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

I calcolatori elettronici

• strumenti in grado di eseguire operazioni non complesse

modello attuale:– Capacità di scelta (possibilità di scegliere percorsi

diversi in base allo stato interno del sistema);

– Funzionalità programmata (capacità di modificare il proprio comportamento in base al programma);

– Dispositivi digitali (utilizzano valori binari).

Page 9: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

I Modelli dei Calcolatori• Macchina di Turing (1936): modello

teorico legato alla logica matematica.

• modello di Von Neumann: ENIAC– calcolatore reale dotato di capacità di scelta, di

funzionalità programmata e digitale– non binario bensì decimale– Computa esattamente le stesse funzioni

della MdT !!!!

Page 10: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

Macchina di Von Neumann

• Di tipo sequenziale: può processare una sola istruzione per volta.

• Oggi esistono altri modelli di computazione

digitale (ad es. macchine parallele)

• Computano esattamente le stesse funzioni!!

• Altri tipi di computer (quantum computers, analogici…)

Page 11: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

Architettura di un ComputerHardware

• l’Unita’ Centrale (CPU),• la Memoria Centrale (RAM)• la Memoria di Massa• il Bus di Sistema• le Unita’ Periferiche• le Reti di Computer

Il linguaggio della macchina: l’aritmetica binaria

Page 12: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

La macchina di von Neumann

• l’Unita’ Centrale (CPU),

• la Memoria Centrale (RAM)

• la Memoria di Massa• il Bus di Sistema• le Unita’ Periferiche

CPU

MM

BUSRAM

UP1

UPn

Page 13: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

Architettura di un Computer:Software di sistema

• il sistema operativo• i sistemi di gestione di basi di dati• il software di rete• gli ambienti di programmazione: editors,

traduttori, collegatori, debuggers..• gli strumenti di produttivita’: word processors,

fogli elettronici, strumenti per la produzione di slide, strumenti per la produzione di ipertesti…..

Page 14: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

Architettura di un Computer:Software applicativo

• gestionale (sistemi informativi aziendali, elaborazione paghe, fatturazione, automazione del terziario, ….office automation: workflow management)

• numerico (metereologia, applicaz. statistiche,..)

• telematico (terminali bancari, prenotazioni aeree, ….Internet….)

• automazione industriale (robotica, CAD, CIM…)

• controllo di processi (centrali elettriche, nucleari, controllo traffico aereo…)

• realta’ virtuale e interfacce utente …software multimediale

Page 15: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

Strumenti di Produttivita’• Word processors, agende elettroniche,...• I fogli elettronici: Microsoft Excel • Le basi di dati: Microsoft Access

La rete Internet• Le reti di calcolatori, sistemi distribuiti• Il World Wide Web• La posta elettronica• Telnet, FTP

Page 16: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

Gli Algoritmi

• Gestione dell’ informazione: uso e trasformazione dell’informazione in modo appropriato agli obiettivi.

• Le informazioni sono usate e trasformate attraverso algoritmi. Il concetto di algoritmo costituisce un aspetto fondamentale dell’informatica.

• Algoritmo: specifica di una successione finita di passi eseguibili senza alcuna ambiguità (perché essa sia automatizzabile).

Page 17: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

Strumenti per la descrizionedegli algoritmi

• Semi-formali (specifiche iniziali, ancora intelligibili solo all’essere umano)

• Formali (programmi da eseguire):

linguaggi di programmazione

Page 18: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

Linguaggi di Programmazione

Consentono di scrivere gli algoritmi sotto forma di programmi eseguibili dal calcolatore. Suddivisi in:

• Linguaggi di alto livello (più vicini linguisticamente al linguaggio naturale);

• Linguaggi assemblatori (più vicini al codice macchina)

Page 19: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

Componenti di un linguaggio• Vocabolario, o lessico: parole che costituiscono il

linguaggio, controllate dal PARSER o analizzatore lessicale.

• Sintassi: regole per comporre i simboli del lessico. Il controllo della sintassi avviene tramite l’analizzatore sintattico.

• Semantica: significato delle espressioni. Il controllo della semantica è il più difficile. un errore semantico si puo' rilevare in genere solo a tempo di esecuzione.

• Sono categorie rigide nel caso di linguaggi formali di programmazione

Page 20: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

I Traduttori

• I compilatori sono programmi che traducono i programmi scritti in alto livello in codice macchina.

• Gli interpreti interpretano direttamente le operazioni eseguendole.

• Esempi di linguaggi:• Interpretati LISP, PROLOG (usati

nell’intelligenza artificiale;• Compilati C, C++, PASCAL, FORTRAN.

Page 21: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

La catena di programmazione(nel caso di linguaggi compilati)

Generazione di un programma eseguibile:

partendo da un algoritmo descritto con un linguaggio simbolico di basso livello (Assembler) o di alto livello (C, Fortran,…), chiamato PROGRAMMA SORGENTE, produce un programma rappresentato in codice macchina, chiamato PROGRAMMA ESEGUIBILE

Page 22: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

Le fasi sono quattro

• Editing (produzione del programma)

• Traduzione

• Linking (collegamento)

• Loading (caricamento)

Page 23: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

Editing

• Il testo del programma sorgente, costituito da una sequenza di caratteri, viene composto e modificato usando uno specifico programma: l’EDITOR.

• Così otteniamo un File Programma Sorgente memorizzato in memoria di massa in un file di testo di nome:

– XXX.ASM per i programmi in assembler

– XXX.C per i programmi in C

– XXX.CPP per i programmi in C++

– ..etc

Page 24: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

Traduzione• linguaggio assembler --> codice macchina (assemblatore)

• linguaggio di alto livello --> codice macchina (compilatore).

• durante questa fase si riconoscono i simboli, le parole e i costrutti del linguaggio: eventuali messaggi diagnostici segnalano errori lessicali e sintattici

• si produce la forma binaria del codice macchina corrispondente: a partire dal File Programma Sorgente si produce un File Programma Oggetto, cioè in un file binario di nome XXX.OBJ.

Page 25: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

Linking

• Il programma LINKER deve collegare fra loro il file oggetto e i sottoprogrammi richiesti (es. le funzioni di C)

• i sottoprogrammi sono estratti dalle Librerie oppure sono individuati tra quelli definiti dal programmatore (trovati anch’essi nel file oggetto)

• vengono sistemati i riferimenti ad indirizzi dei vari elementi collegati

• viene prodotto un File Programma Eseguibile, un file binario che contiene il codice macchina del programma eseguibile completo ed ha nome XXX.EXE

• messaggi di errore dovuti al ritrovamento di errori nel citare i nomi delle funzioni da collegare

• il programma sarà effettivamente eseguibile solo dopo che il contenuto del file sarà stato caricato nella memoria di lavoro (centrale) del calcolatore

Page 26: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

Loading

• il LOADER individua una porzione libera della memoria di lavoro e vi copia il contenuto del file programma eseguibile XXX.EXE.

• eventuali messaggi rivolti all’utente possono essere segnalazioni di spazio di memoria insufficiente.

Page 27: Informatica B Allievi Elettrici AA 2000-01 Introduzione al corso.

Esecuzione• Per eseguire il programma occorre fornire in ingresso i

dati richiesti e in uscita riceveremo i risultati (su video o file o stampante).

• Durante l’esecuzione possono verificarsi degli errori (run-time) quali: calcoli con risultati scorretti (ad esempio un Overflow); calcoli impossibili (divisioni per zero, logaritmo di un numero

negativo, radice quadrata di un numero negativo,….); errori nella concezione dell’algoritmo (l’algoritmo non risolve il

problema dato);

Tutti gli esempi citati si riferiscono ai cosiddetti errori semantici.