The remote monad design pattern

Gill, A, Sculthorpe, N ORCID logoORCID: https://orcid.org/0000-0002-7244-0916, Dawson, J, Eskilson, A, Farmer, A, Grebe, M, Rosenbluth, J, Scott, R and Stanton, J, 2015. The remote monad design pattern. ACM SIGPLAN Notices, 50 (12), pp. 59-70. ISSN 0362-1340

[thumbnail of PubSub5455_Sculthorpe.pdf]
Preview
Text
PubSub5455_Sculthorpe.pdf - Post-print

Download (416kB) | Preview

Abstract

Remote Procedure Calls are expensive. This paper demonstrates how to reduce the cost of calling remote procedures from Haskell by using the remote monad design pattern, which amortizes the cost of remote calls. This gives the Haskell community access to remote capabilities that are not directly supported, at a surprisingly
inexpensive cost.
We explore the remote monad design pattern through six models of remote execution patterns, using a simulated Internet of Things toaster as a running example. We consider the expressiveness and optimizations enabled by each remote execution model, and assess the feasibility of our approach. We then present a full-scale case
study: a Haskell library that provides a Foreign Function Interface to the JavaScript Canvas API. Finally, we discuss existing instances of the remote monad design pattern found in Haskell libraries.

Item Type: Journal article
Description: Special issue: "Haskell '15".
Publication Title: ACM SIGPLAN Notices
Creators: Gill, A., Sculthorpe, N., Dawson, J., Eskilson, A., Farmer, A., Grebe, M., Rosenbluth, J., Scott, R. and Stanton, J.
Publisher: ACM (Association for Computing Machinery)
Date: December 2015
Volume: 50
Number: 12
ISSN: 0362-1340
Identifiers:
Number
Type
10.1145/2887747.2804311
DOI
Divisions: Schools > School of Science and Technology
Record created by: Jill Tomkinson
Date Added: 27 May 2016 15:41
Last Modified: 13 Oct 2017 13:16
URI: https://irep.ntu.ac.uk/id/eprint/27905

Actions (login required)

Edit View Edit View

Statistics

Views

Views per month over past year

Downloads

Downloads per month over past year