Several years ago, I read a paper about a parser written in Self called
Are there any more papers about Mango, or has any other research or
development been done along those lines?
It was a parser that created parse trees of nodes that dynamically inherited
application specific behaviors.
It solved the problem that people have with using XML through the DOM, since
when you parse in a DOM tree, the nodes are all generic xml nodes, instead
of domain specific classes, so the code you have to write to manipulate them
is much more verbose, harder to follow, and less type safe, since it's going
through the generic DOM interface, instead of an application defined
interfaces appropriate for the particular nodes.
Mango parsed in trees and made each node inherit from an application defined
class, which is a very selfish thing to do, so I haven't seen the technique
used in other systems based on languages like C++, that can't easily morph
object inheritance aroud willy nilly like self.
But it might be doable in Python.
Some DOM-like interfaces have user data pointers on each of the nodes, that
can point to "bicameral" application defined objects, but that's quite
clumsy compared to the Mango approach.
I would be interested in learning what eventually became of Mango, and about
other parsers like that, implemented in any language. Thanks for any info!