Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
2
Programmi in Prolog
5
La sintassi del Prolog
I programmi in Prolog sono costituiti da
termini.
Ogni termine è scritto come una sequenza
di caratteri.
Il Prolog riconosce due tipi di caratteri
caratteri stampabili
lettere maiuscole (ABCDE……XYZ)
lettere minuscole (abcde……….xyz)
cifre (0123456789)
simboli (+ - * / \ ^ < > = ‘ “ : . ? @ # $ &)
caratteri non stampabili
spazio bianco
return
6
I termini
7
Le costanti
Le costanti sono pensate per dare il nome ad
un oggetto specifico o a una relazione specifica.
Ci sono due tipi di costanti: gli atomi e gli interi.
Esempi di atomi sono
piace antonio tiziano francesco
pasta vino strudel pizza gelato
sorella genitori
8
Tipi di costanti
Costanti individuali
denotano specifici elementi del dominio
Esempi: marco, sabrina, 1, 2900, italia,
francia, françois, danielle.
Costanti funzionali
denotano funzioni sugli individui (o n-uple di
individui) del dominio
Esempi: il_padre_di, la_madre_di, età_di,
il_presidente_di, +, ∗.
Costanti relazionali (simboli di predicato)
designano proprietà degli individui dell’universo del
discorso o relazioni tra di essi.
Esempi: cittadino, persona_fisica,
nato_in, lavora_per. 9
Gli atomi
Ci sono due tipi di atomi:
1. quelli costituiti da lettere e cifre: devono
cominciare con la lettera minuscola;
2. quelli costituiti da simboli: normalmente
sono costituiti solamente da simboli.
Se è necessario che un atomo cominci con
una lettera maiuscola, con una cifra o
contiene dei simboli deve essere racchiuso tra
apici (‘).
‘Maria’ ‘rossi@tin.it’ ‘33trentini’
I simboli speciali che il Prolog usa per indicare
domande (?-) e regole (:-) sono anch’essi
degli atomi. 10
Gli interi
Gli interi sono usati per rappresentare i numeri,
sono costituiti da cifre e non possono contenere
decimali.
11
Le variabili
Oltre a dare un nome univoco ad un oggetto,
possiamo usare nomi quali “X” al posto di
oggetti che devono essere determinati dal
Prolog attraverso domande. Nomi di questo
tipo sono chiamati variabili.
Le variabili devono cominciare con la lettera
maiuscola.
Le variabili possono essere:
istanziate, quando il loro valore corrisponde
ad un oggetto esistente nel database
non istanziate, quando il loro valore non è
noto
12
Le variabili
Le variabili si presentano come gli atomi, ma
cominciano con una lettera maiuscola o un
segno di underline “_”.
Le variabili possono denotare solo individui
dell’universo del discorso, non relazioni o
funzioni
vi sono, quindi, variabili corrispondenti alle costanti
individuali, ma mancano variabili corrispondenti ai
simboli di predicato e di funzione
Può essere necessario usare una variabile,
senza che il suo nome venga mai usato. In
questo caso è più comodo usare la variabile
anonima.
13
Esempio di variabili
La variabile anonima è il carattere di underline
“_”.
?- piace(_,antonio).
14
Le strutture
Il terzo tipo di termine adoperabile in Prolog è
la struttura. Una struttura è un singolo oggetto
che consiste di un insieme di altri oggetti,
chiamati componenti.
Le strutture aiutano ad organizzare i dati in un
programma, perché permettono di trattare un
gruppo di informazioni correlate come un
singolo oggetto, senza ricorrere ad entità
separate.
15
Le strutture (continua)
Le strutture sono utili quando all’interno di un
programma c’è un tipo di oggetto di cui
esistono molte istanze.
Una struttura si scrive specificando il suo
funtore e i suoi componenti.
Il funtore è scritto prima della parentesi
tonda, i componenti sono racchiusi fra
parentesi tonde e separati da virgole.
16
Esempio di struttura
possiede(antonio,libro(malavoglia,autore(giovanni,verga))).
?- possiede(antonio,libro(X,autore(giovanni,verga))).
17
A questo punto potremmo domandarci:
19