[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
article

FUNCTIONAL PEARL Pickler combinators

Published: 01 November 2004 Publication History

Abstract

The tedium of writing pickling and unpickling functions by hand is relieved using a combinator library similar in spirit to the well-known parser combinators. Picklers for primitive types are combined to support tupling, alternation, recursion, and structure sharing. Code is presented in Haskell; an alternative implementation in ML is discussed.

References

[1]
Bell, T. C., Cleary, J. G. and Witten, I. H. (1990) Text Compression. Prentice Hall.
[2]
Benton, P. N. (2004) Embedded interpreters. J. Funct. Program. To appear.
[3]
Benton, P. N., Kennedy, A. J. and Russo, C. V. (2004) Adventures in Interoperability: The SML.NET Experience. Proceedings of 6th ACM - SIGPLAN International Conference on Principles and Practice of Declarative Programming, (to appear).
[4]
Bird, R. S. (1984) Using circular programs to eliminate multiple traversals of data. Acta Informatica, 21, 239-250.
[5]
Clarke, D., Hinze, R., Jeuring, J., Löh, A. and de Wit, J. (2001) Generic Haskell. See http://www.generic-haskell.org/.
[6]
Elsman, M. (2004) Type-Specialized Serialization with Sharing. IT Universty of Copenhagen Technical Report Series, TR-2004-43.
[7]
Hinze, R. (2002) Polytypic values possess polykinded types. Sci. Comput. Program. 43, 129-159.
[8]
Hutton, G. and Meijer, E. (1998) Monadic parsing in Haskell. J. Func. Program. 8(4), 437-444.
[9]
Jansson, P. and Jeuring, J. (2002) Polytypic data conversion programs. Sci. Comput. Program. 43(1), 35-75.
[10]
Leroy, X. (2003) The Objective Caml System. http://caml.inria.fr.
[11]
Morrisett, G. and Haroer, R. (1995) Compiling polymorphism using intensional type analysis. ACM Symposium on Principles of Programming Languages, pp. 130-141.
[12]
Paulson, L. C. (1996) ML for the Working Programmer, 2nd ed. Cambridge University Press.
[13]
Ramsey, N. (2003) Embedding an interpreted language using higher-order functions and type. ACM SIGPLAN Workshop on Interpreters, Virtual Machines and Emulators.
[14]
Sun Microsystems (2002) Java Object Serialization Specification. http://java.sun.com/ j2se/1.4.1/docs/guide.serialization/.
[15]
Wadler, P. (1985) How to replace failure by a list of successes. Proceedings of Functional Programming and Computer Architecture: LNCS 201. Springer-Verlag.

Cited By

View all
  • (2024)Bidirectional Data TransformationsProceedings of the 2nd ACM SIGPLAN International Workshop on Functional Software Architecture10.1145/3677998.3678224(31-40)Online publication date: 28-Aug-2024
  • (2020)A practical unification of multi-stage programming and macrosACM SIGPLAN Notices10.1145/3393934.327813953:9(14-27)Online publication date: 7-Apr-2020
  • (2020)Selective Symbolic Type-Guided Checkpointing and Restoration for Autonomous Vehicle RepairProceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops10.1145/3387940.3392201(3-10)Online publication date: 27-Jun-2020
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Journal of Functional Programming
Journal of Functional Programming  Volume 14, Issue 6
November 2004
156 pages

Publisher

Cambridge University Press

United States

Publication History

Published: 01 November 2004

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 22 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Bidirectional Data TransformationsProceedings of the 2nd ACM SIGPLAN International Workshop on Functional Software Architecture10.1145/3677998.3678224(31-40)Online publication date: 28-Aug-2024
  • (2020)A practical unification of multi-stage programming and macrosACM SIGPLAN Notices10.1145/3393934.327813953:9(14-27)Online publication date: 7-Apr-2020
  • (2020)Selective Symbolic Type-Guided Checkpointing and Restoration for Autonomous Vehicle RepairProceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops10.1145/3387940.3392201(3-10)Online publication date: 27-Jun-2020
  • (2019)Narcissus: correct-by-construction derivation of decoders and encoders from binary formatsProceedings of the ACM on Programming Languages10.1145/33416863:ICFP(1-29)Online publication date: 26-Jul-2019
  • (2018)A practical unification of multi-stage programming and macrosProceedings of the 17th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3278122.3278139(14-27)Online publication date: 5-Nov-2018
  • (2018)Bidirectional Grammars for Machine-Code Decoding and EncodingJournal of Automated Reasoning10.1007/s10817-017-9429-160:3(257-277)Online publication date: 1-Mar-2018
  • (2017)Staged generic programmingProceedings of the ACM on Programming Languages10.1145/31102731:ICFP(1-29)Online publication date: 29-Aug-2017
  • (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
  • (2012)Typing unmarshalling without marshalling typesACM SIGPLAN Notices10.1145/2398856.236456947:9(287-298)Online publication date: 9-Sep-2012
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media