La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

2000 Prentice Hall, Inc. All rights reserved. Capitolo 1 (Deitel) Introduzione ai Computer Indice degli argomenti 1.1 - Introduzione 1.2 - Che cosa è un.

Presentazioni simili


Presentazione sul tema: "2000 Prentice Hall, Inc. All rights reserved. Capitolo 1 (Deitel) Introduzione ai Computer Indice degli argomenti 1.1 - Introduzione 1.2 - Che cosa è un."— Transcript della presentazione:

1 2000 Prentice Hall, Inc. All rights reserved. Capitolo 1 (Deitel) Introduzione ai Computer Indice degli argomenti Introduzione Che cosa è un Computer? Organizzazione di un calcolatore Evoluzione dei sistemi operativi Personal computer, calcolo distribuito ed elaborazione client/server Linguaggi macchina, linguaggi Assembly e linguaggi di alto livello Breve storia del C La libreria standard del C La dinamica chiave del software: tecnologia dei linguaggi ad oggetti Programmare in C Programmare in Java Altri linguaggi di alto livello Concetti importanti di programmazioni Fondamenti di un tipico ambiente di sviluppo per programmi C La dinamica del hardware Breve storia di Internet Breve storia del World Wide Web Note generali sul C e su questo libro

2 2000 Prentice Hall, Inc. All rights reserved Introduzione In questo corso studieremo il linguaggio C –Analizzeremo la struttura di un programma, con riferimento al C, e in particolare le principale tecniche di programmazione –Nel Capitolo 15 del Deitel viene presentata unintroduzione al C++, unevoluzione del C Questo corso è adatto per: –Le persone tecnicamente orientate alla programmazione ma con poca o nessuna esperienza nella programmazione –I programmatori con esperienza che vogliono una profonda e rigorosa trattazione teorica del linguaggio C

3 2000 Prentice Hall, Inc. All rights reserved Che cosa è un Computer? Computer –E un dispositivo capace di eseguire calcoli e prendere decisioni logiche –Elabora dati sotto il controllo di una serie di istruzioni, che nel loro insieme sono chiamate programmi Hardware –Comprende le varie unità/dispositivi che compongono il calcolatore –Tastiera, schermo, mouse, dischi, memoria, CD-ROM e unità di elaborazione (CPU) sono le principali componenti hardware Software –Comprende i programmi che sono eseguiti dal calcolatore fanno funzionare il computer stesso

4 2000 Prentice Hall, Inc. All rights reserved Organizzazione di un calcolatore Ogni computer è composto da 6 unità logiche: 1.Unità di Input Riceve informazioni/dati dallunità di input (tastiera, mouse) 2.Unità di Output Dà informazioni (a schermo, stampante, controllori di altre unità) 3.Unità di Memoria Memorizza temporaneamente le informazioni in input e i programmi attivi Accesso rapido, bassa capacità, costosa 4.Unità Aritmetico-Logica (ALU) Esegue calcoli aritmetici e prende decisioni logiche 5.Unità di Processo centrale (CPU) Supervisiona e coordina il lavoro altre unità del computer 6.Unità di Memoria secondaria Memorizza in modo permanente (lungo termine) dati e programmi inattivi Accesso meno rapido, alta capacità, economica

5 2000 Prentice Hall, Inc. All rights reserved Evoluzione dei sistemi operativi (1/2) Sistema operativo –Costituisce linterfaccia tra la macchina e lutente –Serve a gestire le risorse del sistema di elaborazione ed a coordinare gli eventi che discendono dal suo uso –I più noti attualmente sono Windows, Linux, Unix, OS2 Primi calcolatori (prima generazione, anni 40) –Programmazione fatta solo in linguaggio macchina, con schede forate –Nessun linguaggio di programmazione né sistema operativo Sistemi Batch (seconda generazione, anni 50) –Il sistema legge in sequenza i vari job (compiti) e li esegue uno alla volta –Un job contiene una serie di calcoli e può essere costituito da un singolo programma o da un insieme di programmi –Sistemi programmati coi primi linguaggi (Fortran e Assembler) e con pseudo-sistemi operativi per gestire il caricamento in serie dei vari job

6 2000 Prentice Hall, Inc. All rights reserved Evoluzione dei sistemi operativi (2/2) Multi-programmazione (terza generazione, anni 60) –Per ridurre i tempi in cui la CPU resta inattiva, un job può occupare il processore mentre un altro è in attesa di finire unoperazione di I/O –Per fare ciò, la memoria principale viene divisa in partizioni, una dedicata al sistema operativo e le rimanenti assegnate a vari job –Vari job condividono le risorse del computer (multi-programmazione) –Aumenta il throughput, la quantità di processi che i computer svolgono –Nascono i primi sistemi operativi per gestire la multi-programmazione Time-sharing (condivisione del tempo) –Variante della multi-programmazione che permette a più utenti di avere un terminale ciascuno –Migliora linterattività e riduce il tempo di risposta del calcolatore –La CPU è assegnata a turno ai vari utenti e svolge ad ogni turno solo una piccola parte del loro lavoro di ognuno, poi passa un altro lutente –I sistemi operativi che gestiscono il time-sharing pongono le premesse per la creazione del primo sistema operativo efficiente (Unix)

7 2000 Prentice Hall, Inc. All rights reserved Personal computer, calcolo distribuito ed elaborazione client/server Personal computer –Calcolatori abbastanza economici per essere acquistati da privati –I/O, calcoli e ogni altra operazione è eseguita in locale sfruttando le sole risorse del proprio calcolatore Calcolo distribuito –Fa uso di più computer interconnessi in rete per svolgere calcoli complessi –Lelaborazione globale è distribuita tra le CPU dei vari calcolatori Elaborazione client/server –Condivisione di informazioni/risorse attraverso una rete di calcolatori –La condivisione avviene tra file server e client (personal computer) I server mettono a disposizione le informazioni e le risorse per di calcolo I client visualizzano le informazioni e/o inviano dati su cui effettuare calcoli, ricevendo in risposta dal server i risultati desiderati Possibilità di gestire contemporaneamente un numero elevato di utenti

8 2000 Prentice Hall, Inc. All rights reserved Linguaggi macchina, linguaggi Assembly e linguaggi di alto livello (1/2) Esistono 3 tipi di linguaggi per programmare 1.Linguaggio macchina –Le istruzioni sono date da sequenze di numeri che danno alle macchine specifiche istruzioni in modo diretto (in binario) –Esempio di istruzione: Linguaggi Assembly –Le istruzioni sono abbreviazioni di parole inglesi che rappresentano operazioni elementari per il computer (poi tradotte da assemblatori) –Forte dipendenza dalla CPU su cui sono eseguite, per cui ce ne sono tanti –Esempio di istruzione: LOAD BASEPAY ADD OVERPAY STORE GROSSPAY

9 2000 Prentice Hall, Inc. All rights reserved Linguaggi macchina, linguaggi Assembly e linguaggi di alto livello (2/2) 3. Linguaggi di alto livello –Le istruzioni sono simili allinglese odierno e fanno anche uso di notazioni matematiche (poi tradotte da compilatori) –Indipendenti dalla piattaforma su cui sono eseguite, ma ne esistono comunque tanti –Esempio di tali linguaggi sono C, Java, Basic, ecc.. –Esempio di istruzione: grossPay = basePay + overTimePay

10 2000 Prentice Hall, Inc. All rights reserved. 1.7 – Breve storia del C Note storiche sul C –Fu sviluppato da Ritchie come evoluzione di due precedenti linguaggi di programmazione (BCPL e B) –E stato usato per sviluppare il sistema operativo UNIX –Oggi la maggior parte dei sistemi operativi sono scritti con C o C++ –E un linguaggio indipendente dalla piattaforma hardware (portabile) –Dalla fine degli anni 70, il C è evoluto nel "C Tradizionale, il nostro Standardizzazione del C –Inizialmente esistevano molte piccole varianti incompatibili del C –Perciò venne formato un comitato per creare una sola definizione del C che fosse chiara, indipendente dalla macchina" –Lo standard è stato creato nel 1989 e poi aggiornato nel 1999

11 2000 Prentice Hall, Inc. All rights reserved La libreria standard del C Un programma in C consiste di vari pezzi/moduli, che sono chiamati funzioni –Un programmatore può creare tutte le funzioni che intende usare Vantaggio: il programmatore sa esattamente come lavora il programma Svantaggio: si perde tempo prezioso –Perciò i programmatori useranno spesso la libreria delle funzioni del C Usano le funzioni generiche di base contenute nella libreria come blocchi fondamentali per creare proprie funzioni più complesse e specifiche –E bene evitare di re-inventare nuove funzioni, se non è necessario Se una funzione esiste già e funziona, generalmente è sempre meglio usare quella piuttosto che scriverne una propria nuova versione da zero Le funzioni di libreria sono scritte accuratamente, sono efficienti, e portabili

12 2000 Prentice Hall, Inc. All rights reserved La dinamica chiave del software: tecnologia dei linguaggi ad oggetti Oggetti –Sono componenti software riusabili che modellano le entità presenti nel mondo reale –Sono unità software aventi un significato proprio: Possono rappresentare dati, tempi, oggetti, conti bancari, fatture, audio, video, file, documenti, ecc.. Qualsiasi cosa può essere rappresentata come un oggetto –Sono componenti altamente riutilizzabili –I programmi generati sono più comprensibili, meglio organizzati e più facile da mantenere che i programma scritti in modo procedurale –Usare gli oggetti favorisce la modularità nella struttura dei programmi –Il C però non è un linguaggio a oggetti, ma procedurale –C++ e Java invece sono linguaggi ad oggetti

13 2000 Prentice Hall, Inc. All rights reserved Programmare in C++ C++ –Evoluzione del C sviluppata da Bjarne Stroustrup presso i laboratori Bell –E un C più elegante ed è orientato agli oggetti –La progettazione orientata agli oggetti è molto potente E noto che accresce la produttività da 10 a 100 volte –Linguaggio dominante sia in azienda che nelle università Imparare il C++ –Dato che C++ comprende il C, molti credono sia prima meglio diventare esperti del C e poi passare al C++, piuttosto che imparare C++ da zero –Lintroduzione al C++ inizia dal Capitolo 15 del Deitel

14 2000 Prentice Hall, Inc. All rights reserved – Programmare in Java Java è usato per: –Creare pagine Web con contenuti dinamici ed interattivi –Sviluppare applicazioni su larga scala per le imprese –Accrescere la funzionalità dei Web server –Fornire applicazioni per dispositivi portatili di uso comune (come i cellulari, i PDA e gli altri dispositivi mobile) Programmazione in Java –Java è stato sviluppato della Sun –I corsi di base che insegnano il Java in genere presentano le nozioni essenziali della grafica, del disegno, dellanimazione, dellaudio, del video, dei database, delle reti, dellelaborazione con multi-threading e collaborativa

15 2000 Prentice Hall, Inc. All rights reserved Altri linguaggi di alto livello Oltre ai due citati, famosissimi, pochi altri linguaggi di alto livello hanno ottenuto una largo consenso FORTRAN –Si usa nelle applicazioni scientifiche ed ingegneristiche (calcoli fisici) COBOL –Usato per manipolare grandi quantità di dati (sistemi gestionali) Pascal –Utilizzato per scopi accademici (spesso insegnato alle superiori)

16 2000 Prentice Hall, Inc. All rights reserved – Concetti importanti di programmazione Programmazione strutturata –Approccio disciplinato alla scrittura dei programmi –Programmi chiari, facili da testare e rimuovere, e facili da modificare Multi-tasking –Termine con cui si specifica che molteplici attività sono eseguite in parallelo

17 2000 Prentice Hall, Inc. All rights reserved – Fondamenti di un tipico ambiente di sviluppo per programmi C Fasi di un Programma C : 1.Editare 2.Preprocessare 3.Compilare 4.Unire (linkare) 5.Caricare 6.Eseguire Loader Memoria principale Compilatore Editor Preprocessore Linker CPU Memoria principale Disk Il codice è scritto con un editor (testuale o per il C) e memorizzato su disco Il preprocessore (sw) elabora le direttive nel codice sorgente Il compilatore crea il codice oggetto binario e lo salva su disco Il Linker collega il codice alle librerie, crea un file.out e lo memorizza su disco (leseguibile finale) Il Loader carica il programma nella memoria principale La CPU prende ogni istruzione e la esegue, spesso memorizzando nuovi valori dei dati durante lesecuzione del programma

18 2000 Prentice Hall, Inc. All rights reserved Dinamica del hardware Ogni anno o due approssimativamente raddoppiano: –La quantità di memoria disponibile in cui eseguire i programmi –La quantità di memoria secondaria (come hard disk) per mantenere salvati programmi e dati a lungo termine –La velocità del processore con cui il computer esegue i suoi programmi

19 2000 Prentice Hall, Inc. All rights reserved Breve storia di Internet Internet permette –Veloci e semplici comunicazioni via –Linterconnessione internazionale di computer via rete –Molte altre applicazioni innovative Packet switching –I dati digitali sono trasferiti in rete per mezzo di piccoli pachetti –Permette a più utenti di mandare e ricevere dati simultaneamente Controllo non centralizzato –Se una parte di Internet si danneggia, le altre parti possono ancora operare Larghezza di banda –Lo velocità trasmissione delle informazioni dipende dalla capacità delle linee di comunicazione

20 2000 Prentice Hall, Inc. All rights reserved Breve storia del World Wide Web Il World Wide Web (WWW) –Contiene e permette di visualizzare documenti multimediali più o meno su qualsiasi argomento –Rende le informazioni accessibili a livello mondiale istantaneamente e in modo conveniente –Permette anche a privati e piccole aziende di interfacciarsi al pubblico del mondo intero –Ha cambiato il modo di fare affari e commercio

21 2000 Prentice Hall, Inc. All rights reserved Note generali sul C e su questo libro Chiarezza nello scrivere i programmi –I programmi aventi codice confuso e disordinato sono difficili da leggere, capire e modificare Il C è un linguaggio portabile –I programmi possono funzionare su molti differenti computer –Tuttavia la totale portabilità è una obiettivo illusorio Verrà seguito un percorso accurato attraverso il C –Tuttavia certi dettagli e altre sottigliezze non verranno descritte –Se fossero necessari ulteriori dettagli tecnici Leggere il documento standard C Leggere il libro su C scritto da Kernigan & Ritchie


Scaricare ppt "2000 Prentice Hall, Inc. All rights reserved. Capitolo 1 (Deitel) Introduzione ai Computer Indice degli argomenti 1.1 - Introduzione 1.2 - Che cosa è un."

Presentazioni simili


Annunci Google