next up previous Sommario
Next: 7.8 Stato dell'implementazione Up: 7. Il linguaggio Gödel Previous: 7.6 Modularità   Sommario

7.7 I moduli di sistema

Il Gödel fornisce i seguenti moduli di sistema: Integers, Rationals, Floats,Language, Program, ProgramIO,Theory e TheoryIO. La figura 7.7 mostra le relazioni che intercorrono tra i vari moduli, dove la freccia da un modulo all'altro vuol dire che il primo modulo importa dal secondo.



Figure 7.1: i moduli di sistema
\begin{figure}\par {\tt\setlength{\unitlength}{0.92pt}\begin{picture}(418,310)
\...
...
\put(184,320){\framebox (70,24){ProgramIO}}
\end{picture}}\par\par\end{figure}



I moduli Integers, Rationals e Floats forniscono rispettivamente i numeri interi, razionali e in virgola mobile e alcune funzioni e predicati standard su argomenti di questo tipo.

Il modulo Lists fornisce una serie di predicati e funzioni che manipolano le liste, come Cons, Member, Append, Length ecc.

Il modulo Strings defisce il tipo String e fornisce predicati sulle stringhe.

I moduli di IO forniscono strumenti di base per l'input/output



I moduli Language, Program e Theory forniscono un insieme di metapredicati che permettono ad un metaprogramma di accedere e di manipolare termini che rappresentano espressioni oggetto. Tutti i dettagli della rappresentazione ground sono nascosti; dei moduli infatti è disponibile solo la parte EXPORT e di tutti i predicati possono essere date definizioni dichiarative.

Il modulo Language dichiara i seguenti tipi necessari per la rappresentazione ground di linguaggi: OLanguage, OName, OType, OTerm, OFormula, OTypeSubst, OTermSubst. Inoltre fornisce predicati che permettono di manipolare termini del linguaggio oggetto.

Il modulo Program dichiara i tipi OProgram, OModulePart, OCondition che permettono di manipolare la rappresentazione di un programma Gödel oggetto. Naturalmente sono disponibili predicati che operano su programmi oggetto, permettendo per esempio di inserire o eliminare dichiarazioni di tipi, di funzioni o di predicati, oppure aggiungere o eliminare clausole che definiscono predicati, oppure valutare goal rispetto alla risoluzione SLDNF.

Il modulo Theory permette di manipolare la rappresentazione di teorie (manysorted), teoremi, dichiarazioni, termini, ecc. come termini di un metalinguaggio. Una teoria è intesa come la parte locale di un modulo che ha solo la parte locale e non contiene condizionali, commit o dichiarazioni di controllo. Questo modulo definisce il tipo OTheory.


next up previous Sommario
Next: 7.8 Stato dell'implementazione Up: 7. Il linguaggio Gödel Previous: 7.6 Modularità   Sommario
Roberto Giungato 2001-03-14