Towards a Functional Programming Language for Baseband Signal Processing
Licentiatavhandling, 2014

Developing software for resource constrained embedded systems is a daunting task. In addition to getting the functionality right, a programmer must consider several non-functional properties, including data layout, the target memory hierarchy, concurrency and parallelism. The programmer has to decide on a specific and reasonable solution on these properties upfront during development However, these decisions are necessarily based on incomplete information, since the optimial solution depends on the actual deployment on the target hardware. In this thesis we explore a generative approach, with a staged functional domain specific language, to postpone many of these decisions to a much later stage of the development process. The staged approach gives the progammer explicit control over much of the code generation by using combinators to build the application from reusable components and skeletons. Currently, Feldspar is focused on the data processing part of signal processing in embedded systems. The Feldspar compiler generates single C functions that can be integrated into existing systems. The Feldspar language is based on a combination of shallow and deep embedding, which makes it modular both for the language developer and the end user. This modularity made it easy to add monadic expressions to support mutable updates and deterministic parallelism. Future work includes generation, deployment and orchestration of systems of data processing functions and control processing. Additionally, this thesis presents a technique, and supporting library that allows the programmer to test, profile and analyze compiled Feldspar programs from the host language environment.

signal processing

domain specific languages

functional programming

code generation

Opponent: Martin Elsman


Anders Persson

Chalmers, Data- och informationsteknik, Programvaruteknik

Feldspar: A Domain Specific Language for Digital Signal Processing algorithms

Eighth ACM/IEEE International Conference on Formal Methods and Models for Codesign,; (2010)p. 169-178

Paper i proceeding

The Design and Implementation of Feldspar: An Embedded Language for Digital Signal Processing

Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics),; Vol. 6647(2011)p. 121-136

Paper i proceeding

Generic Monadic Constructs for Embedded Languages

Lecture Notes in Computer Science, Implementation and Application of Functional Languages,; Vol. 7257(2012)

Paper i proceeding


Informations- och kommunikationsteknik



Datavetenskap (datalogi)

Technical report L - Department of Computer Science and Engineering, Chalmers University of Technology and Göteborg University: 121L

Opponent: Martin Elsman

Mer information