Results 11 - 20
of
31
Plugging Haskell In
- In Proceedings of the ACM SIGPLAN Workshop on Haskell
, 2004
"... Extension languages enable users to expand the functionality of an application without touching its source code. Commonly, these languages are dynamically typed languages, such as Lisp, Python, or domain-specific languages, which support runtime plugins via dynamic loading of components. We show tha ..."
Abstract
-
Cited by 17 (4 self)
- Add to MetaCart
Extension languages enable users to expand the functionality of an application without touching its source code. Commonly, these languages are dynamically typed languages, such as Lisp, Python, or domain-specific languages, which support runtime plugins via dynamic loading of components. We show that Haskell can be comfortably used as a statically typed extension language, and that it can support type-safe dynamic loading of plugins using dynamic types. Moreover, we discuss how plugin support is especially useful to applications where Haskell is used as an embedded domain-specific language (EDSL). We explain how to realise type-safe plugins using dynamic types, runtime compilation, and dynamic linking, exploiting infrastructure provided by the Glasgow Haskell Compiler. We demonstrate the practicability of our approach with several applications that serve as running examples.
Scripting XML with Generic Haskell
- Utrecht University
, 2003
"... A generic program is written once and works on values of many data types. Generic Haskell is a recent extension of the functional programming language Haskell that supports generic programming. This paper discusses how Generic Haskell can be used to implement XML tools whose behaviour depends on ..."
Abstract
-
Cited by 15 (9 self)
- Add to MetaCart
A generic program is written once and works on values of many data types. Generic Haskell is a recent extension of the functional programming language Haskell that supports generic programming. This paper discusses how Generic Haskell can be used to implement XML tools whose behaviour depends on the DTD or Schema of the input XML document. Example tools include XML editors, databases, and compressors. Generic Haskell is ideally suited for implementing XML tools: .
Type-based {XML} Processing in Logic Programming
- In PADL 2003
, 2003
"... In this paper we propose a type-based framework for using logic programming for XML processing. We transform XML documents into terms and DTDs into regular types. We implemented a standard type inference algorithm for logic programs and use the types corresponding to the DTDs as additional type ..."
Abstract
-
Cited by 13 (2 self)
- Add to MetaCart
In this paper we propose a type-based framework for using logic programming for XML processing. We transform XML documents into terms and DTDs into regular types. We implemented a standard type inference algorithm for logic programs and use the types corresponding to the DTDs as additional type declarations for logic programs for XML processing. Due to the correctness of the type inference this makes it possible to use logic programs as an implicitly typed processing language for XML with static type (in this case DTDs) validation. As far as we know this is the first work adding type validation at compile time to the use of logic programming for XML processing.
UUXML: A Type-Preserving XML Schema-Haskell Data Binding
- In International Symposium on Practical Aspects of Declarative Languages (PADL’04), volume 3057 of LNCS
, 2004
"... An XML data binding is a translation of XML documents into values of some programming language. This paper discusses a type-preserving XML-Haskell data binding that handles documents typed by the W3C XML Schema standard. Our translation is based on a formal semantics of Schema, and has been proved s ..."
Abstract
-
Cited by 12 (2 self)
- Add to MetaCart
An XML data binding is a translation of XML documents into values of some programming language. This paper discusses a type-preserving XML-Haskell data binding that handles documents typed by the W3C XML Schema standard. Our translation is based on a formal semantics of Schema, and has been proved sound with respect to the semantics. We also show a program in Generic Haskell that constructs parsers specialized to a particular Schema type.
Inferring Type Isomorphisms Generically
- Proceedings of the 7th International Conference on Mathematics of Program Construction, MPC 2004, volume 3125 of LNCS
"... Datatypes which di#er inessentially in their names and structure are said to be isomorphic; for example, a ternary product is isomorphic to a nested pair of binary products. In some canonical cases, the conversion function is uniquely determined solely by the two types involved. ..."
Abstract
-
Cited by 11 (7 self)
- Add to MetaCart
Datatypes which di#er inessentially in their names and structure are said to be isomorphic; for example, a ternary product is isomorphic to a nested pair of binary products. In some canonical cases, the conversion function is uniquely determined solely by the two types involved.
Revealing the X/O impedance mismatch (Changing lead into gold)
- IN DATATYPE-GENERIC PROGRAMMING, VOLUME 4719 OF LNCS
, 2007
"... We take the term X/O impedance mismatch to describe the difficulty of the OO paradigm to accommodate XML processing by means of recasting it to typed OO programming. In particular, given XML types (say, XML schemas), it is notoriously difficult to map them automatically to object types (say, object ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
We take the term X/O impedance mismatch to describe the difficulty of the OO paradigm to accommodate XML processing by means of recasting it to typed OO programming. In particular, given XML types (say, XML schemas), it is notoriously difficult to map them automatically to object types (say, object models) that (i) reasonably compare to native object types typically devised by OO developers; (ii) fully preserve the intent of the original XML types; (iii) fully support round-tripping of arbitrary, valid XML data; and (iv) provide a general and convenient programming model for XML data hosted by objects. We reveal the X/O impedance mismatch in particular detail. That is, we survey the relevant differences between XML and objects in terms of their data models and their type systems. In this process, we systematically record and assess Xto-O mapping options. Our illustrations employ XSD (1.0) as the XML-schema language of choice and C# (1.0–3.0) as the bound of OO language expressiveness.
The Duality of XML Markup and Programming Notation
, 2003
"... In web projects it is often necessary to mix XML notation and program notation in a single document or program. In mono-lingual situations the XML notation is either subsumed in the program, or the program notation is subsumed in the XML document. As an introduction we analyze XML notation and pr ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
In web projects it is often necessary to mix XML notation and program notation in a single document or program. In mono-lingual situations the XML notation is either subsumed in the program, or the program notation is subsumed in the XML document. As an introduction we analyze XML notation and programming notation in relation to each other. As the main contribution of the paper we describe a number of general issues to consider when subsuming XML in a given programming language.
Design and implementation of a validating XML parser in Haskell. Available from http://www.fh-wedel.de/~si/HXmlToolbox
, 2002
"... This thesis introduces the core component of the Haskell XML Toolbox: a validating XML parser that supports almost fully the Extensible Markup Language (XML) 1.0 (Second Edition) W3C Recommendation [WWW01]. The thesis presents how a validating XML parser and XML processing applications can be implem ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
This thesis introduces the core component of the Haskell XML Toolbox: a validating XML parser that supports almost fully the Extensible Markup Language (XML) 1.0 (Second Edition) W3C Recommendation [WWW01]. The thesis presents how a validating XML parser and XML processing applications can be implemented by using filter functions as a uniform design. The Haskell XML Toolbox is a collection of tools for processing XML with Haskell. It is itself purely written in Haskell. The Toolbox is a project of the University of Applied Sciences Wedel, initialized by Prof. Dr. Uwe Schmidt. The Haskell XML Toolbox bases on the ideas of HaXml [WWW21] and HXML [WWW25], but introduces a more general approach for processing XML with Haskell. It uses a generic data model for representing XML documents, including the DTD subset and the document subset. This data model makes is possible to use filter functions as a uniform design of XML processing applications. Libraries with filters and combinators are provided for processing this data model. The following components are included: • hdom- Core data types and functions for processing XML with Haskell
A Light-Weight Programming Interface for XML
"... Programming interface in general and particularly for XML data manipulation should be simple and flexible. For this purpose, we introduce light-weight and flexible programming interface for XML that provides only some basic operations such as controlling XML parser and XML document generator. Our ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
Programming interface in general and particularly for XML data manipulation should be simple and flexible. For this purpose, we introduce light-weight and flexible programming interface for XML that provides only some basic operations such as controlling XML parser and XML document generator. Our programming toolkit represents XML documents as S expressions internally; therefore, XML application programs can be simply coded as list processing, and we can make use of advantage of using Lisp such as treating data and programs uniformly.

