Types, Functional Programming and Atomic Transactions in Hardware Design | SpringerLink
Skip to main content

Types, Functional Programming and Atomic Transactions in Hardware Design

  • Chapter
In Search of Elegance in the Theory and Practice of Computation

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

  • 1279 Accesses

Abstract

Most hardware design languages have not benefited from modern ideas in programming languages. We describe aspects of BSV, a recent language for designing hardware systems that makes extensive use of Haskell types (Hindley-Milner types and type classes), functional programming (higher-order functions, monads) and atomic transactions in the form of concurrent rewrite rules.

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

Access this chapter

Subscribe and save

Springer+ Basic
¥17,985 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
JPY 3498
Price includes VAT (Japan)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
JPY 5719
Price includes VAT (Japan)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
JPY 7149
Price includes VAT (Japan)
  • 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.

Similar content being viewed by others

References

  1. Augustsson, L., Schwartz, J., Nikhil, R.S.: Bluespec Language Definition, The earliest version of BSV (2001)

    Google Scholar 

  2. Bjesse, P., Claessen, K., Sheeran, M., Singh, S.: Lava: Hardware Design in Haskell. In: Proc. ACM Intl. Conf. on Functional Programming, ICFP (1998)

    Google Scholar 

  3. Chandy, K., Misra, J.: Parallel Program Design: A Foundation. Addison Wesley (1988)

    Google Scholar 

  4. Dijkstra, E.W.: Guarded Commands, Nondeterminacy and Formal Derivation of Programs. Communications of the ACM 18(8), 453–457 (1975)

    Article  MathSciNet  MATH  Google Scholar 

  5. Hoe, J.C., Arvind: Synthesis of Operation-Centric Hardware Descriptions. In: IEEE/ACM Intl. Conf. on Computer Aided Design (ICCAD), pp. 511–518 (2000)

    Google Scholar 

  6. IEEE: IEEE Standard VHDL Language Reference Manual, IEEE Std 1076-1993 (2002)

    Google Scholar 

  7. IEEE: IEEE Standard for System Verilog—Unified Hardware Design, Specification and Verification Language, IEEE Std 1800-2005 (2005)

    Google Scholar 

  8. IEEE: IEEE Standard Verilog Hardware Description Language, iEEE Std 1364-2005 (2005)

    Google Scholar 

  9. Klop, J.: Term Rewriting Systems. In: Abramsky, S., Gabbay, D.M., Maibaum, T.S.E. (eds.) Handbook of Logic in Computer Science, vol. 2, pp. 1–116. Oxford University Press (1992)

    Google Scholar 

  10. Lamport, L.: Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers. Addison-Wesley Professional (Pearson Education) (2002)

    Google Scholar 

  11. Metayer, C., Abrial, J.R., Voisin, L.: The Event-B Language (May 31, 2005), http://rodin.cs.ncl.ac.uk/deliverables.htm

  12. Milner, R.: A Theory of Type Polymorphism in Programming. J. of Computer and System Sciences 17, 348–375 (1978)

    Article  MathSciNet  MATH  Google Scholar 

  13. Nikhil, R.S.: Abstraction in Hardware System Design. Communications of the ACM 54(10), 36–44 (2011)

    Article  Google Scholar 

  14. Nikhil, R.S., Czeck, K.R.: BSV by Example. CreateSpace (December 2010) (book form: Amazon.com ; PDF: bluespec.com )

  15. Peyton Jones, S., (ed.): Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press (2003), haskell.org

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Nikhil, R.S. (2013). Types, Functional Programming and Atomic Transactions in Hardware Design. In: Tannen, V., Wong, L., Libkin, L., Fan, W., Tan, WC., Fourman, M. (eds) In Search of Elegance in the Theory and Practice of Computation. Lecture Notes in Computer Science, vol 8000. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-41660-6_22

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-41660-6_22

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-41659-0

  • Online ISBN: 978-3-642-41660-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics