Modulo 8 – Dal Problema
Al Programma
Piano Nazionale Di Formazione Degli Insegnanti Sulle
Tecnologie Dell’informazione E Della Comunicazione
1
Scopo Del Modulo
(Estratto Dalla C.M. N.55 Del 21-52002)


Conoscere alcuni concetti fondamentali
dell’informatica: algoritmo, automa,
linguaggio formale.
Essere in grado di cogliere l’intreccio tra
alcuni risultati della matematica e della
logica dei primi decenni del secolo scorso
ed i successivi sviluppi e applicazioni che
questi hanno avuto in campo informatico.
2
Problemi e Algoritmi
Col termine problema o situazione problematica
s’indica una situazione che pone delle domande
cui si devono dare risposte. Risolvere il problema
vuol dire uscire da tale situazione.
Sono esempi di situazioni problematiche:








Individuare il cammino più breve per andare a scuola
Scrivere in ordine alfabetico un elenco di nomi
Calcolare l’area di un campo rettangolare
Un problema è formato dai seguenti elementi:
I dati, ossia ciò che è noto, l’istanza che si deve affrontare e
che possiamo indicare col termine input.
I risultati, ossia ciò che si deve determinare, gli elementi
incogniti la cui determinazione fornisce l’output.
Le condizioni, che sono in generale le limitazioni cui devono
soggiacere i risultati.
3
Classi Di Problemi



Problemi di decisione, in cui l’output è
fornito dal valore vero o falso a seconda che
l’input soddisfi o meno una determinata
proprietà.
Problemi di ricerca, in cui, nello spazio delle
soluzioni possibili (spazio di ricerca), si vuole
determinare quella soluzione che soddisfa le
condizioni poste dal problema, che viene detta
soluzione ammissibile.
Problemi di ottimizzazione, in cui alle
soluzioni ammissibili è associata una misura e
si deve determinare la soluzione ammissibile
la cui misura è massima o minima.
4
Strategie sulla Risoluzione
dei Problemi
Per compiere l’analisi di un problema il risolutore deve svolgere
una attività creativa nella ricerca della risoluzione del
problema:
1. interpretare l’enunciato del problema e definire gli obiettivi
da realizzare;
2. individuare i dati del problema e costruire un modello
opportuno (modello è una rappresentazione della realtà che ha
impoverito la realtà stessa degli aspetti superflui alla
soluzione del problema);
3. descrivere il procedimento risolutivo individuando le
operazioni da compiere sui dati iniziali per ottenere i risultati
finali;
4. eseguire nell’ordine le operazioni descritte nel processo
risolutivo (il risolutore in questa fase è detto esecutore);
5. verificare se i risultati ottenuti rispondono alle finalità del
problema reale (attendibilità).
5
Analisi Di Un Problema
Problema
Interpretazione
Verifica dei
Risultati
Modello
Esecuzione
Procedimento
Risolutivo
6
Esempio Di Problema o Situazione Problematica
Individuare Il percorso più breve per andare a scuola
B
C
Modello
A
S
abitazione
scuola
D
DETERMINATA LA LUNGHEZZA DI OGNI TRATTO DI STRADA TRA I DUE
INCROCI ABCS; ABCDS; ADCS; ADS;
DATI INIZIALI
AB = 130 m BC=90 m CD=110 m AD=120 m DS=110 m CS=80 m
Procedimento risolutivo:
Calcolare la lunghezza di ciascun percorso
ABCS=
ABCDS=
ADCS=
ADS=
Ordinare in ordine crescente i risultati ottenuti
Dato Finale
Il percorso più breve è…………..
7
Strategie Per La Risoluzione
Dei Problemi





La prima fase dell’analisi di un problema, ossia la
definizione dell’obiettivo da raggiungere, può
essere realizzata attraverso processi di analisi
sempre più dettagliati. Si tratta di scomporre un
problema complesso in sottoproblemi più semplici,
utilizzando la tecnica del top-down:
Il problema viene esaminato nelle direttrici
generali;
Scomposto in sottoproblemi;
Di ciascun sottoproblema si determinano le
operazioni specifiche;
Esso viene scomposto in ulteriori sottosottoproblemi, fino a giungere alle operazioni
elementari.
8
Tecnica Del Top-down
Problema 1
Sottoproblema 1
Sottoproblema 2
Problema 2
Problema
Sottoproblema 3
Sottoproblema 4
Problema 3
Sottoproblema 5
Sottoproblema 6
Problema K
Sottoproblema 7
Sottoproblema 8
Sottoproblema n
9
Concetto di algoritmo
DEFINIZIONE: Una dettagliata
sequenza di azioni/operazioni che
devono essere eseguite per risolvere una
classe di problemi. Il nome deriva dal
matematico Iraniano Al-Khawarizmi.
Tecnicamente un algoritmo e’ costituito
da un numero finito di passi al termine
dei quali deve essere generato un
risultato.
10
Funzionalità di un Algoritmo
Gli algoritmi utilizzano dati di ingresso e sono
in grado di produrre dei risultati, elaborando
secondo uno schema prefissato i dati in
ingresso.
11
Esempi di algoritmi:
Preparazione di una torta
Ingredienti torta
Ricetta
Torta
12
Esempi di algoritmi:
Prelevamento col Bancomat
Tessera bancomat
Codice segreto
Inserire la tessera
Digitare il codice segreto
Selezionare la funzione prelievo
Selezionare l’importo da prelevare
Prelevare il denaro
Banconote
13
Gli Algoritmi
L’ algoritmo deve essere:
 Finito, costituito cioè da un numero limitato di
passi (le istruzioni sono in numero finito e
vengono eseguite un numero finito di volte);
 Definito, ogni istruzione deve consentire
un’interpretazione univoca;
 Eseguibile, cioè la sua esecuzione deve
essere possibile con gli strumenti di cui si
dispone;
 Deterministico, ad ogni passo deve essere
definita una ed una sola operazione
successiva.

14
Rappresentazioni Grafiche Di
Un Algoritmo
I Diagrammi a Blocchi.

Tra
le
tecniche
utilizzate
per
rappresentare in maniera chiara e
sintetica la struttura degli algoritmi,
quella del Diagramma a Blocchi ,anche
detto flow-chart, ha il pregio di
evidenziare visivamente l’avanzamento
in sequenza e le varie strutture che
compongono l’algoritmo.
15
ALGORITMO Somma di una
sequenza di numeri
inizio
N
S
0
A
S
S +A
N
N-1
N=0
N0
S
fine
Indicando con ai
il generico
elemento da sommare, la formula
matematica generale è S = a1+ a2
+…+ an . Bisogna fornire in input
all’elaboratore i singoli valori ai ed il
numero n di tali valori. L’algoritmo
utilizza una struttura iterativa,
ossia un blocco d’istruzioni che
viene ripetuto un numero finito di
volte. Utilizzeremo una variabile N
per l’input di n per contare quante
volte si deve ripetere l’iterazione; il
valore di N si decrementa di
un’unità nell’ambito dell’iterazione
e l’iterazione termina quando N
raggiunge
il
valore
zero.
La
variabile A è usata per gli input
degli ai, S per le somme parziali e
totale.
16
ALGORITMO Calcolo Della Media Aritmetica di
una Sequenza di Valori Numerici
La formula matematica è
M = a1+ a2 +……+an
n
Si consente all’utente di
introdurre un numero
qualsiasi di dati,
utilizzando un valore
speciale (lo zero) per
indicare la fine della
sequenza di input;
l’algoritmo conta quanti
elementi vengono
introdotti.
17
Il Linguaggio Di Progetto
 Un algoritmo può essere rappresentato anche
mediante un linguaggio speciale che descrive le
istruzioni e la logica di avanzamento
dell’esecuzione con frasi (stringhe) anziché con un
diagramma. Si parla in tal caso di pseudocodifica o
notazione lineare strutturata.
 Tale linguaggio formale, detto linguaggio di
progetto, non è un linguaggio di programmazione
ma è molto sintetico ed è composto da un
vocabolario e una sintassi molto ristretta . Esso
utilizza parole riservate, spesso tratte dalla lingua
inglese, mediante le quali vengono espressi i
diversi tipi di istruzioni.
18
ALGORITMO Somma di una
sequenza di numeri
Pseudocodifica algoritmo 1
19
ALGORITMO Calcolo Della Media
Aritmetica Di Una Sequenza Di Valori
Numerici
Pseudocodifica algoritmo 2:
20
Il Concetto di Sistema
Si dice sistema un insieme di elementi che
interagiscono tra loro in modo da formare una unità
che al verificarsi di un dato evento (azione)
proveniente dall’ambiente esterno (ecosistema),
produce una risposta definita.
Rappresentazione schematica di un sistema:
Input
Ecosistema
Output
Esempio: un ascensore che si trovi al piano terra,
quando l’utente preme il pulsante 2 sale di due piani; se
l’utente preme ancora il pulsante 2 una volta arrivato al
secondo piano, l’ascensore non si muove. Il sistema ha
prodotto uscite diverse in quanto si trovava in stati
diversi.
21
Concetto di Modello
Un modello è uno schema teorico elaborato in molte
discipline per rappresentare gli elementi
fondamentali di fenomeni o enti.
 modelli descrittivi o statici: riproducono con eventuali
semplificazioni la realtà, senza presupporre l’uso che ne verrà fatto
 modelli predittivi: danno gli elementi di una certa realtà necessari
per prevederne l’evoluzione, lasciando spazio ad eventuali scelte
 modelli prescrittivi: impongono un particolare percorso in
previsione dell’obiettivo da raggiungere
 modelli simbolici o matematici: danno una rappresentazione
astratta della realtà cui si riferiscono, mediante un insieme di
equazioni e/o disequazioni che legano le grandezze coinvolte
 modelli analogici: danno una rappresentazione fedele della realtà,
tipici sono i modelli in scala ridotta, che riproducono qualitativamente
un sistema pur riducendone proporzionalmente la dimensione
22
Concetto di Automa
Un automa è un sistema dinamico, invariante, discreto
nell’avanzamento e nelle interazioni.

dinamico: evolve nel tempo passando da uno stato all’altro
in funzione dei segnali d’ingresso e dello stato precedente;

invariante: a parità di condizioni iniziali il comportamento
del sistema è sempre lo stesso;
 discreto: le variabili d’ingresso, di stato, d’uscita, possono
assumere solo valori discreti.
Esempio di automa a stati finiti:
Ascensore
Un ascensore di un palazzo a due piani accetta la
richiesta del piano di destinazione (terra, 1, 2) e
restituisce lo spostamento desiderato (su, giù,
fermo). Si tratta di un automa in cui S={Pt, 1P, 2P},
Pt= p. terra, 1P= p. primo, 2P= p. secondo; I={T, 1,
2} ingressi possibili offerti dalla pulsantiera;
U={Su, Giù, Fermo} spostamenti dell’ascensore.
S= insieme finito di stati
I= insieme finito dei possibili ingressi
U=insieme finito di possibili uscite
23
Automi e Classi di Problemi


Molte macchine che usiamo
quotidianamente sono automi:la
lavatrice, la lavastoviglie, l’impastatrice,i
sistemi di controllo degli ascensori, i
distributori automatici di bevande, i
distributori automatici di benzina, i
bancomat.
I computer sono automi, particolari
automi a programma, possono cioè
svolgere il ruolo di un automa o di un
altro in funzione del programma che si
manda in esecuzione.
24
Automi e Classi di Problemi



L’utilizzo di automi è uno strumento molto potente
per individuare la soluzione di particolari classi di
problemi. L’uomo che li utilizza interviene solo nel
fornire i comandi in ingresso o nell’azionare pulsanti e
senza interessarsi di cosa accade al loro interno, vede
solo l’effettuazione della funzione in uscita.
Un sistema automatico è un sistema in cui la
componente umana è completamente eliminata
nell’ambito dei processi, che sono ben determinati e
prevedibili e ogni richiesta in ingresso può attivare uno
solo dei processi eseguibili dal meccanismo interno.
Un sistema umano, al contrario, quale ad esempio un
sistema aziendale, presenta un carattere probabilistico
poiché l’uomo può assolvere a funzioni anche
impreviste, in numero indeterminato, utilizzando un
ragionamento, ma anche creatività ed intuito.
25
I Linguaggi
Il linguaggio consente la comunicazione,
intesa come scambio di informazioni.
 La funzione fondamentale del linguaggio
è quella di sostituire ad oggetti e/o concetti
dei simboli. Ogni parola (significante)
rappresenta un oggetto concreto, una
persona, un ente astratto (significato).
 Linguaggi naturali, utilizzati nella
comunicazione quotidiana tra gli esseri umani,
privi di una definizione rigorosa ed in continua
evoluzione, spesso presentano ambiguità ma
hanno enorme potenza espressiva;
 Linguaggi formali, creati dall’uomo per scopi
precisi, secondo regole convenzionali esplicite
che non ammettono eccezioni e non
consentono sinonimi e omonimie.
26

Caratteristiche dei linguaggi

Il linguaggio è un sistema di segni,
sistema in quanto i vari elementi di cui
è formato funzionano insieme in
sistema unitario. I segni sono le parole
(stringhe) del linguaggio, che si usano
per indicare l’associazione tra un dato
percepibile ed un concetto. Ogni parola
(significante) rappresenta un oggetto
concreto, una persona, un ente astratto
che la mente umana associa al
messaggio (significato).
27
Elementi di un Linguaggio
1.
2.
Alfabeto: insieme finito e non
vuoto di simboli convenzionali
espressi con segni tipografici detti
caratteri
Sintassi: insieme finito e non
vuoto delle regole mediante le
quali si formano le stringhe o le
frasi di un linguaggio
28
Elementi di un Linguaggio
3. Semantica: insieme finito e non
vuoto di significati da attribuire alle
stringhe
4. Grammatica: insieme finito e non
vuoto di tutte le regole che
servono per generare un
linguaggio
29
I Linguaggi nella Comunicazione
Uomo-Macchina

L’utilizzo di un linguaggio formale
consente di passare da un
algoritmo al corrispondente
programma. Si dice programma
una sequenza di istruzioni
espresse in un linguaggio formale
(linguaggio di
programmazione) mediante le
quali si può risolvere un problema.
30
Linguaggi e Automi



Per ottenere la soluzione di un problema, una volta
individuata la strategia risolutiva (algoritmo), si affida
la messa in atto delle operazioni che essa prevede ad
un esecutore (automa).
Un automa è costruito per uno scopo determinato, ed è
pertanto in grado di compiere il processo previsto per
raggiungere l’obiettivo fissato, compiendo un numero
finito di operazioni disposte, in risposta agli input che
gli vengono forniti al momento dell’attivazione.
Un elaboratore elettronico è un automa
programmabile, è possibile cioè comunicare con esso
usando linguaggi diversi, ciascuno finalizzato alla
soluzione di una particolare classe di problemi. Nel
calcolatore sono pertanto presenti simultaneamente una
grande varietà di automi, ciascuno dei quali utilizza un
opportuno linguaggio e quindi un particolare
programma.
31
Lo schema seguente illustra i passaggi che
conducono dalla formulazione del problema alla
sua soluzione.
Problema
Risultati
Elaborazione
Algoritmo
Programma
sorgente
Programma
traduttore
Programma
oggetto
32
Rassegna dei Principali
Software




Il sistema operativo, che è il software di base ossia
l’applicazione che controlla tutte le risorse del computer
il word processor, per la realizzazione di testi scritti,
che trasforma la macchina in un automa che ha
sostituito le vecchie macchine da scrivere, con
potenzialità assai più numerose e precise;
il foglio di calcolo, per il calcolo di un’ampia gamma di
funzioni, la realizzazione di tabelle per l’organizzazione
e l’analisi di dati, la creazione di grafici descrittivi di
fenomeni di varia natura (economici, statistici, fisici…);
sistemi per la gestione di basi di dati, per la
realizzazione di archivi di dati (insiemi organizzati di
informazioni), la creazione di tabelle e la realizzazione di
procedure per l’inserimento, la modifica e la
consultazione dei dati archiviati secondo criteri
prefissati;
33
Rassegna dei Principali Software






programmi per la realizzazione di presentazioni
multimediali, utile supporto per l’attività d’insegnamento,
per l’esposizione di una relazione in ambito aziendale, per
la presentazione di un evento;
elaboratori digitali d’immagini e per la realizzazione
di animazioni, con i quali è possibile ritoccare fotografie,
realizzare fotomontaggi e immagini animate;
programmi di grafica computerizzata, per ottenere
semplici disegni od anche immagini di precisione da
utilizzare in ambito professionale;
editor di suoni, per la manipolazione e la realizzazione di
file audio;
editor di pagine web, ossia di file in formato HTML
(HyperText
Markup Language) pubblicabili sulla rete
Internet, così da rendere i dati in essi contenuti consultabili
direttamente con un programma di navigazione (browser).
editor di suoni, per la manipolazione e la realizzazione di
file audio;
34
Linguaggi di Programmazione



Il passaggio dall’algoritmo risolutore di un
problema al corrispondente programma
avviene mediante la codifica dell’algoritmo
attraverso un linguaggio di programmazione.
I linguaggi di programmazione differiscono
tra di loro per la simbologia adottata per
descrivere le operazioni e per le regole
sintattiche con cui si compongono le istruzioni.
Tutti i linguaggi riproducono una stessa serie
di operazioni e processi effettivamente
eseguibili dell’elaboratore elettronico, ossia
utilizzano una stessa tipologia di istruzioni.
35
Istruzioni dei Linguaggi Di
Programmazione




Istruzioni di dichiarazione, descrivono dati e variabili
utilizzati dal programma, definendone tipo e struttura.
Quanto più è evoluto il linguaggio, tanto più sono
semplici le istruzioni per definire strutture complesse.
Istruzioni di assegnazione, consentono di assegnare
ad una variabile un valore dello stesso tipo della
variabile.
Istruzioni di controllo, sono istruzioni che richiedono
salti di sequenza nell’esecuzione del programma.
Rientrano in questa categoria le istruzioni di selezione e
di iterazione e i salti incondizionati
Istruzioni di input/output, richiedono l’ingresso di
informazione da una periferica alla memoria centrale
oppure l’uscita di una informazione dalla memoria
centrale ad una periferica.
36
Gerarchie dei Linguaggi Di
Programmazione
L’ hardware del computer ha un suo linguaggio di
programmazione detto linguaggio macchina
ll linguaggio macchina manipola direttamente le sequenze
di bit fornite dall' hardware, utilizzando le operazioni
primitive dell' hardware stesso (operazioni aritmetiche).
Programmare in linguaggio macchina è faticoso, costoso
E comporta degli errori.
Fin dagli anni 50 sono stati sviluppati linguaggi più evoluti,
ciascuno dei quali progettato sopra un linguaggio più
rudimentale.
37
Linguaggi di programmazione a
basso livello
 Linguaggio macchina Le operazioni disponibili sono
quelle direttamente fornite dall' hardware; ogni
operazione è codificata da una sequenza di bit; ogni dato è
indicato dall'indirizzo binario della parola di
memoria in cui è memorizzato. Ogni indirizzo è espresso in
modo assoluto (rispetto a tutta la memoria
disponibile). Un programma è una sequenza di bit, che
viene direttamente interpretata dall' hardware.
 Linguaggio assembler (o assemblativo) Le operazioni
sono quelle direttamente fornite dall' hardware, ma
sono indicate da nomi convenzionali (mnemonici); i dati
sono indicati da nomi, che corrispondono a indirizzi.
Gli indirizzi sono espressi in modo relativo rispetto all'inizio
del programma, permettendo così modifiche più semplici.
Il programma, per essere eseguito, viene tradotto in
linguaggio macchina da un programma
38
traduttore detto assemblatore.
Codice Binario
Bit (Binary digit) unità elementare di informazione (0
circuito spento 1 circuito acceso).
 A= 00 B= 01 C= 10 O = 11 la parola babbo
corrisponde alla stringa 01 00 01 01 11
 Oggi il codice più utilizzato è il codice ASCII
che usa
sete o otto bit per rappresentare ogni singolo carattere.
es. 01 00 00 01 A 01 00 00 11 C 01 00 00 00 @
01 10 00 01 a 00 10 00 01 ! 00 11 11 11 ?
 Un gruppo di otto bit viene chiamato byte che è
anche l’unità di misura della capacità di memoria.
• Kilobyte (Kb 1024 byte ).
• Megabyte (MB 1024 x 1024 = 1.048.576 byte).
• Gigabyte (Gb 1024x1024x1024 = 1.073.741.824
byte).

39
Linguaggi di Programmazione ad
Alto Livello
Linguaggi procedurali Le operazioni disponibili sono
ampie e non legate a quelle fornite dall' hardware. I
dati sono indicati in modo totalmente indipendente dalla
loro memorizzazione. Si tratta di linguaggi progettati
affinchè la scrittura dei programmi sia semplice, elegante
e, dunque, di facile comprensione e verifica. Per
essere eseguito, un programma deve essere tradotto in
linguaggio macchina da un programma traduttore
detto compilatore , oppure deve essere interpretato (cioè
eseguito da un altro programma, l'interprete).
Linguaggi procedurali di rilievo sono (o sono stati)
FORTRAN, COBOL, BASIC, Pascal, C. Tra i linguaggi
procedurali alcuni sono detti orientati agli oggetti; tra
questi ricordiamo C++ e Java.
40
Rassegna dei Principali
Linguaggi


FORTRAN (FORmula TRANslating system: sistema
traduttore di formule) Ideato nei primi anni ’50 da
John Backus, dipendente IBM, per consentire a tecnici e
scienziati di risolvere problemi matematici in maniera
automatica, senza ricorrere ai programmatori e con
l’uso di una simbologia affine a quella matematica. Ha
subito successive evoluzioni ed è utilizzato attualmente
in ambito matematico.
ALGOL
(ALGOritmic
Language:
linguaggio
algoritmico) Nato alla fine degli anni ’50, è stato
sviluppato da Backus e Naur per applicazioni
scientifiche. Importante caratteristica innovativa è la
strutturazione del programma in blocchi, delimitati da
un begin iniziale e da un end finale, che sarà ripresa
dalla programmazione strutturata e dal linguaggio
Pascal.
41


LISP (LISt Processor: elaboratore di
liste)
Linguaggio
indirizzato
alla
manipolazione di espressioni simboliche e di
dati strutturati ad albero, che risale alla fine
degli anni ‘50. E’ applicato nella produzione
di programmi traduttori, dato che le regole
sintattiche di questi vengono rappresentate
secondo una struttura ad albero.
COBOL (COmmon Business Oriented
Language: linguaggio orientato alle
applicazioni commerciali) Ideato nel 1960
per sviluppare programmi per la soluzione di
problemi
aziendali
nei
campi
dell’amministrazione
e
del
commercio
(fatturazione,
contabilità,
stipendi,
organizzazione di dati, gestione di file,…), ha
subito successive evoluzioni ed è tuttora
utilizzato.
42


BASIC (Begginner’s All-purpose Symbolic
Instruction
Code:
codice
generale
d’istruzioni simboliche per principianti)
Nato all’inizio degli anni ’60, è un linguaggio
algoritmico di carattere generale non
indirizzato ad alcuna applicazione specifica e
di facile apprendimento ed utilizzo. La sua
semplicità e versatilità ne ha determinata la
rapida ed ampia diffusione e la realizzazione
di successivi aggiornamenti migliorativi. Da
esso discendono i linguaggi visuali orientati
agli oggetti (visual BASIC), con interfaccia
grafica di facile utilizzo (pulsanti, finestre,…).
43
PL1 (Programming Language/1:
linguaggio di programmazione/1)
Ideato nel 1965 per implementare
programmi appartenenti a diverse aree
applicative, scientifiche e gestionali,
riassume in sé le caratteristiche dei
precedenti FORTRAN, ALGOL e COBOL.
 LOGO
(dal
greco:
pensiero,
discorso)
Linguaggio
adatto
per
l’apprendimento
della
logica
della
programmazione da parte dei bambini,
fu ideato nel 1967. Il programmatore
dispone di semplici comandi con i quali
guida l’avanzamento di un cursore sullo
schermo e riscontra gli effetti grafici del
44
programma prodotto.


PASCAL (così denominato in
onore
del
matematico
francese Blaise Pascal).
Ideato da Niklus Wirth nel 1970,
con l’intento di realizzare un
linguaggio che facilitasse
l’insegnamento della scrittura di
programmi, ha trovato e trova
tuttora ampia applicazione in
ambito didattico. Tale linguaggio
consente un alto livello di
strutturazione degli algoritmi e
dei dati ed offre la possibilità di
definire tipi di dati diversi da
quelli standard.
45

C(linguaggio di programmazione C)
La prima versione fu realizzata nel 1972 da
Dennis Ritchie e si distingueva dai suoi
predecessori per il fatto di implementare una
vasta gamma di tipi di dato. E’ un linguaggio di
alto livello che possiede un numero ristretto di
parole chiave e di costrutti di controllo e un gran
numero di operatori. Non possiede istruzioni di
entrata/uscita né istruzioni per operazioni
matematiche, ma questa sua apparente povertà
di strumenti consente di realizzare qualsiasi
programma in modo semplice. E’ stato definito “il
linguaggio di più basso livello tra i linguaggi di
alto livello”, perché è nato per lo sviluppo di
sistemi operativi ossia software di basso livello,
ma è un linguaggio potente come un linguaggio
macchina e al tempo stesso di semplice utilizzo. Il
sistema operativo UNIX è scritto con questo
linguaggio.
46


C++ Nel 1983 Bjarne Stroustrup inventò C++,
che, partendo dal linguaggio C del quale
estende
la
sintassi,
introduceva
la
programmazione Orientata agli Oggetti (Object
Oriented), un modo innovativo di progettare un
programma che rende il codice più semplice e
riutilizzabile.
JAVA Nato a metà degli anni ’90 ad opera della
Sun
Microsystem,
è
un
linguaggio
di
programmazione Object Oriented utilizzabile su
diverse piattaforme (Mac, PC, Unix e SGI)
senza la necessità di modifiche o ricompilazioni.
Si tratta di un linguaggio multipiattaforma, per
il quale il compilatore non genera applicativi
eseguibili dal computer, ma file che devono
essere interpretati dalla JVM (Java Virtual
Machine,
un
microprocessore
virtuale)
implementata sui vari sistemi. Ciò rende
l’esecuzione di un’applicazione Java più lenta
47
dei programmi normali.
PHP (Hypertext Pre-Processor)
 Linguaggio di scripting, si utilizza per
scrivere programmi che vengono
interpretati dal server su cui risiedono
pagine web. Quando l’utente richiede
una pagina web contenente uno script
PHP, il server richiama un modulo PHP
che interpreta ed esegue il codice,
restituendo al server codice web
semplice (HTML) che viene passato al
browser dell’utente. Tale procedimento
consente di costruire dinamicamente il
contenuto della pagina web.

48
49
Scarica

Modulo 8 – Dal Problema Al Programma