Show simple item record

dc.rights.licenseCC-BY-NC-ND
dc.contributor.advisorSwierstra, W.S.
dc.contributor.advisorLöh, A.
dc.contributor.authorWalree, F.R. van
dc.date.accessioned2017-10-20T17:01:09Z
dc.date.available2017-10-20T17:01:09Z
dc.date.issued2017
dc.identifier.urihttps://studenttheses.uu.nl/handle/20.500.12932/27902
dc.description.abstractThe implemention of a communication protocol is susceptible to human errors. Two processes engaging in such a protocol can deadlock or crash if their implementation of the protocol is faulty. In the context of Cloud Haskell, a distributed programming library for Haskell, we address this problem by providing a library for annotating Cloud Haskell programs with session types. A session type describes a protocol and by annotating a program with a session type we produce a static guarantee that the program correctly implements the protocol. We demonstrate how we use a deep-embedded domain-specific language for writing session typed programs to define several interpreters that can evaluate session typed programs. The most important interpreter is the one that evaluates a session typed program to Cloud Haskell semantics. Other interpreters can purely evaluate a session typed program, interactively step through a session typed program, visualize a session type using a diagram and normalize session typed programs to normal form. We introduce an optimization that reduces the amount of administrative communication required for n-ary nested branching session types. Further, we also introduce an optimization that turns the quadratic complexity of any session typed program, caused by left-associatively nested binds, into linear complexity using the codensity monad. To conclude, we measured the performance overhead that our library introduces compared to that of the Cloud Haskell library.
dc.description.sponsorshipUtrecht University
dc.format.extent539776
dc.format.mimetypeapplication/pdf
dc.language.isoen
dc.titleSession types in Cloud Haskell
dc.type.contentMaster Thesis
dc.rights.accessrightsOpen Access
dc.subject.keywordssession types ; Haskell ; Cloud Haskell
dc.subject.courseuuComputing Science


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record