Re: [gdome]MathML DOM implementation: I need some advise



Hi,

we are very much interested in an implementation of the MathML DOM.

On Thu, 2003-10-02 at 03:45, Pierre-Paul Delisle wrote:
> I want to implement the MathML DOM using GDome. Will it be to low level 
> using directly GDome (in the sense that I can use Python instead of C)? If 
> so, should I implement instead using GMetaDome?

it depends on a number of things. If you work at the C level it is more
painful because of the gory details like reference counting, extra
arguments for exceptions, and so on. Furthermore you cannot easily
benefit from object-oriented facilities that may be very useful for this
job: the MathML DOM is more structured and makes more extensive use of
multiple inheritance of interfaces than "plain" DOM does. The good thing
would be that it would be easy to create bindings for any other
language, including Ocaml and C++ which means that in a few shots we
would deliver a MathML DOM implementation (I can hardly find one that is
free) for virtually any language.

If you implement it at the "gmetadom level" you are already committing
to one specific language, and then people who want to use it elsewhere
might be forced to write a "back-binding" to C. 

> If I go with GDome, should I think about creating the MathML DOM as separate 
> library or instead as a feature part of GDome?

I think the MathML DOM can be implemented taking the DOM implementation
as a black box. Unfortunately, because Gdome is plain C and because of
the way the C++ binding is done, it is not easy to "extend" the DOM
implementation as you would do in Java, so that the Document node would
be the factory for MathML DOM elements. 

Were you thinking about implementing the DOM for the presentation only
or the whole set of interfaces? Have you considered automatic generation
of the code? A fair amount of methods can be generated automatically I
think, this would reduce the code to hand-write and would make it easier
to switch to an alternative approach if the one you try first does not
seem to work well.

Cheers,
-- Luca





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]