Академический Документы
Профессиональный Документы
Культура Документы
versione 3.2
Questo lavoro concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
Sommario
Linguaggi
Il
di Programmazione
Sintassi e Semantica
Concetto di Algoritmo Ciclo di Vita del Codice Compilazione del Codice Interpretazione del Codice Metodologia di Programmazione
G. Mecca - Programmazione Procedurale 2
Linguaggi di Programmazione
Linguaggi
numerosi linguaggi
1974 C 1991 VB 1994 Java
1968 Pascal
Linguaggi di Programmazione
programmazione procedurale
clean C
C++
programmazione orientata agli oggetti
Java, C#
Linguaggi di Programmazione
Attenzione
i linguaggi della stessa famiglia sono normalmente basati sugli stessi concetti
Differenze
alcuni linguaggi forniscono funzionalit che altri non hanno sintassi semantica
G. Mecca - Programmazione Procedurale 6
Sintassi e Semantica
Simile
al linguaggio naturale
sintassi e semantica
Sintassi
grammatica del linguaggio insieme delle regole che stabiliscono quali frasi (programmi) sono corretti in Italiano: maiuscola dopo il punto in C++: le istruzioni si concludono con ;
G. Mecca - Programmazione Procedurale 7
Sintassi e Semantica
Semantica
significato del linguaggio insieme delle regole che stabiliscono come il calcolatore esegue i programmi corretti in italiano: andr unazione nel futuro in C++: cout << Ciao;
Attenzione
Sintassi e Semantica
Attenzione
Sintattica
Semantica (o Logica)
Sintassi e Semantica
Verifica
viene verificata dal compilatore o dallinterprete consente di eliminare gli errori sintattici
Verifica
esecuzione e test del programma prove di funzionamento per controllare che il programma si comporti correttamente (processo pi complesso e delicato)
G. Mecca - Programmazione Procedurale
10
Il Concetto di Algoritmo
Per
il processo di sviluppo del software complesso necessario un metodo (ovvero una metodologia) per affrontare questa complessit
G. Mecca - Programmazione Procedurale 11
Il Concetto di Algoritmo
Il
punto di partenza
la descrizione del problema, normalmente fornita in linguaggio naturale opportuno analizzarla accuratamente
Il
punto di arrivo
Il Concetto di Algoritmo
Algoritmo
problema centrale
capito il problema, decidere attraverso quale sequenza di passi costruire la soluzione un problema ricorrente, che capita in molti altri contesti
Esempio:
lavare i panni
13
Il Concetto di Algoritmo
Problema di Calcolo -dati in ingresso -risultati attesi Es: lavare i panni dati in ingresso
Algoritmo
Programma
Tecnologia
Es: lavatrice
G. Mecca - Programmazione Procedurale
Il Concetto di Algoritmo
Strategia
deve essere concretamente eseguibile usando la tecnologia disponibile; es: separa i bianchi dai colorati deve essere corretta es: lava bianchi a 60 gradi deve essere efficiente, ovvero produrre la soluzione utilizzando le minori risorse possibili (es: tempo, memoria) es: lava colorati separatamente (a 30 gradi)
G. Mecca - Programmazione Procedurale 15
concepito lalgoritmo
sorgente
macchina
compilazione del codice sorgente richiede lutilizzo di uno strumento chiamato compilatore interpretazione del codice sorgente richiede lutilizzo di uno strumento chiamato interprete
G. Mecca - Programmazione Procedurale 17
di compilazione
di collegamento
collega il codice oggetto a quello delle librerie esterne (es: op. matematiche) produce il codice eseguibile completo dellapplicazione
G. Mecca - Programmazione Procedurale 18
questo punto
di test
codice sorgente
errori nella strategia
Compilazione errori e Collegamento sintattici
errori logici
codice eseguibile
Verifica Uso e Manutenzione
20
21
il compilatore individua subito gli errori sintattici inoltre il codice pu essere ottimizzato per lesecuzione rapida sulla macchina
Ma
principale
non possibile
scrivere il codice e schiacciare un tasto per eseguirlo sempre prima necessario eseguire passi intermedi (salvare il codice in un file, eseguire il compilatore, e solo dopo la compilazione eseguire il file eseguibile)
G. Mecca - Programmazione Procedurale 23
il codice viene scritto allinterno di uno strumento apposito, detto interprete che ovviamente supporta anche le funzioni di scrittura (editing di testo) inoltre fornisce un comando Esegui oppure Run
G. Mecca - Programmazione Procedurale 24
linterprete analizza le istruzioni una per una, a partire dalla prima traduce ciascuna istruzione in linguaggio macchina e chiede al processore di eseguirla poi passa allistruzione successiva
In
altri termini
non necessario salvare il codice in un file non necessario eseguire il comando di compilazione prima dellesecuzione
G. Mecca - Programmazione Procedurale 25
collegamento
avviene tipicamente in modo dinamico, ovvero ogni volta che unistruzione del codice lo richiede al momento dellesecuzione di quella istruzione, linterprete localizza la libreria esterna e la collega al codice dellapplicazione per eseguirla
G. Mecca - Programmazione Procedurale 26
Eventuale Collegamento
CPU
27
fondamentale
un linguaggio compilato
la trasformazione del codice sorgente in linguaggio macchina viene fatta tutta assieme prima dellesecuzione il codice non pu essere eseguito se contiene errori sintattici (perch il compilatore non genera leseguibile) distinzione chiara tra errori sintattici e logici
G. Mecca - Programmazione Procedurale 28
un linguaggio interpretato
la trasformazione del codice sorgente in linguaggio macchina viene fatta istruzione per istruzione durante lesecuzione il codice pu essere eseguito anche se contiene errori sintattici in questo caso lesecuzione comincia e poi si interrompe al momento in cui viene incontrata listruzione sintatticamente scorretta
G. Mecca - Programmazione Procedurale 29
Metodologia di Programmazione
Metodo
passi e tecniche per analizzare il problema passi e tecniche per scegliere lalgoritmo passi e tecniche per scrivere il codice passi e tecniche per verificare il codice passi e tecniche per manutenere il codice
La
metodologia importante
30
Riassumendo
Varie
di un Programma
Problema-Algoritmo-Programma
Compilazione
This work is licensed under the Creative Commons AttributionShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Questo lavoro viene concesso in uso secondo i termini della licenza Attribution-ShareAlike di Creative Commons. Per ottenere una copia della licenza, possibile visitare http://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una lettera allindirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
32