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.

Reply via email to