Capitolo 01
Capitolo 01
1: Introduzione 1
Fondamenti di
Informatica e
Laboratorio
Fondamenti di Informatica Cap. 1: Introduzione 2
Informatica e computer
Informatica e computer
Informatica e computer
Propone un modello di
organizzazione di una macchina a
programma memorizzato
– concetti di base
– tecnologie
Libri di testo
Informatica Programmazione in C
K.N. King
Orientarsi nel mondo digitale
B.W. Kerninghan Apogeo
Egea ISBN: 9788850328697
786 pagine
ISBN: 9768823822733
276 pagine Settembre 2009
traduzione in italiano
Luglio 2019
traduzione in italiano
Fondamenti di Informatica Cap. 1: Introduzione 9
Sito web
http://www.di.unisa.it/˜paodar/
• Materiale didattico
• Codice
• Slide
• Informazioni
• Programma
• Libri
• Annunci
• Esami
• Date
• Risultati
Fondamenti di Informatica Cap. 1: Introduzione 10
Informazioni
– email: [email protected]
Prove d’esame
• Prova orale
– Discussione del programma sviluppato e domande di
cultura informatica
Fondamenti di Informatica Cap. 1: Introduzione
48 ore insieme …
Fondamenti di Informatica Cap. 1: Introduzione
Organizzazione di un elaboratore
Componenti e meccanismi
Fondamenti di Informatica Cap. 1: Introduzione
Struttura di un elaboratore
¢ Modalità di funzionamento
l Le CPU e controller di dispositivi sono connessi ad un bus
comune che fornisce accesso alla memoria condivisa
l Le CPU e i controller dei dispositivi competono per ottenere
cicli di accesso alla memoria
Fondamenti di Informatica Cap. 1: Introduzione
Struttura di un elaboratore
Bootstrap
Interrupt driven
•È volatile.
Fondamenti di Informatica Cap. 1: Introduzione
Un disco è composto da
piatti
Gerarchia di memorizzazione
¢ I sistemi di memorizzazione sono organizzati
gerarchicamente.
l Velocità
l Costo
l Volatilità
Fondamenti di Informatica Cap. 1: Introduzione
Unità di misura
• b bit, valore 0/1
• B byte = 8 bit
Architetture
Fondamenti di Informatica Cap. 1: Introduzione
Architetture multiprocessore
Fondamenti di Informatica Cap. 1: Introduzione
Sistemi multiprocessore
Questi sistemi, anche detti paralleli o con processori strettamente
accoppiati, posseggono più processori che condividono il bus del
computer, il clock, la memoria e le periferiche.
Struttura di rete
Le velocità di comunicazione
variano da 1 Mb a 10 Gb
Comuni sono:
Struttura di rete
Le velocità di comunicazione
variano da 56Kb a diversi Mb
Le connessioni sono
controllate da CP,
communication processor
faciltà d’uso
convenienza
efficienza uso risorse
Concetti chiave
Interfaccia utente
CLI
Interfaccia utente
GUI
¢ Le interfacce grafiche forniscono desktop amichevoli
l I comandi sono forniti tramite mouse, tastiera, monitor
l Icone rappresentano file, programmi, azioni …
l La pressione dei tasti del mouse sugli oggetti dell’interfaccia causa varie
azioni (recupero informazioni, opzioni, esecuzioni di funzioni, apertura di
directory)
l Inventate a Xerox PARC, comuni con Apple Mac
Sviluppo di codice
Alternative?
Windows?
Capitolo 1
Introduzione al C
Fondamenti di Informatica Cap. 1: Introduzione 44
Linguaggio di programmazione
• Le “parole” sono delle istruzioni
Un esempio di programma C
#include "stdio.h"
int main() {
printf("Ciao mondo!\n");
return 0;
}
Fondamenti di Informatica Cap. 1: Introduzione 46
… in linguaggio assembly
… in linguaggio macchina
Fondamenti di Informatica Cap. 1: Introduzione 48
Standardizzazione del C
• K&R (Kernighan and Ritchie) C
– The C Programming Language (1978)
– De facto standard
• C89/C90
– Standard ANSI X3.159-1989
– Completato nel 1988; approvato formalmente nel 1989
– Standard internazionale ISO/IEC 9899:1990
• C99
– Standard internazionale ISO/IEC 9899:1999
• es. di differenza: dichiarazioni non devono essere necessariamente fatte
all’inizio di un blocco
• C11
– Standard internazionale ISO/IEC 9899:2011
• es di differenza: la funzione gets() è deprecata; sostituita da gets_s()
Fondamenti di Informatica Cap. 1: Introduzione 52
• C++
– Include tutte le caratteristiche del C e aggiunge il supporto
per la programmazione ad oggetti
• Java
– Si basa su C++ e quindi eredita molte caratteristiche del C
• C#
– È un linguaggio recente basato su C++ e Java
• Perl
– Utilizza molte caratteristiche del C
Fondamenti di Informatica Cap. 1: Introduzione 53
Debolezze del C
• È facile fare errori di programmazione
– Il linguaggio è molto “permissivo”
• Può essere difficile capire i programmi
– Stile di programmazione
• Può essere difficile modificare i programmi
Fondamenti di Informatica Cap. 1: Introduzione 56