On Fri, 4 Feb 2011, Stephen Sinclair wrote:

Anyways, due to the field I work in, one subject area I find myself
obsessed with is the seeming conflicts of interest between functional
programming and real-time guarantees (for writing DSP programs, etc).
The former allows more powerful ways to express programs and
modularize logic, but seems to often require methods for abstracting
machine architecture such as garbage collection, which is not
compatible with time determinism.  Avoiding GC seems to require the
use of more restrictive languages like in the case of FAUST, which is
basically a declarative DSP description language.  I'd like to
eventually find just the right balance between time determinism and
general-purpose programming.

FAUST is essentially like Arrow programming in Haskell. I prefer Arrows in Haskell because they are stricter. E.g. in FAUST you can plug together boxes with non-matching numbers of inputs and outputs and FAUST somehow connects them anyway. I suspect I would more like to get an error in such cases.

In synthesizer-llvm I programmed DSP arrows that generate LLVM assembly code. There is no Garbage Collection going on silently. It should be appropriate for tasks with hard time and memory constraints. Actually, Haskell with the 'llvm' package is the greatest macro assembler I ever used! :-)
_______________________________________________
haskell-art mailing list
[email protected]
http://lists.lurk.org/mailman/listinfo/haskell-art

Reply via email to