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?
- 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. Google Scholar
Digital Library
- G. Blelloch. Functional Parallel Algorithms, invited talk. In Int. Conf. on Functional Programming. ACM, 2010. Google Scholar
Digital Library
- 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.Google Scholar
- 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.Google Scholar
- 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. Google Scholar
Digital Library
- M. Sheeran. muFP, a language for VLSI design. In Proceedings of the ACM Symposium on LISP and Functional Programming, pages 104–112. ACM, 1984. Google Scholar
Digital Library
- 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.Google Scholar
- M. Sheeran. Generating Fast Multipliers Using Clever Circuits. In Formal Methods in Computer-Aided Design, volume 3312 of LNCS, pages 6–20. Springer, 2004.Google Scholar
- M. Sheeran. Functional and dynamic programming in the design of parallel prefix networks. J. Funct. Program., 21(1):59–114, 2011. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
Index Terms
Functional programming and hardware design: still interesting after all these years
Recommendations
Functional programming and hardware design: still interesting after all these years
ICFP 2015: Proceedings of the 20th ACM SIGPLAN International Conference on Functional ProgrammingHigher 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 ...
Fifteen years of functional pearls
Proceedings of the 2006 ICFP conferenceIn 1991, when the Journal of Functional Programming was inaugurated, the editors, Simon Peyton Jones and Philip Wadler, asked me to contribute a regular column to be called Functional Pearls. The idea was to emulate the very successful series of essays ...
Fifteen years of functional pearls
ICFP '06: Proceedings of the eleventh ACM SIGPLAN international conference on Functional programmingIn 1991, when the Journal of Functional Programming was inaugurated, the editors, Simon Peyton Jones and Philip Wadler, asked me to contribute a regular column to be called Functional Pearls. The idea was to emulate the very successful series of essays ...






Comments