Post on 02-May-2015
transcript
La comunicazione uomo … macchina
SCRIVI la radice del verbo
CALCOLA la radice del verbo
ACQUISISCI l’infinito del verbo
Per comunicare con un esecutore meccanico bisogna
rispettare la rigidità del suo linguaggio
pensare alla comunicazione umana …
pensare a come ci facciamo capire …
pensare al significato delle parole …
Per inquadrare il problema è opportuno:
?
Cilindro
Figura geometrica che si può ottenere facendo ruotare un rettangolo intorno al suo asserettangolo
Quadrilatero con tutti gli angoli rettiQuadrilatero
Formato da quattro segmentisegmento
Insieme di punti di una retta compresi tra due suoi punti datipunto
Ente fondamentale della geometria il cui significato
si ritiene noto
Cilindro
Figura geometrica che si può ottenere facendo ruotare un rettangolo intorno al suo asserettangolo
Quadrilatero con tutti gli angoli rettiQuadrilatero
Formato da quattro segmentisegmento
Insieme di punti di una retta compresi tra due suoi punti dati
retta
Ente primitivo della geometria
Cilindro
Figura geometrica che si può ottenere facendo ruotare un rettangolo intorno al suo asserettangolo
Quadrilatero con tutti gli angoli rettiangolo
Parte di un piano compresa tra due semirette che escono da uno stesso punto
E così via …..
Simboli non terminali Primitive
I rettangoli rappresentano parole il cui significato deve essere precisato
Le forme arrotondate rappresentano parole il cui significato è noto
Torniamo al nostro problema iniziale:
insegnare ad un esecutore meccanico
il tempo indicativo presente di un verbo della prima
coniugazione
?
Scrivi ‘io’, la radice,’o’
Calcola la radice
Acquisisci verbo
Scrivi ‘egli’, la radice,’a’
Scrivi ‘essi’, la radice,’ano’
Scrivi ‘voi’, la radice,’ate’
Scrivi ‘noi’, la radice,’iamo’
Scrivi ‘tu’, la radice,’i’
In altre parole: la comunicazione verso l’esecutoredovrà far uso solo di primitive
Esistono delle carte sintattiche che ci consentono di individuare le primitive di tutti i termini della comunicazione verso
l’esecutore
Per comunicare con un esecutorebisogna
rispettare la rigidità del suo linguaggio
?
Comunicare con un esecutore: il linguaggio PASCAL
Program identificatore ; ;variabili istruzione
Per fare quanto gli è richiesto l’esecutore predispone le zone di memoria necessarie:nel nostro caso deve ricordare il valore di “verbo” e di “radice”.
Predisporrà, conseguentemente, due locazioni di memoria, di nome verbo e radice, in cui registrerà quanto gli sarà comunicato.
Il nome del programma
Si tratta delle transizioni indicate nella rete di Petri scritte in una forma che l’esecutore può capire
.
Diagrammi sintattici relativi alla comunicazione dell’algoritmo di coniugazione dei verbi
Scrivi ‘io’, la radice,’o’
Calcola la radice
Acquisisci verbo
Scrivi ‘egli’, la radice,’a’
Scrivi ‘essi’, la radice,’ano’
Scrivi ‘voi’, la radice,’ate’
Scrivi ‘noi’, la radice,’iamo’
Scrivi ‘tu’, la radice,’i’
Lo statoattuale èmarcato
Il verbo è stato acquisito
La radice è stata
calcolata
IL programma PASCAL
Program identificatore ; ;variabili istruzione .Program
Si tratta di una primitiva: l’esecutore
ne capisce il significato
PROGRAM
IL programma PASCAL
Program identificatore ; ;variabili istruzione .
PROGRAMcarattere
carattere
caratterep
caratterecaratterecaratterecarattere
r i mo
identificatore
IL programma PASCAL
Program identificatore ; ;variabili istruzione .
PROGRAM p r i mo
;
;
VAR identificatore :
STRING
,VAR
VARidentificatore
verbo,
,
variabili
identificatoreradice
::
STRING
STRING
;
;
IL programma PASCAL
Program identificatore ; ;variabili istruzione .
PROGRAM p r i mo ;VAR verbo , radice : STRING;
istruzione
ENDbegin istruzionebegin
BEGIN
istruzione
readln ( identificatore )readln
READLN
(
(
identificatore
verbo
,
)
)
Acquisisci verbo
IL programma PASCAL
Program identificatore ; ;variabili istruzione .
PROGRAM p r i mo ;VAR verbo , radice : STRING;ENDbegin istruzione
BEGINREADLN( verbo
;
)
;
;
Calcola la radice
identificatore := COPY (
identificatore , 1 ,
ultimo char da copiare )
istruzione
identificatore radice:= :=COPY COPY( (
identificatore
verbo
,
,
1
1
Si cominciano a copiare i caratteri a partire dal primo
,
,
Si calcola la lunghezza del
verbo e si sottrae 3
ultimo char da copiare
LENGTH(verbo)-3
)
)
IL programma PASCAL
Program identificatore ; ;variabili istruzione .
PROGRAM p r i mo ;VAR verbo , radice : STRING;ENDbegin istruzione
BEGINREADLN( verbo
;
)
;
;
istruzione
radice := COPY( verbo ,1,
LENGTH(verbo)-3 ) ;
Scrivi ‘io’, la radice,’o’
WRITELN ( costante ,
variabile , costante )
WRITELN
WRITELN
(
(
costante
‘io’
,
,variabile radice, ,costante ‘o’) )
IL programma PASCAL
Program identificatore ; ;variabili istruzione .
PROGRAM p r i mo ;VAR verbo , radice : STRING;ENDbegin istruzione
BEGINREADLN( verbo
;
) ;
radice := COPY( verbo ,1,
LENGTH(verbo)-3 ) ;
Scrivi ‘tu’, la radice,’i’
WRITELN ( costante ,
variabile , costante ) WRITELN (‘io’, radice ,‘o’)
;
;
istruzione
WRITELN (‘tu’, radice, ’i’)
;
;
istruzione
Scrivi ‘egli’, la radice,’a’
WRITELN(’egli’,radice,’a’)
;
;…………
END
END
IL programma PASCAL
Program identificatore ; ;variabili istruzione .
PROGRAM p r i mo ;VAR verbo , radice : STRING;
BEGINREADLN( verbo) ;
radice := COPY( verbo ,1,
LENGTH(verbo)-3 ) ;
WRITELN (‘io’, radice ,‘o’);
WRITELN (‘tu’, radice, ’i’);
WRITELN(’egli’,radice,’a’);…………
END
.
.
Acquisite le istruzioni l’esecutore effettuerà, in SEQUENZA, quanto in esse è specificato
PROGRAM primo;VAR verbo,radice:STRING; BEGIN READLN(verbo); radice:=COPY(verbo,1,LENGTH(verbo)-3); WRITELN(‘io ’,radice,’o’); WRITELN(‘tu ’,radice’,’i’); WRITELN(’egli ’,radice,’a’); WRITELN(‘noi ’,radice,’iamo’); WRITELN(‘voi ,radice’,’ate’); WRITELN(’essi ’,radice,’ano’);END.
VAR verbo,radice:STRING;
L’esecutore predispone due locazioni di memoria, di nome VERBO e RADICE, che conterranno delle stringhe di caratteri
verbo
radice
radice:=COPY(verbo,1,LENGTH(verbo)-3);
L’esecutore copia tutti i caratteri della variabile VERBO, compresi tra il primo e la sua lunghezza meno tre, nella variabile RADICE
READLN(verbo);
L’esecutore si pone in stato di attesa e, ricevuta la stringa di caratteri, la memorizza nella zona di memoria denominata VERBO
pensare
pens
Si supponga che venga comunicato il verbo pensare
WRITELN(‘io ’,radice,’o’);
L’esecutore comunica, scrivendo:
io penso
WRITELN(‘tu ’,radice,’i’);
L’esecutore comunica, scrivendo:
tu pensi
WRITELN(‘egli ’,radice,’a’);
L’esecutore comunica, scrivendo:
egli pensa
WRITELN(‘noi ’,radice,’iamo’);
L’esecutore comunica, scrivendo:
noi pensiamo
WRITELN(‘voi ’,radice,’ate’);
L’esecutore comunica, scrivendo:
voi pensate
WRITELN(‘essi ’,radice,’ano’);
L’esecutore comunica, scrivendo:
essi pensano