relational model applied to simulation programming

From: Keith H Duggar <duggar_at_alum.mit.edu>
Date: 17 May 2006 13:51:28 -0700
Message-ID: <1147899088.310718.120840_at_j73g2000cwa.googlegroups.com>



Thank you "x" and Marshall. I appreciate your feedback especially considering that my question was so vague. Your responses were most welcoming. I split this topic off into a new thread, I hope that was an acceptable thing to do?

Keith H Duggar wrote:
> Yes I believe I do. Unfortunately I do not yet possess the
> knowledge and vocabulary needed to properly formulate the
> questions here. Basically I want to know if and how the RM
> can be leveraged to improve and simplify numerical
> simulations. Typically I implement OO/network models using
> C++. In the recent past slogging through tedious
> navigational code (pointers, iterators, visitors, etc) led
> me to wonder if there was a better way. Hence I wandered
> over to c.d.t. looking for education and inspiration.

x wrote:
> I don't have much experience with numerical simulations.
> What part of them should not require many loops in your
> opinion ? Matrix calculations ?

At some layer (depending on hardware) I suppose there will be a sequence or iteration or loop of computations. However, many computations can be expressed at a more abstracted level, that of set-at-a-time (setwise) operations. There are advantages to setwise coding and if I understand correctly the RM supports this style.

Marshall wrote :
> Ah, what an excellent topic!
>
> I believe the answer to your question is yes. The most
> immediate places the RM can help is physical independence
> and set-at-a-time processing. I think the example of the J
> programming language
>
> http://jsoftware.com/
>
> is quite instructive. Although it is more focused on
> ordered collection rather than relations, it nonetheless
> has a solid mathematical foundation and no explicit loops.

Thank you. It will be interesting to compare J to APL, K, and Joy among others.

> Physical independence comes in when one considers how much
> work many C++ programmers have to do to, for example, lay
> out their data in a way that will satisfy a graphics
> coprocessor, or enable them to use SIMD instructions. It
> would be better if this was abstracted from the code.

Or even laying out data in a structure convenient for your own analysis. A particular network may be very convenient for one analysis and a nightmare for other. I'm beginning to understand this is the concept of "access paths" correct? And that a network model encodes and optimizes a particular access path whereas a relational model does not? And thus a RM allows many access paths? Efficiently?

> To achieve the big wins, though, we need a programming
> language that uses the RM at its core, and that has
> support for physical independence. I am afraid that at
> this time this is just a wish.

I'm glad you brought this up because I'm VERY curious about this. Is it so that such a language is still just a dream? What about APL, Joy, K, and Prolog for example? What are their good and bad points from a relational support perspective? Is there a RM programming language on the horizon or under development?

  • Keith --
Received on Wed May 17 2006 - 22:51:28 CEST

Original text of this message