Show simple item record

dc.contributor.authorDowse, Malcolm John
dc.date.accessioned2006-04-10T23:34:04Z
dc.date.available2006-04-10T23:34:04Z
dc.date.issued2006-03
dc.date.submitted2006-04-10T23:34:04Z
dc.identifier.urihttp://hdl.handle.net/2262/411
dc.description.abstractThis dissertation presents a pure functional language called Curio. This language is unusual in possessing a rigorous yet general semantics for I/O which permits both formal proofs and a fine-tuned approach to concurrency. This is achieved by describing the language semantics in terms of an abstract model of the I/O application programmer interface (API). We begin by introducing this model, which simulates how the API affects some global world state and describes the extent to which certain I/O actions are order independent. We then introduce Curio, which extends a pure functional language with five primitives for monadic I/O and explicit concurrency. Each process is at runtime associated with what we call an "I/O context" and this outlines the I/O actions that the process is allowed to perform. The language's semantics are given in terms of a simple implementation in the metalanguage, Core-Clean. It is proved formally that if an I/O model obeys some broad properties then, despite concurrency, program execution is always deterministic. This result is made more substantial by the fact that concurrent processes may communicate with one another via the API. We then show how a large fragment of Haskell 98's I/O interface can be modelled in Curio. To do this we found it necessary to develop API combinators which allow larger APIs to be constructed from smaller ones in a way that preserves deterministic behaviour. It was also necessary to solve the technical problem of how two processes may allocate data locally within a single global state. We present some example applications which demonstrate how Curio appears to lead to more expressive, powerful I/O code compared to that of existing approaches.en
dc.format.extent1049466 bytes
dc.format.mimetypeapplication/pdf
dc.language.isoenen
dc.subjectComputer Scienceen
dc.titleA Semantic framework for deterministic functional input/outputen
dc.typeMaster of Science (M.Sc.)
dc.typeThesisen
dc.typeMasters (Taught)
dc.publisher.institutionUniversity of Dublin, Trinity College. School of Computer Science and Statisticsen


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record