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