Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Usenet -> comp.databases.theory -> Re: RM and abstract syntax trees

Re: RM and abstract syntax trees

From: David BL <>
Date: Tue, 30 Oct 2007 19:00:29 -0700
Message-ID: <>

On Oct 31, 10:06 am, paul c <> wrote:
> David BL wrote:
> > On Oct 31, 2:46 am, paul c <> wrote:
> >> Okay, from your original post:
> >> "So RM is forced
> >> to expose the equivalent of pointers directly in the representation.
> >> Furthermore, the RM has no mechanism for hiding these pointers or
> >> giving the user an interface that promotes the idea that a node
> >> logically represents a value."
> >> Where does RM ever mention pointers? Eg., What are the pointer
> >> operations that RM supports?
> > I'm associating a "pointer" with the idea to give a thing (like a node
> > of an AST) some meaningless identifier, and using that identifier
> > elsewhere as a means to uniquely reference that thing. With that
> > *analogy*, RM performs a pointer dereference when performing a natural
> > join.
> > ...
> Sorry if this seems pedantic (which it is) but RM references things
> uniquely with values.

I have no problem with you being pedantic and like your comments!

Yes RM references things uniquely with values, but pointers are "value types"! Note the distinction between "pointer-type", "pointervariable",  and "pointer-value". When a pointer-variable is assigned a pointer-value, the object being referenced only depends on the pointer-value.

If you want to be pedantic, I would say it has more to do with the fact that pointer types have a dereference operator, whereas surrogate ids in RM do not. But as I said, I was only drawing an analogy with pointers.

Note that each time a join is used to navigate from parent node to child node in an AST, we will typically only get a single tuple in the join result. This follows from the integrity constraints (that a node must be *exclusive or* a variable, number, addition node etc), but more easily can be understood using the analogy with a pointer dereference. The set level manipulation capability of RM (one of its great virtues) is not being utilised.

In the end I'm more interested in whether you agree with the conclusion : that RM is ill-suited to represent ASTs. Received on Tue Oct 30 2007 - 21:00:29 CDT

Original text of this message