[Haskell-cafe] generate Haskell code from model
Steffen Mazanek
haskell at steffen-mazanek.de
Fri Apr 13 07:48:03 EDT 2007
Hello everybody,
I would like to start a discussion on how to generate
best-practice Haskell code from a model, e.g. from
EMF.
It seems to be very difficult and unconvenient to simulate
OOP with Haskell (as described in the paper "Object-oriented
style overloading for Haskell"). However, I think it might
be possible to generate "something useful" out of a model to
not start from scratch an implementation.
For example, I could imagine to generate for every class
a module, import and export lists and a type class (with some
restrictions) at the very least.
In the EMF book there is an example, PurchaseOrder, look at
http://www.awprofessional.com/content/images/0131425420/samplechapter/budinskych02.pdf
at page 11.
How would you like generated code from this model to look like?
The most obvious way would be something like this:
data PurchaseOrder = PurchaseOrder {shipTo::String, billTo:: String,
items::[Item]}
data Item = Item {productName::String, quantity::Int, price::Float}
This does not work well if function names are reused or
inheritance comes into play, however, even this might be a useful
starting point (better than nothing).
The benefits of the model+generate approach are well known. Best practices
in programming are propagated, for Haskell e.g. use different modules
for different things, use the tedious import/export lists, Haddock your
code...
What are your ideas?
Best regards,
Steffen
--
Dipl.-Inform. Steffen Mazanek
Institut für Softwaretechnologie
Fakultät Informatik
Universität der Bundeswehr München
85577 Neubiberg
Tel: +49 (0)89 6004-2505
Fax: +49 (0)89 6004-4447
E-Mail: steffen.mazanek at unibw.de
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20070413/feb6b6cb/attachment.htm
More information about the Haskell-Cafe
mailing list