Skip to main content

The Design and Implementation of Feldspar

An Embedded Language for Digital Signal Processing

  • Conference paper
Book cover Implementation and Application of Functional Languages (IFL 2010)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 6647))

Included in the following conference series:

Abstract

Feldspar is a domain specific language, embedded in Haskell, for programming digital signal processing algorithms. The final aim of a Feldspar program is to generate low level code with good performance. Still, we chose to provide the user with a purely functional DSL. The language is implemented as a minimal, deeply embedded core language, with shallow extensions built upon it. This paper presents full details of the essential parts of the implementation. Our initial conclusion is that this approach works well in our domain, although much work remains.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 54.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 69.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Axelsson, E., Dévai, G., Horváth, Z., Keijzer, K., Lyckegård, B., Persson, A., Sheeran, M., Svenningsson, J., Vajda, A.: Feldspar: A Domain Specific Language for Digital Signal Processing algorithms. In: Proc. 8th ACM/IEEE International Conference on Formal Methods and Models for Codesign, IEEE, Los Alamitos (2010)

    Google Scholar 

  2. Carette, J., Kiselyov, O., Shan, C.: Finally tagless, partially evaluated: Tagless staged interpreters for simpler typed languages. J. Func. Prog. 19(05) (2009)

    Google Scholar 

  3. Claessen, K., Sands, D.: Observable sharing for functional circuit description. In: Thiagarajan, P.S., Yap, R.H.C. (eds.) ASIAN 1999. LNCS, vol. 1742, p. 62. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  4. Elliott, C., Finne, S., de Moor, O.: Compiling embedded languages. J. Func. Prog. 13(3), 455–481 (2003)

    Article  MATH  Google Scholar 

  5. Feldspar: http://feldspar.inf.elte.hu/feldspar/

  6. Keller, G., Chakravarty, M., Leshchinskiy, R., Jones, S.P., Lippmeier, B.: Regular, shape-polymorphic, parallel arrays in Haskell. In: Proc. 15th ACM SIGPLAN international conference on Functional programming, pp. 261–272. ACM, New York (2010)

    Chapter  Google Scholar 

  7. Martin, G., Zarrinkoub, H.: From MATLAB to Embedded C, The Mathworks (2009), http://www.mathworks.com/company/newsletters/news_notes/2009/matlab-embedded-c.html

  8. Püschel, M., Moura, J.M.F., Johnson, J., Padua, D., Veloso, M., Singer, B., Xiong, J., Franchetti, F., Gacic, A., Voronenko, Y., Chen, K., Johnson, R.W., Rizzolo, N.: SPIRAL: Code generation for DSP transforms. Proc. IEEE 93(2) (2005)

    Google Scholar 

  9. Scholz, S.: Single Assignment C: efficient support for high-level array operations in a functional setting. J. Func. Prog. 13(06), 1005–1059 (2003)

    Article  MathSciNet  MATH  Google Scholar 

  10. Schrijvers, T., Peyton Jones, S., Sulzmann, M., Vytiniotis, D.: Complete and decidable type inference for GADTs. In: Proc. 14th ACM SIGPLAN international conference on Functional programming, pp. 341–352. ACM, New York (2009)

    Google Scholar 

  11. Svensson, J., Sheeran, M., Claessen, K.: GPGPU Kernel Implementation and Refinement using Obsidian. In: Proc. Seventh International Workshop on Practical Aspects of High-level Parallel Programming. ICCS, Procedia (2010)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Axelsson, E., Claessen, K., Sheeran, M., Svenningsson, J., Engdal, D., Persson, A. (2011). The Design and Implementation of Feldspar. In: Hage, J., Morazán, M.T. (eds) Implementation and Application of Functional Languages. IFL 2010. Lecture Notes in Computer Science, vol 6647. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-24276-2_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-24276-2_8

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-24275-5

  • Online ISBN: 978-3-642-24276-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics