On 18/04/2016 19:20, Dmitry Pavlov wrote:
I, as a programmer in the area of numerics, just evolved to the state
where the following task seem reasonable to work on:
...
I suspect I am not the only one who wants that.
Me too!
There must be some work already done.
What would you advise to start with?
I am not aware of anything very close to your goals in Racketland, but
there are people much more knowledgeable than me on this list.
I have played with similar ideas as well, but never found the means to
work on this seriously. But I'd participate in a collaborative project.
My idea for this is:
1) Define a language with C-level semantics but S-expression syntax. A
language that can be easily compiled to C, Fortran, LLVM byte code, and
perhaps even JVM bytecode, in a way that the performance implications of
each statement are understandable to a software developer.
2) Develop whatever backends (C, Fortran, LLVM, ...) people find most
useful. But make sure that at least one backend integrates transparently
with Racket's FFI, so that one can "just run" such code from Racket.
3) Develop DSLs that compile to this language.
In the long run, the low-level language could be extended by
optimization hints, similar to #pragmas as used in OpenMP.
Symbolic derivatives and similar transformations would be part of the
DSL implementations. For the specific case of derivates, Jerzy's remark
is important: automatic derivatives are often the better choice. But for
the big picture, that's a secondary question; a numeric DSL framework
should support both approaches.
Konrad.
--
You received this message because you are subscribed to the Google Groups "Racket
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.