skip to main content
10.1145/2784731.2789053acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
invited-talk

Functional programming and hardware design: still interesting after all these years

Published: 29 August 2015 Publication History

Abstract

Higher order functions provide an elegant way to express algorithms designed for implementation in hardware. By showing examples of both classic and new algorithms, I will explain why higher order functions deserve to be studied. Next, I will consider the extent to which ideas from functional programming, and associated formal verification methods, have influenced hardware design in practice. What can we learn from looking back? You might ask "Why are methods of hardware design still important to our community?". Maybe we should just give up? One reason for not giving up is that hardware design is really a form of parallel programming. And here there is still a lot to do! Inspired by Blelloch's wonderful invited talk at ICFP 2010, I still believe that functional programming has much to offer in the central question of how to program the parallel machines of today, and, more particularly, of the future. I will briefly present some of the areas where I think that we are poised to make great contributions. But maybe we need to work harder on getting our act together?

References

[1]
P. Bjesse, K. Claessen, M. Sheeran, and S. Singh. Lava: hardware design in Haskell. In Int. Conf. on Functional Programming, pages 174–184. ACM, 1998.
[2]
G. Blelloch. Functional Parallel Algorithms, invited talk. In Int. Conf. on Functional Programming. ACM, 2010.
[3]
K. Claessen, N. Een, M. Sheeran, and N. Sorensson. SAT-solving in practice. In Discrete Event Systems, 2008. WODES 2008. 9th International Workshop on, pages 61–67. IEEE, 2008.
[4]
C. Seger. Integrating design and verification-from simple idea to practical system. In Formal Methods and Models for Co-Design, 2006. MEMOCODE’06. Proceedings. Fourth ACM and IEEE International Conference on, pages 161–162. IEEE, 2006.
[5]
C.-J. H. Seger, R. B. Jones, J. W. O’Leary, T. Melham, M. D. Aagaard, C. Barrett, and D. Syme. An industrially effective environment for formal hardware verification. Computer-Aided Design of Integrated Circuits and Systems, IEEE Transactions on, 24(9):1381–1405, 2005.
[6]
M. Sheeran. muFP, a language for VLSI design. In Proceedings of the ACM Symposium on LISP and Functional Programming, pages 104–112. ACM, 1984.
[7]
M. Sheeran. Finding regularity: describing and analysing circuits that are not quite regular. In Correct Hardware Design and Verification Methods, volume 2860 of LNCS, pages 4–18. Springer, 2003.
[8]
M. Sheeran. Generating Fast Multipliers Using Clever Circuits. In Formal Methods in Computer-Aided Design, volume 3312 of LNCS, pages 6–20. Springer, 2004.
[9]
M. Sheeran. Functional and dynamic programming in the design of parallel prefix networks. J. Funct. Program., 21(1):59–114, 2011.
[10]
M. Sheeran, S. Singh, and G. St˚almarck. Checking safety properties using induction and a SAT-solver. In Formal Methods in Computer-Aided Design, volume 1954 of LNCS, pages 127–144. Springer, 2000.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICFP 2015: Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming
August 2015
436 pages
ISBN:9781450336697
DOI:10.1145/2784731
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 50, Issue 9
    ICFP '15
    September 2015
    436 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2858949
    • Editor:
    • Andy Gill
    Issue’s Table of Contents
Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 29 August 2015

Check for updates

Author Tags

  1. Hardware design
  2. functional programming
  3. higher order functions
  4. parallel algorithms
  5. parallel programming

Qualifiers

  • Invited-talk

Conference

ICFP'15
Sponsor:

Acceptance Rates

Overall Acceptance Rate 333 of 1,064 submissions, 31%

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 393
    Total Downloads
  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)1
Reflects downloads up to 13 Dec 2024

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media