Logotipo di EvoSist

AUCTORES: sistema di programmazione ad operatori.

Autore: Sergio Iovacchini



Progetto

Home
Forum
Forum relativo
a questo argomento
Indice Argomenti
Pianificazione
Descrizione del Progetto
in PDF
in HTML
Bibliografia


Autore

Curriculum dell’autore
Contattare l'autore

<<<

Possibile definizione di un’algebra di composizione.

Per il fatto che gli operatori di AUCTORES si compongono per fornire il risultato, cioè ad una coppia di operatori si fa corrispondere un operatore risultato, nel corso della realizzazione del progetto si vuole indagare sulla possibilità di strutturare la composizione di operatori in modo che si possano costruire strutture algebriche.

Un’algebra che sia in grado di poter considerare “equivalenze aggiuntive” è in grado di operare sia semplificazioni in genere, sia adattamenti automatici e traduzioni basate sulle equivalenze. È facile intuirne le potenzialità; però il poter fondare un’algebra di composizione tra operatori non è banale, anzi comporta delle difficoltà.

La prima e maggiore difficoltà consiste nel fatto che il requisito fondamentale pe rpoter costituire una struttura algebrica è la possibilitàdi composizione tra tutti gli elementi del sistema. Questo è un requisito che è fortemente condizionato dal comportamento dei processori che possono essere “alimentati” (quindi comporsi) solo da particolari strutture di dati; AUCTORES ha introdotto il concetto di operatore, composto dalle parti d’interfaccia oltre che dal processore, per poter ottemperare, in molte situazioni, a questo requisito.

Inoltre, ma questa è una difficoltà superabile con una adeguata organizzazione, in AUCTORES esistono parti d’interfaccia, i connettori, che sono essi stessi operatori; questo fa sì che si debbano considerare due strutture algebriche, quella relativa agli operatori “in toto” e quella relativa alle composizioni con i connettori; ovviamente esisteranno regole aggiuntive di composizione.

Altra notevole limitazione deriva dal fatto che i processori ammettono stati, anzi ne sono condizionati: l’esistenza degli stati, derivanti in genere dalla composizione con operatori d’interfaccia col sistema ospite, impedisce, quando ciò accade, l’associatività tra gli operatori.

AUCTORES, per poter, anche a fronte di queste difficoltà, comunque permettere la fondazione di un sistema algebrico, usa la classificazione per consentire agli operatori di valutazione delle equivalenze (quando e se ci saranno) di poter considerare composizioni di operatori se appartenenti o no a strutture algebriche e se ciò accade, a quali esse appartengano. In una interazione con l’utente, per esempio, si potrebbe considerare la sessione come formata da un numero finito di interazioni elementari dove in ciascuna di esse la composizione tra operatori è indipendente da stati e per cui valgono le equivalenze del sistema algebrico di cui fanno parte gli operatori.

Relativamente a molte operazioni, infatti, la composizione tra operatori potrebbe avere la struttura di gruppo; questo porterebbe ad importanti conseguenze sulle equivalenze senza dover per forza applicare l’operazione stessa.

Per ciò, quando è possibile, si fa sì che gli operatori si comportino in modo che la composizione delle operazioni sia un gruppo e quindi valga per la composizione ogni proprietà dei gruppi:

  • La chiusura è implicita: la legge che associa a due simboli il risultato della composizione produce un simbolo; il primo obiettivo di AUCTORES, che ha portato all’introduzione del concetto di operatore, è proprio questo.

  • Associatività: AUCTORES, quando possibile, si basa su questa proprietà nella composizione: per esempio i connettori si considerano parte dell’operatore fruitore e quindi si considera la composizione tra l’operatore semantico ed il connettore, ma quest’ultimo si compone con l’ambiente di conoscenza per fornire l’operatore fornitore; ciò determina di fatto l’equivalenza tra la composizione a sinistra e quella a destra del connettore.

  • Per ogni operazione deve esistere un elemento neutro, cioè tale che l’azione di esso sull’operazione lasci il risultato invariato. L’introduzione dell’elemento neutro, non sembra comportare eccessive difficoltà, ma la sua esistenza è ovviamente legata all’esistenza di un operatore inverso.

  • Operazione inversa: Molte funzioni tipiche dei sistemi di programmazione non possono avere operazione inversa a meno di restrizioni che dovranno essere analizzate; esistono però comunque situazioni in cui si può avere un inverso sia in modo naturale che operando una forzatura.



>>>