A Generative Approach to the Implementation of Language Bindings for the Document Object Model

  • Luca Padovani
  • Claudio Sacerdoti Coen
  • Stefano Zacchiroli
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3286)

Abstract

The availability of a C implementation of the Document Object Model (DOM) offers the interesting opportunity of generating bindings for different programming languages automatically. Because of the DOM bias towards Java-like languages, a C implementation that fakes objects, inheritance, polymorphism, exceptions and uses reference-counting introduces a gap between the API specification and its actual implementation that the bindings should try to close. In this paper we overview the generative approach in this particular context and apply it for the generation of C++ and OCaml bindings.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Casarini, P., Padovani, L.: The Gnome DOMEngine. Markup Languages: Theory & Practice 3(2), 173–190 (2002) ISSN 1099-6621CrossRefGoogle Scholar
  2. 2.
    Fluet, M., Pucella, R.: Phantom Types and Subtyping. In: Proceedings of the 2nd IFIP International Conference on Theoretical Computer Science (TCS 2002), August 2002, pp. 448–460 (2002)Google Scholar
  3. 3.
    Finne, S., Leijen, D., Meijer, E., Jones, S.L.P.: Calling Hell From Heaven and Heaven From Hell. In: Proceedings of the International Conference on Functional Programming, pp. 114–125 (1999)Google Scholar
  4. 4.
    Garrigue, J.: Programming with polymorphic variants. In: ML Workshop (September 1998), http://wwwfun.kurims.kyoto-u.ac.jp/~garrigue/papers/variants.ps.gz
  5. 5.
    Levien, R.: Design considerations for a Gnome DOM., informal note, March 28 (1999), http://www.levien.com/gnome/dom-design.html
  6. 6.
    Clark, J. (ed.): XML Transformations (XSLT) Version 1.0. W3C Recommendation (1999), http://www.w3.org/TR/1999/REC-xslt-19991116
  7. 7.
    Hors, A.L., Hégaret, P.L., Nicol, G., Robie, J., Champion, M., et al. (eds.): Document Object Model (DOM) Level 2 Core Specification. Version 1.0, W3C Recommendation (November 2000), http://www.w3.org/TR/DOM-Level-2-Core/
  8. 8.
    Pixley, T.: Document Object Model (DOM) Level 2 Events Specification. Version 1.0, W3C Recommendation (November 2000), http://www.w3.org/TR/DOM-Level-2-Events
  9. 9.
    Edelson, D.R.: Smart Pointers: They’re Smart, But They’re Not Pointers. In: Proceedings of the C++ Conference, pp. 1–19 (1992)Google Scholar
  10. 10.
    Vandevoorde, D., Josuttis, N.M.: C++ Templates: The Complete Guide. Addison-Wesley, Reading (2002)Google Scholar
  11. 11.
    Stroustrup, B.: The C++ Programming Language, 3rd edn. Addison-Wesley, Reading (1997)Google Scholar
  12. 12.
    Leroy, X., Doligez, D., Garrigue, J., Rémy, D., Vouillon, J.: The Objective Caml system release 3.07 Documentation and user’s manual, http://caml.inria.fr/ocaml/htmlman/

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Luca Padovani
    • 1
  • Claudio Sacerdoti Coen
    • 1
  • Stefano Zacchiroli
    • 1
  1. 1.Department of Computer ScienceUniversity of BolognaBolognaItaly

Personalised recommendations