Since no-one has mentioned it yet, I just thought I'd point out that the
Perl Data Language (PDL) has a system for automatically generating XS code
from a "simpler" interface called PDL::PP. 

This provides a simplified (currently PDL specific) access to
external libraries but provides all the power of PDL (including
implicit "threading"[1]) without the programmer having to know about the
pdl or perl internals. Additionally, since it is a meta-language changes
or enhancements to the internals can be utilised almost immediately by PDL
simply by updating PDL::PP.

[1] In PDL "threading" is a system whereby if you provide a N-d array to a
function that wants a (N-1)-D array then PDL will automatically iterate
over the spare dimension. Sort of the equivalent of, in perl:

  $len = length( $string );

automatically becoming

  @len = length( @strings );

when an array is supplied [actually, that sounds quite useful for
perl. Maybe I should bring it up on perl6-language :-) ]
 

-- 
Tim Jenness
JCMT software engineer/Support scientist
http://www.jach.hawaii.edu/~timj


Reply via email to