XML Haskell (Was: Re: Haskell 2 -- Dependent types?)

1999-02-17 Thread Malcolm Wallace

Alexander Jacobson [EMAIL PROTECTED] writes:

 * facilitate better integration with other languages/systems
 For example, it would be nice to be able either to generate a Haskell
 datatype from an XML DTD or to generate a XML DTD from a Haskell
 datatype.

Funnily enough, that's exactly what we're working on at the moment.  We
already have the part which converts an arbitrary Haskell datatype to
an XML DTD (and values of that type to an XML document).  We are
part-way through the other angle, starting from an arbitrary XML DTD
and deriving a Haskell datatype for it (and the functions which parse
an XML document to a value of that type, and pretty-print the value
back to a document.)  These are written partially using DrIFT (i.e. the
"derive" tool) - which has turned out to be a remarkably pleasant
experience.

We also have a prototype combinator library for manipulating XML
documents in a generic manner (i.e. using a single generic tree
structure for all documents, rather than document-specific types and
values).

If anyone is interested in any of these facilities, drop us an email.

Regards,
[EMAIL PROTECTED]
[EMAIL PROTECTED]







Re: XML Haskell (Was: Re: Haskell 2 -- Dependent types?)

1999-02-17 Thread Fermin Reig

 
 Alexander Jacobson [EMAIL PROTECTED] writes:
 
  * facilitate better integration with other languages/systems
  For example, it would be nice to be able either to generate a Haskell
  datatype from an XML DTD or to generate a XML DTD from a Haskell
  datatype.
 
 Funnily enough, that's exactly what we're working on at the moment.  We
 already have the part which converts an arbitrary Haskell datatype to
 an XML DTD (and values of that type to an XML document).  We are
 part-way through the other angle, starting from an arbitrary XML DTD
 and deriving a Haskell datatype for it (and the functions which parse
 an XML document to a value of that type, and pretty-print the value
 back to a document.)  These are written partially using DrIFT (i.e. the
 "derive" tool) - which has turned out to be a remarkably pleasant
 experience.

There's another alternative available: asdlGen 

http://www.cs.princeton.edu/zephyr/ASDL/


"ASDL descriptions describe the tree-like data structures such as
abstract syntax trees (ASTs) and compiler intermediate representations
(IRs). Tools such as asdlGen automatically produce the equivalent data
structure definitions for C, C++, Java, Standard ML, and
Haskell. asdlGen also produces functions for each language that read
and write the data structures to and from a platform and language
independent sequence of bytes. The sequence of bytes is called a
pickle. "

I think there's also some support for XML.

I'm not sure if asdlGen can do all that Malcolm and Colin's package
will do, though. In any case, I find the ability to write a pickle
from C and read back from Haskell quite useful. 

Two relevant papers are:

"Early Experience with ASDL in lcc", Software-Practice and Experience,
to appear.

"A Machine-Independent Debugger-Revisited", Microsoft Research TR 99-4

both available at http://www.research.microsoft.com/~drh/

 If anyone is interested in any of these facilities, drop us an email.

Do keep the mailing list informed of your progress!



Regards,

Fermin Reig