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

Re: Psi Calculus



Noel Welsh writes:

> The Psi calculus is a calculus of array manipulation, analogous to
> the lambda calculus and functions. I think it should be considered
> as a theoretical basis for srfi-25.

Wonderful. Thank you.

> (e.g. http://www.informatik.uni-kiel.de/~sacbase/array.html)

I looked at this page. It is indeed a close relative and good to know
about. It doesn't provide sharing as a primitive notion. I suppose it
relies on a compiler to avoid a lot of unnecessary copying.

> The implications for srfi-25 are fairly minor - it would basically
> require adding a few more primitive operations to the library. The
> imperative procedure array-set! would then be redundant

I think,

1) modarray single element case in Scheme would _be_ array-set!, not
   make it redundant;

2) reshape is partly provided by share-array and partly not provided
   in current srfi-25; the row major stuff mentioned in Issues would
   provide the latter part;

3) most of the rest is covered by build-array or similar, which might
   be a basic operation in another srfi (it's in Issues now);

> and it will be possible to do a lot of optimisations on array code
> (see, e.g. the SAC papers).

4) there is no way around Scheme being an imperative language with
   runtime typing; static compiler optimisations are not in reach, nor
   is anything restricted to single assignment.
-- 
Jussi