Chapter 4: Type-Specialized Serialization with Sharing

Elsman, Martin
January 2007
Trends in Functional Programming Volume 6;2007, Vol. 6, p47
We present an ML combinator library for serialization, which supports serialization of mutable and cyclic data structures and at the same time preserves sharing. The technique generates compact serialized values, both due to sharing, but also due to type specialization. The library is type safe in the sense that a type specialized serializer can be applied only to values of the specialized type. The combinator library, which is written entirely in ML, may relieve language designers and compiler writers from the technical details of built-in serializers and, evenly important, support programmers with a portable solution to serialization. The combinator library is used in practice for serializing symbol table information in a separate compilation system for the MLKit compiler, a compiler for the programming language Standard ML. The technique is shown to scale well and allows the MLKit to be compiled with any Standard ML compliant compiler.


Related Articles

  • Chapter 3: Building certified components within FOCAL. Dubois, Catherine; Hardin, Thérèse; Donzeau Gouge, Véronique Viguié // Trends in Functional Programming Volume 5;2006, Vol. 5, p33 

    Existing provers are good to prove program properties but bad in language support to write large programs. This combination is tackled in the program development environment FOCAL, a framework dedicated to the complete development of certified components, from the specification stage to the...


    The paper introduces a novel Context-Driven Meta-Modeling Paradigm (CDMM-P) and discusses its properties. The CDMM-P changes the traditional division of responsibilities within the data layer in software systems. It facilitates the interchangeable usage of both objects representing data and...

  • On Pattern-Based Programming towards the Discovery of Frequent Patterns. Kerdprasop, Kittisak; Kerdprasop, Nittaya // International Journal of Computer Science;2007, Vol. 2 Issue 4, p268 

    The problem of frequent pattern discovery is defined as the process of searching for patterns such as sets of features or items that appear in data frequently. Finding such frequent patterns has become an important data mining task because it reveals associations, correlations, and many other...

  • Chapter 6: Alice Through the Looking Glass. Rossberg, Andreas; Le Botlan, Didier; Tack, Guido; Brunklaus, Thorsten; Smolka, Gert // Trends in Functional Programming Volume 5;2006, Vol. 5, p79 

    We present Alice, a functional programming language that has been designed-with strong support for typed open programming. It incorporates concurrency with data flow synchronisation, higher-ordermodularity, dynamicmodules, and type-safe pickling as a minimal and generic set of simple, orthogonal...

  • Representing Procedural Logic in XML. Bethke, Albert D. // Journal of Software (1796217X);Feb2008, Vol. 3 Issue 2, p33 

    Extensible Markup Language (XML) is a powerful tool used for describing structured documents and exchanging standardized data files over the Internet. This article describes how using XML in an unconventional way greatly improves the usability and effectiveness of an authoring system for...

  • Applications of Symbolic computation in C++ Programming Language. Bakytzhanuly, Satabaldiyev Askar; Nikolayevich, Latuta Konstantin // International Journal of Computer Applications;May2012, Vol. 46, p6 

    This paper contains the brief information about symbolic computation techniques. The location of symbolic computation within Computer Language classification is defined. Programming languages (PL) can be divided into two main areas: imperative PL and declarative PL. Declarative PL is generally...

  • Functional Programming.  // Network Dictionary;2007, p206 

    An encyclopedia entry for "Functional Programming" is presented. It refers to a programming paradigm that conceives computation as the evaluation of mathematical functions. In contrast to imperative programming, functional programming does not deal with changes in state and the execution of...

  • Chapter 6: Epigram Reloaded: A Standalone Typechecker for ETT. Chapman, James; Altenkirch, Thorsten; McBride, Conor // Trends in Functional Programming Volume 6;2007, Vol. 6, p79 

    Epigram, a functional programming environment with dependent types, interacts with the programmer via an extensible high level language of programming constructs which elaborates incrementally into Epigram's Type Theory, ETT, a rather spartan λ-calculus with dependent types, playing the...

  • Chapter 1: Proof Support for General Type Classes. Van Kesteren, Ron; Van Eekelen, Marko; De Mol, Maarten // Trends in Functional Programming Volume 5;2006, Vol. 5, p1 

    We present a proof rule and an effective tactic for proving properties about HASKELL type classes by proving them for the available instance definitions. This is not straightforward, because instance definitions may depend on each other. The proof assistant ISABELLE handles this problem for...


Read the Article


Sorry, but this item is not currently available from your library.

Try another library?
Sign out of this library

Other Topics