Programmazione Procedurale in
Linguaggio C++
Concetti Introduttivi
Parte 2
Linguaggi di Programmazione
versione 2.0
Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons
(vedi ultima pagina)
G. Mecca – Università della Basilicata – [email protected]
Concetti Introduttivi: Linguaggi >> Sommario
Sommario
 Linguaggi
di Programmazione
Sintassi
Semantica
 Ciclo
di Vita del Programma
Concetto di Algoritmo
Compilazione e Caricamento
Metodologia di Programmazione
 In
Pratica
G. Mecca - Programmazione Procedurale in Linguaggio C++
2
Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione
Linguaggi di Programmazione
 Linguaggi
per impartire istruzioni al
processore
 Programma
sequenza di istruzioni
normalmente pensato per risolvere un
problema di calcolo
al programma vengono forniti dei dati
il programma calcola eseguendo le istruzioni
il programma restituisce i risultati
G. Mecca - Programmazione Procedurale in Linguaggio C++
3
Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione
Evoluzione dei Linguaggi
 Esistono
numerosi linguaggi
differenti per funzionalità e tecnologia
metà anni ’60
BASIC
metà anni ’50
FORTRAN
1974
C
1991
VB
1968
Pascal
Linguaggi di
Programmazione
Procedurale Strutturata
1990
C++
Linguaggi
Ibridi
G. Mecca - Programmazione Procedurale in Linguaggio C++
1994
Java
2000
C#, VB.NET
Linguaggi
Orientati
agli Oggetti
4
Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione
Linguaggi di Programmazione
programmazione
procedurale
C
sostanzialmente
equivalente ma
più semplice del C
“clean C”
C++
programmazione
orientata agli
oggetti
G. Mecca - Programmazione Procedurale in Linguaggio C++
Java,
C#,
VB.NET
5
Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione
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 in Linguaggio C++
6
Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione
Linguaggio di Programmazione
 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 in Linguaggio C++
7
Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione
Linguaggio di Programmazione
 Processo
di compilazione
il codice del programma (codice sorgente)
viene sottoposto ad analisi sintattica
viene trasformato in codice eseguibile dal
processore (codice oggetto)
 Compilatore
analisi lessicale: divide il codice in frammenti
detti “token” (parole chiave, nomi ecc.)
analisi sintattica: verifica la correttezza
G. Mecca - Programmazione Procedurale in Linguaggio C++
8
Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione
Linguaggio di Programmazione
 Semantica
“significato” del linguaggio
insieme delle regole che stabiliscono come il
calcolatore esegue i programmi corretti
in italiano: “andrò è un’azione nel futuro”
in C++: cout << “Ciao”;
 Attenzione
sintassi e semantica dei linguaggi di
programmazione sono rigorose
G. Mecca - Programmazione Procedurale in Linguaggio C++
9
Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione
Linguaggio di Programmazione
 Attenzione
ci sono due diverse nozioni di correttezza
 Correttezza
Sintattica
assenza di errori sintattici
il programma è eseguibile
 Correttezza
Semantica (o Logica)
implica la correttezza sintattica
il prog. risolve correttamente il problema
G. Mecca - Programmazione Procedurale in Linguaggio C++
10
Concetti Introduttivi: Linguaggi >> Linguaggi di Programmazione
Linguaggio di Programmazione
 Verifica
della correttezza sintattica
compilazione
consente di eliminare gli errori sintattici
 Verifica
della correttezza semantica
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 in Linguaggio C++
11
Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma
Ciclo di Vita di un Programma
 Programma
sequenza di istruzioni che risolve un
problema di calcolo
 Per
programmare
è necessario conoscere almeno un
linguaggio
ma questo non basta
è necessario conoscere “tecniche”, ovvero
“metodologie” di programmazione
G. Mecca - Programmazione Procedurale in Linguaggio C++
12
Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma
Dal Problema al Programma
Problema
di Calcolo
-dati in ingresso
-risultati attesi
Es: lavare i panni
Calcolatore
dati in ingresso
Algoritmo
Es: strategia di
lavaggio
(colore, delicati)
Es: lavatrice
G. Mecca - Programmazione Procedurale in Linguaggio C++
Programma
dati in uscita
Es: programmi di
lavaggio
13
Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma
Algoritmo
 Strategia
di soluzione del problema
deve essere concretamente eseguibile dal
calcolatore; es: “separa i bianchi dai colorati”
deve essere corretta
es: “lava bianchi e colorati a 60 gradi”
deve essere efficiente, ovvero produrre la
soluzione utilizzando le minori risorse
possibili (es: tempo, memoria)
es: “lava ciascun capo separatamente”
G. Mecca - Programmazione Procedurale in Linguaggio C++
14
Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma
Programma

Scrittura
codice sorgente

Compilazione
verifica della correttezza sintattica
codice “oggetto”

Collegamento
ogni programma richiede codice esterno
codice eseguibile

Esecuzione
verifica degli errori logici
G. Mecca - Programmazione Procedurale in Linguaggio C++
15
Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma
Ciclo di Vita di Un Programma
Analisi del
Problema
Scelta dell’
Algoritmo
Scrittura del
Programma
codice
sorgente
errori
nella
strategia
Compilazione
errori
e
Collegamento sintattici
errori
logici
codice
eseguibile
Verifica
G. Mecca - Programmazione Procedurale in Linguaggio C++
Uso e
Manutenzione
16
Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma
Compilazione e Collegamento
codice
sorgente
es:primo.cpp
Compilazione
Compilatore
librerie
esterne
precompilate
es: iostream
codice
oggetto
(ling. macchina)
es: primo.obj
Collegamento
codice
eseguibile
es: primo.exe
Collegatore
(“linker”)
G. Mecca - Programmazione Procedurale in Linguaggio C++
17
Concetti Introduttivi: Linguaggi >> Ciclo di Vita di un Programma
Metodologia di Programmazione
 Metodo
per affrontare il ciclo di vita
passi e tecniche per analizzare il problema
passi e tecniche per scegliere l’algoritmo
passi e tecniche per scrivere il codice
passi e tecniche per verificare il codice
passi e tecniche per manutenere il codice
 La
metodologia è importante
altrettanto che la conoscenza del linguaggio
G. Mecca - Programmazione Procedurale in Linguaggio C++
18
Concetti Introduttivi: Linguaggi >> In Pratica
In Pratica
 E’
necessario disporre di vari strumenti
 Scrittura del programma
editor di testi (es: Blocco Note o TextPad)
 Compilatore
e Collegatore
Compilatore Borland BCC 5.5 (>> sito)
Compilatore FORTRAN FTN77 (>> sito)
si utilizzano dalla finestra del DOS
G. Mecca - Programmazione Procedurale in Linguaggio C++
19
Concetti Introduttivi: Linguaggi >> In Pratica
In Pratica
 Il
Primo Passo
eseguire le installazioni di tutti gli strumenti
configurare il sistema per l’utilizzo degli
strumenti
 Configurazione
di Windows
abilitare la visualizzazione delle estensioni
Risorse del Computer >> Strumenti >>
Opzioni Cartella >> Visualizzazione >>
Nascondi le estensioni
>>
G. Mecca - Programmazione Procedurale in Linguaggio C++
20
Concetti Introduttivi: Linguaggi >> In Pratica
Installazioni
 Installazione
di TextPad
scaricare il file dal sito corrispondente
eseguire la procedura di installazione
configurare le opzioni di visualizzazione
Configura >> Preferenze
File: estensione predefinita vuota
Visualizza: numero righe
 Nuova
classe di documenti: FORTRAN
>>
G. Mecca - Programmazione Procedurale in Linguaggio C++
21
Concetti Introduttivi: Linguaggi >> In Pratica
Installazioni
 Installazione
del Compilatore Borland
scaricare il file dal sito corrispondente
eseguire la procedura di installazione
 Post-configurazione
configurare la variabile di ambiente PATH
per rendere localizzabile il compilatore
su Win2000/XP: Pannello di Controllo >>
Sistema >> Variabili di Ambiente
aggiungendo il valore c:\Borland\bcc55\bin
>>
G. Mecca - Programmazione Procedurale in Linguaggio C++
22
Concetti Introduttivi: Linguaggi >> In Pratica
Installazioni
 Post-configurazione
(continua)
configurare i parametri per eseguire il
compilatore ed il collegatore
cartella delle librerie di sistema e dei file di
inclusione
file di configurazione bcc32.cfg nella cartella
bin (vedi il file README.txt)
-I”c:\borland\bcc55\Include”
-L”c:\borland\bcc55\Lib”
>>
G. Mecca - Programmazione Procedurale in Linguaggio C++
23
Concetti Introduttivi: Linguaggi >> In Pratica
Un Semplice Programma
// Primo programma
#include <iostream.h>
void main () {
cout << "Primo programma" << endl;
}
>>
G. Mecca - Programmazione Procedurale in Linguaggio C++
24
Concetti Introduttivi: Linguaggi >> In Pratica
Borland BCC 5.5
G. Mecca - Programmazione Procedurale in Linguaggio C++
25
Concetti Introduttivi: Linguaggi >> In Pratica
Installazioni
 Installazione
del Compilatore Salford
scaricare il file dal sito corrispondente
eseguire la procedura di installazione
 Post-configurazione
configurare la variabile di ambiente PATH
su Win2000/XP: Pannello di Controllo >>
Sistema >> Variabili di Ambiente
aggiungendo c:\win32apps\salford
>>
G. Mecca - Programmazione Procedurale in Linguaggio C++
26
Concetti Introduttivi: Linguaggi >> In Pratica
Un Semplice Programma in FORTRAN
C---- Primo programma
program primo
write (*,*) 'Primo programma'
stop
end
G. Mecca - Programmazione Procedurale in Linguaggio C++
27
Concetti Introduttivi: Linguaggi >> In Pratica
Salford FTN77
G. Mecca - Programmazione Procedurale in Linguaggio C++
>>
28
Concetti Introduttivi: Linguaggi >> Sommario
Riassumendo
 Varie
tecnologie per la programmazione
ci concentriamo sulla prog. procedurale
sintassi e semantica
 Ciclo
di Vita del Programma
Problema-Algoritmo-Programma
Compilazione e Collegamento
Importanza della Metodologia
 Utilizzo
degli Strumenti (ATTENZIONE)
G. Mecca - Programmazione Procedurale in Linguaggio C++
29
Termini della Licenza
Termini della Licenza

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 all’indirizzo Creative Commons, 559 Nathan Abbott Way,
Stanford, California 94305, USA.
G. Mecca - Programmazione Procedurale in Linguaggio C++
30
Scarica

Programmazione Procedurale in Linguaggio C++