Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1292535.1292540acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
Article

Status report: hot pickles, and how to serve them

Published: 02 October 2007 Publication History

Abstract

The need for flexible forms of serialisation arises under many circumstances, e.g. for doing high-level inter-process communication or to achieve persistence. Many languages, including variants of ML, thus offer pickling as a system service, but usually in a both unsafe and inexpressive manner, so that its use is discouraged.In contrast, safe generic pickling plays a central role in the design and implementation of Alice ML: components are defined as pickles, and modules can be exchanged between processes using pickling. For that purpose, pickling has to be higher-order and typed (HOT), i.e. embrace code mobility and involve runtime type checks for safety. We show how HOT pickling can be realised with a modular architecture consisting of multiple abstraction layers for separating concerns, and how both language and implementation benefit from a design consistently based on pickling.

References

[1]
M. Abadi, L. Cardelli, B. Pierce, and G. Plotkin. Dynamic typing in a statically-typed language. In 16th Symposium on Principles of Programming Languages, pages 213--227, Austin, USA, Jan. 1989.
[2]
H. Ait-Kaci. Warren's Abstract Machine. Logic Programming. MIT Press, 1991.
[3]
Alice Team. The Alice System. Programming Systems Lab, Saarland University, http://www.ps.un-sb.de/alice/, 2003.
[4]
A. Appel and D. MacQueen. Separate compilation for Standard ML. In Conference on Programming Language Design and Implementation, pages 13--23. ACM Press, June 1994.
[5]
J. Armstrong. Making Reliable Distributed Systems in the Presence of Software Errors. Doctoral dissertation, Royal Institute of Technology, Stockholm, Sweden, Dec. 2003.
[6]
J. Billings, P. Sewell, M. Shinwell, and R. Strniša. Type-safe distributed programming for OCaml. In Workshop on ML, Portland, Oregon, USA, Sept. 2006.
[7]
A. Birrell, G. Nelson, S. Owicki, and E. Wobbler. Network objects. Software - Practice and Experience, 25(S4), Dec. 1995.
[8]
T. Brunklaus and L. Kornstaedt. A virtual machine for multi-language execution. Technical report, Programming Systems Lab, Universität des Saarlandes, Saarbrücken, Germany, Nov. 2002.
[9]
S. Conchon and F. Le Fessant. Jocaml: mobile agents for objectivecaml. In First International Symposium on Agent Systems and Applications and Third International Symposium on Mobile Agents, pages 22--29, Palm Springs, USA, Oct. 1999.
[10]
K. Crary, S. Weirich, and G. Morrisett. Intensional polymorphism in type erasure semantics. Journal of Functional Programming, 12(6):567--600, Nov. 2002.
[11]
D. Duchier, L. Kornstaedt, C. Schulte, and G. Smolka. A higher-order module discipline with separate compilation, dynamic linking, and pickling. Technical report, Programming Systems Lab, Universität des Saarlandes, 1998. Draft, http://www.ps.uni-sb.de/papers.
[12]
M. Herlihy and B. Liskov. A value transmission method for abstract data types. Transactions on Programming Languages and Systems, 4(4):527--551, Oct. 1982.
[13]
A. Kennedy. Pickler combinators. Journal of Functional Programming, 14(6):727--739, Nov. 2004.
[14]
L. Kornstaedt. Design and Implementation of a Programmable Middleware. Doctoral dissertation, Saarland University, 2006.
[15]
X. Leroy. The Objective Caml System. INRIA, 2003. http://pauillac.inria.fr/ocaml/htmlman/.
[16]
R. Milner, M. Tofte, and R. Harper. The Definition of Standard ML. The MIT Press, 1990.
[17]
C. Müller. Run-time byte code compilation, optimization, and interpretation for Alice. Diploma thesis, Saarland University, 2006.
[18]
G. Neis. A semantics for lazy types. Bachelor's thesis, Universität des Saarlandes, Saarbrücken, Germany, Sept. 2006.
[19]
J. Niehren, J. Schwinghammer, and G. Smolka. A concurrent lambda calculus with futures. Theoretical Computer Science, 364(3):338--356, Nov. 2006.
[20]
A. Ohori and K. Kato. Semantics for communication primitives in a polymorphic language. In 20th Symposium on Principles of Programming Languages, pages 99--112. ACM Press, 1993.
[21]
M. Pil. First class file I/O. In W. Kluge, editor, 8th International Workshop on Implementation of Functional Languages, volume 1268 of Lecture Notes in Computer Science. Springer-Verlag, 1996.
[22]
R. Riggs, J. Waldo, A. Wollrath, and K. Bharat. Pickling state in the java system. Computing Systems, 9(4):291--312, 1996.
[23]
A. Rossberg. Generativity and dynamic opacity for abstract types. In Principles and Practice of Declarative Programming, Uppsala, Sweden, Aug. 2003.
[24]
A. Rossberg. The definition of Standard ML with packages. Technical report, Programming Systems Lab, Universität des Saarlandes, Saarbrücken, Germany, 2005. http://www.ps.uni-sb.de/Papers/.
[25]
A. Rossberg. The missing link - dynamic components for ML. In 11th International Conference on Functional Programming, Portland, Oregon, USA, Sept. 2006. ACM Press.
[26]
A. Rossberg. Typed Open Programming - A higher-order, typed approach to dynamic modularity and distribution. Doctoral dissertation, Universität des Saarlandes, Saarbrücken, 2007.
[27]
A. Rossberg, D. Le Botlan, G. Tack, T. Brunklaus, and G. Smolka. Alice ML through the looking glass. In H.-W. Loidl, editor, Trends in Functional Programming, volume 5. Intellect, 2006.
[28]
SEAM Team. Simple extensible abstract machine, 2004. http://www.ps.uni-sb.de/seam/.
[29]
P. Sewell, J. Leifer, K. Wansbrough, F. Z. Nardelli, M. Allen-Williams, P. Habouzit, and V. Vafeiadis. Acute: high-level programming language design for distributed computation. In 10th International Conference on Functional Programming, 2005.
[30]
Z. Shao, C. League, and S. Monnier. Implementing typed intermediate languages. In 3rd International Conference on Functional Programming, pages 313--323, Baltimore, USA, Sept. 1998.
[31]
G. Tack, L. Kornstaedt, and G. Smolka. Generic pickling and minimization. In Workshop on ML, volume 148(2) of Electronic Notes in Theoretical Computer Science. Elsevier, Mar. 2006.
[32]
B. Thomsen, L. Leth, and T.-M. Kuo. A Facile tutorial. In 7th International Conference on Concurrency Theory, volume 1119 of Lecture Notes in Computer Science, pages 278--298. Springer, 1996.
[33]
A. Wollrath, R. Riggs, and J. Waldo. A distributed object model for the Java system. In 2nd Conference on Object--Oriented Technologies & Systems, pages 219--232. USENIX Association, 1996.

Cited By

View all
  • (2013)Instant picklesACM SIGPLAN Notices10.1145/2544173.250954748:10(183-202)Online publication date: 29-Oct-2013
  • (2013)Instant picklesProceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications10.1145/2509136.2509547(183-202)Online publication date: 29-Oct-2013

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ML '07: Proceedings of the 2007 workshop on Workshop on ML
October 2007
102 pages
ISBN:9781595936769
DOI:10.1145/1292535
  • General Chair:
  • Claudio Russo,
  • Program Chair:
  • Derek Dreyer
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 02 October 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. components
  2. distributed programming
  3. marshalling
  4. persistence
  5. pickling
  6. serialisation
  7. virtual machines

Qualifiers

  • Article

Conference

ICFP07
Sponsor:

Acceptance Rates

Overall Acceptance Rate 6 of 11 submissions, 55%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2013)Instant picklesACM SIGPLAN Notices10.1145/2544173.250954748:10(183-202)Online publication date: 29-Oct-2013
  • (2013)Instant picklesProceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications10.1145/2509136.2509547(183-202)Online publication date: 29-Oct-2013

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media