Skip to main content

A Useful Bounded Resource Functional Language

  • Conference paper
SOFSEM 2008: Theory and Practice of Computer Science (SOFSEM 2008)

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

Abstract

Real-time software, particularly that used in embedded systems, has unique resource and verification requirements. While embedded software may not have great need for processor and memory resources, the need to prove that computations are performed correctly and within hard time and space constraints is very great. Improvements in hardware and compiler technology mean that functional programming languages are increasingly practical for embedded situations. We present a functional programming language, Ca, built on catamorphisms instead of general recursion, intended for use in static analysis. Ca is not Turing-complete—every program must terminate—but it still provides an excellent framework for building static analysis techniques. Catamorphisms are a general tool which encompass bounded iteration, and allow to traverse any algebraic data structure. We discuss the computational properties of this language, as well as provide a framework for future work in static analysis.

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 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.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. Ball, T., Rajamani, S.K.: The SLAM project: debugging software via static analysis. In: 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pp. 1–3 (2002)

    Google Scholar 

  2. Brainerd, W.S., Landweber, L.H.: Theory of computation. Wiley, New York (1974)

    Google Scholar 

  3. Cockett, R.: Charitable thoughts. Lecture notes, University of Calgary (1996)

    Google Scholar 

  4. Colson, L.: About primitive recursive algorithms. Theoretical Computer Science 83(1), 57–69 (1991)

    Article  MATH  Google Scholar 

  5. Dhurjati, D., Das, M., Yang, Y.: Path-sensitive dataflow analysis with iterative refinement. Technical Report MSR-TR-2005-108, Microsoft Corporation (2005)

    Google Scholar 

  6. Ermedahl, A., Stappert, F., Engblom, J.: Clustered calculation of worst-case execution times. In: Proceedings of the 2003 International conference on Compilers, architecture, and synthesis for embedded systems, San Jose, California, USA, pp. 51–62 (2003)

    Google Scholar 

  7. Fukushima, T., Tuckey, C.: Charity User Manual. University of Calgary (January 1996)

    Google Scholar 

  8. Gustafsson, J., Ermedahl, A., Lisper, B.: Towards a flow analysis for embedded system c programs. In: 10th IEEE International Workshop on Object-Oriented Real-Time Dependable Systems, pp. 287–300 (2005)

    Google Scholar 

  9. Hagino, T.: A Categorical Programming Language. PhD thesis, University of Edinburgh (1987)

    Google Scholar 

  10. Steven Li, Y.-T., Malik, S., Wolfe, A.: Efficient microarchitecture modeling and path analysis for real-time software. In: 16th IEEE Real-Time Systems Symposium, p. 298 (1995)

    Google Scholar 

  11. MathWorld. Arrow notation (1999), http://mathworld.wolfram.com/ArrowNotation.html

  12. Meijer, E., Fokkinga, M.M., Paterson, R.: Functional programming with bananas, lenses, envelopes and barbed wire. In: Hughes, J. (ed.) Functional Programming Languages and Computer Architecture. LNCS, vol. 523, pp. 124–144. Springer, Heidelberg (1991)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Viliam Geffert Juhani Karhumäki Alberto Bertoni Bart Preneel Pavol Návrat Mária Bieliková

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Burrell, M.J., Andrews, J.H., Daley, M. (2008). A Useful Bounded Resource Functional Language. In: Geffert, V., Karhumäki, J., Bertoni, A., Preneel, B., Návrat, P., Bieliková, M. (eds) SOFSEM 2008: Theory and Practice of Computer Science. SOFSEM 2008. Lecture Notes in Computer Science, vol 4910. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-77566-9_17

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-77566-9_17

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-77565-2

  • Online ISBN: 978-3-540-77566-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics