Bill Allombert on Tue, 20 Dec 2011 00:06:01 +0100


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

Re: Online brainstorming session for GP language feature.


Dear PARI-dev,

I recent this because the original version was full of typo.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

In preparation of the PARI workshop, I like to start a brainstorming session about
the future of the GP language.

To start with, we have in mind 3 kinds of GP extensions:

1) more functional programming-like features:

1.1) Comprehension: allow to write [a(x)|x<-b,c(x)]  for select(c,apply(a,b)))
1.2) fun^k for x->fun( ... fun(fun(x)) ... ) (k times)

2) Range

2.1) Range: [1..5] = [1,2,3,4,5]
2.2) F[2..4] = [F[2],F[3],F[4]]
2.3) [a,b] = [1, 2] -> a=1; b=2;

3) Precision:

3.1) myprec(x): set the precision to precision(x) in the current block
3.2) Pi(34): return Pi with 34 digits of precision
3.3) Allow to handle precision in bits instead of digits.

4) Debugging features:

4.1) allow to move up and down in the stack frame.
4.2) breakpoint
4.3) access to error information in the breakloop.
4.4) access to \x in the breakloop.

5) Support for parallel computation.
5.1) Support for OpenMPI and POSIX threads.
5.2) parallel evaluation of vectors or loops.

but others are very welcome.

The purpose of the brainstorming is to put all the extension on the table so
we can see how they interfer with each other and also it is better to add a few
powerful contructs than a lot of weak ones.

Cheers,
Bill.