Sammendrag
Denne oppgaven inngår som en del av Creol-prosjektet. Creol er et
høy-nivå objekt-orientert modelleringsspråk for åpne distribuerte
systemer. Språket er formelt definert med semantikk i
omskrivningslogikk.
I Creol tilbys det både synkrone og asynkrone metodekall. Hvis et
objekt A gjør et synkront kall på et annet objekt B, vil A vente
aktivt på returen fra B. Hvis objektet B nå kaller på en metode i A
vil det resultere i vranglås. Med asynkront metodekall vil A kunne
fortsette med sin eksekvering til returen fra B er nødvendig. Men så
fort A trenger returen fra B vil A vente aktivt på denne
returen. Dette vil igjen resulteres i vranglås hvis B nå kaller på
A. Dette er løst i Creol ved at man gir objekter eksplisitte
prosessor-avløsningspunkter. Men i noen tilfeller ønsker man å kunne
gjøre noe annet hvis returen ikke har kommet tilbake etter en viss
tid. Det er derfor ønskelig å lage en mekanisme for timeout for
metodekall i Creol. Med en timeout-mekanisme implementert i Creol, kan
A for eksempel utfører andre programsetninger hvis returen fra B ikke
kommer og timeout-mekanismen slår til.
Denne oppgaven går ut på å integrere en slik timeout-mekanisme i
den operasjonelle semantikken til Creol.