Abstract
In this paper, we present a type system for typing Web applications in SMLserver, an efficient multi-threaded Web server platform for Standard ML scriptlets. The type system guarantees that only conforming XHTML documents are sent to clients and that forms are used consistently and in a type-safe way. The type system is encoded in the type system of Standard ML using so-called phantom types.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Blume, M.: No-longer-foreign: Teaching an ML compiler to speak C “natively”. In: Workshop on Multi-language Infrastructure and Interoperability (September 2001)
Brabrand, C., Møller, A., Schwartzbach, M.: Static validation of dynamically generated HTML. In: Workshop on Program Analysis for Software Tools and Engineering (June 2001)
Brabrand, C., Møller, A., Schwartzbach, M.: The <bigwig> project. Transactions on Internet Technology 2(2), 79–114 (2002)
Christensen, A.: Møller, and M. Schwartzbach. Extending Java for high-level Web service construction. Transactions on Programming Languages and Systems 25(6) (November 2003)
Elsman, M., Hallenberg, N.: Web programming with SMLserver. In: Int. Symposium on Practical Aspects of Declarative Languages (January 2003)
Elsman, M., Larsen, K.F.: Typing XHTML web applications in SMLserver. Technical Report ITU-TR-2003-34, IT University of Copenhagen, Denmark (2003)
Finne, S., Leijen, D., Meijer, E., Peyton Jones, S.: Calling hell from heaven and heaven from hell. In: Int. Conference on Functional programming (1999)
Fluet, M., Pucella, R.: Phantom types and subtyping. In: Int. Conference on Theoretical Computer Science (August 2002)
Fridlender, D., Indrika, M.: Functional pearl: Do we need dependent types? Journal of Functional Programming 10(4), 409–415 (2000)
Graunke, P., Findler, R., Krishnamurthi, S., Felleisen, M.: Modeling web interactions. In: European Symposium On Programming (April 2003)
Graunke, P., Krishnamurthi, S., Findler, R., Felleisen, M.: Automatically restructuring programs for the Web. In: Int. Conference on Automated Software Engineering (September 2001)
Hall, C.V., Hammond, K., Peyton Jones, S., Wadler, P.: Type classes in Haskell. Transactions on Programming Languages and Systems 18(2), 109–138 (1996)
Leijen, D., Meijer, E.: Domain specific embedded compilers. In: Conference on Domain-specific languages (2000)
McBride, C.: Faking it: Simulating dependent types in Haskell. Journal of Functional Programming 12(4&5), 375–392 (2002)
Meijer, E.: Server side Web scripting in Haskell. Journal of Functional Programming 10(1), 1–18 (2000)
Queinnec, C.: The influence of browsers on evaluators or, continuations to program Web servers. In: Int. Conference on Functional Programming (September 2000)
Sandholm, A., Schwartzbach, M.: A type system for dynamic Web documents. In: Symposium on Principles of Programming Languages (January 2000)
Thiemann, P.: Programmable type systems for domain specific languages. In: Workshop on Functional and Logic Programming (June 2002)
Thiemann, P.: A typed representation for HTML and XML documents in Haskell. Journal of Functional Programming 12(4&5), 435–468 (2002)
Thiemann, P.: Wash/CGI: Server-side Web scripting with sessions and typed, compositional forms. In: Conference on Practical Aspects of Declarative Languages (January 2002)
W3C. XHTMLTM 1.0: The extensible hypertext markup language (January 2000), 2 edn., http://www.w3.org/TR/xhtml1 (revised August 2002)
Yang, Z.: Encoding types in ML-like languages. In: Int. Conference on Functional Programming (September 1998)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Elsman, M., Larsen, K.F. (2004). Typing XHTML Web Applications in ML. In: Jayaraman, B. (eds) Practical Aspects of Declarative Languages. PADL 2004. Lecture Notes in Computer Science, vol 3057. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24836-1_16
Download citation
DOI: https://doi.org/10.1007/978-3-540-24836-1_16
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-22253-8
Online ISBN: 978-3-540-24836-1
eBook Packages: Springer Book Archive