Related articles |
---|
array shape analysis for array languages bernecky@acm.org (Robert Bernecky) (1999-03-23) |
From: | Robert Bernecky <bernecky@acm.org> |
Newsgroups: | comp.lang.functional,comp.compilers |
Date: | 23 Mar 1999 12:26:47 -0500 |
Organization: | Snake Island Research Inc |
Keywords: | optimize |
I'm working on compiler optimizations for array-based languages such
as APL, J, SISAL, and SAC. I am familiar with the work done in the
above languages in the area of array shape analysis, but want to know
if this is a topic that has gotten any attention in other
languages. If so, pointer to URLs, Conference Proceedings, journal
articles, etc., is quite welcome, as are pointers to languages with
similar characteristics.
This has nothing to do with computer graphics, by the way.
Array shape analysis has to do with compile-time extraction
of the properties of arrays. For example, a vector expression such as:
1 2 + 4 8
gives 5 12 as its result.
1 2 3 + 4 8
gives an error because the array shapes are not conformable
(3 elements vs 2).
The problem gets more interesting when you have something like:
x <- 10 0 1 2 3
y<- 2 drop x NB. That's 1 2 3
z<- x, 88 99 NB. That's 1 2 3 88 99
x+z
Now, we want to add x+y, getting:
11 2 4 90 102
The hard part is deducing at compile time that the two vectors are the
same shape (length). In this case, it's trivial (Look at the APEX
compiler to see how it's done -- home.ican.net/~bernecky) but in the
more general case, we don't even know the shape of x until run-time.
Thanks. Bob
Return to the
comp.compilers page.
Search the
comp.compilers archives again.