Fwd: [Haskell-cafe] ANNOUNCE: feldspar-language

---------- Forwarded message ----------
From: Tom Hawkins
Hi Tom, thanks for the code!
Is my understanding correct that `filter` in the C code performs evaluation of one cycle, and someone else will take care of calling it repeatedly on the input stream?
This is correct. In our application there is no buffered steam. Instead this code is processing data immediately after it is sampled by the ADCs; in our case once every 1ms.
Is there a way to avoid rolling out the summation loops fully?
Yes, but only by creating a custom primitive (see 'action'). But then you're writing in C, not Atom.

Interesting to see actual generated code.
Is this like code generation systems for database applications where
you stick stuff into string templates (e.g., a generator in Ruby on
Rails), or is it actually compiling an embedded domain specific
language?
On Thu, Nov 19, 2009 at 6:55 PM, Tom Hawkins
Yes, but only by creating a custom primitive (see 'action'). But then you're writing in C, not Atom.

On Fri, Nov 20, 2009 at 4:14 AM, Warren Henning
Interesting to see actual generated code.
Is this like code generation systems for database applications where you stick stuff into string templates (e.g., a generator in Ruby on Rails), or is it actually compiling an embedded domain specific language?
Atom is not a macro expansion language by any stretch. It does let you write primitive actions as C strings, but the core of the language is based on GADTs and type classes. In fact, the example I posted contained no custom primitive actions; the C code was rendered purely from the core datatypes.
participants (2)
-
Tom Hawkins
-
Warren Henning