
Utilizziamo il linguaggio Prolog per trovare un qualsiasi valore resistivo, combinando più resistenze. Un articolo sperimentale per introdurre il "pensiero meccanizzato" al servizio dell’elettronica. Esso è un linguaggio per l’intelligenza artificiale che consente di trovare un obiettivo, dichiarando dei fatti, definire le regole e porre domande al sistema. Lungi dalla trattazione del Prolog come linguaggio, il presente articolo presuppone una conoscenza superficiale di questo, al fine di comprendere meglio i concetti trattati. I termini adottati sono, infatti, consoni all’argomento in oggetto. Per chi invece non lo conoscesse, l’occasione è buona per intraprendere lo studio in questo affascinante mondo che consente di ottenere risultati veramente impressionanti.
Il Prolog e differenze con altri linguaggi
Il Prolog, a differenza dei normali linguaggi procedurali (come il Basic o C), non utilizza alcun algoritmo. Non esistono, infatti, cicli, condizioni, funzioni, almeno così come essi sono normalmente considerati. Il Prolog è molto di più: il suo funzionamento, molto profondo, permette di determinare fatti e regole attraverso una base di conoscenza, che il linguaggio trasforma in nozioni, attraverso i predicati. Un po' come fa il nostro cervello...
Solo a titolo di esempio, proponiamo un brevissimo programma in Prolog, per fare conoscenza con esso. Il lettore è poi invitato ad approfondire l’argomento attraverso i numerosi siti e link presenti su Internet.
Guardiamo il programma proposto nel listato 1. Esso crea semplicemente una base di conoscenza, attraverso alcune "relazioni". Così, con lessico italiano, si afferma che a Giuseppe piace l’elettronica, a Giovanni piace l’elettronica, a Marco piace il calcio, a Renato piace il calcio e a Giovanni piace il calcio. Come si vede, per memorizzare questa conoscenza non sono state utilizzate variabili, array o altri elementi di sorta ma si è semplicemente comunicato al sistema una relazione tra i fatti e gli oggetti.
Listato 1 piace(giuseppe,elettronica). piace(giovanni,elettronica). piace(marco,calcio). piace(renato,calcio). piace(giovanni,calcio).
Se a questo punto volessimo sapere a chi piace il calcio, basterà impostare la seguente domanda al sistema:
piace(X,calcio).
Il compilatore risponderà subito con:
X = marco
X = renato
X = giovanni
Se volessimo sapere invece cosa piace a Giovanni basterà scrivere:
piace(giovanni,X)
ed il compilatore risponderà con:
X = elettronica
X = calcio
Questo criterio di sostituzione permette di interrogare il database alla ricerca dei risultati desiderati. Ovviamente è possibile fare molto di più.
La Ricorsione
Uno dei punti di forza del linguaggio Prolog è certamente la ricorsione, con la quale una funzione può richiamare se stessa, permettendo una creazione algoritmica sicuramente più compatta, logica ed elegante, ma a discapito di una maggiore occupazione [...]
ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2775 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.

Interessante uso del Prolog. Hai mai sentito parlare di Mercury Language?
Il linguaggio e’ abbastanza semplice ben descritto da Giovanni, un bel tutorial non sarebbe male. Personalmente avrei usato il C. Ma e’ interessante capire ulteriori differenze computazionali.
Sto guardando un po’ Mercury…. interessante..