Skip to main content

Tabular Expressions and Total Functional Programming

  • Conference paper

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

Abstract

Tabular expressions are a multidimensional structured notation for complex mathematical definitions of relations or functions. They have been found useful for documenting imperative programs by stating the function or relation that describes the black-box behaviour of those programs. Tools are needed to increase the practicality of this approach to documentation. In order to create tools to check and evaluate tabular expressions, we have investigated functional programming as an implementation paradigm that reflects the semantics of these mathematical expressions faithfully. We explain why and how the restriction to total functions improves the semantic correspondence substantially, and describe the basic design and capabilities of our total functional programming tools for tabular expressions. We demonstrate the practical advantages of totality by giving examples for the especially easy and effective application of well-known code transformation techniques to total functional programs.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   74.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   99.00
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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Parnas, D.L.: Tabular representation of relations. CRL Report 260, McMaster University (1992)

    Google Scholar 

  2. Balaban, A., Bane, D., Jin, Y., Parnas, D.L.: Mathematical model of tabular expressions. SQRL draft (2007) (to be published), David.Parnas@ul.ie

    Google Scholar 

  3. Parnas, D.L., Madey, J., Iglewski, M.: Precise documentation of well-structured programs. IEEE Trans. Softw. Eng. 20(12), 948–976 (1994)

    Article  Google Scholar 

  4. Trancón y Widemann, B., Parnas, D.L.: Tabular expressions and total functional programming. In: Hanus, M., Brassel, B. (eds.) 24. Workshop der GI-Fachgruppe Programmiersprachen und Rechenkonzepte, Institut für Informatik, Christian-Albrechts-Universität Kiel (2007)

    Google Scholar 

  5. Kahl, W.: Compositional syntax and semantics of tables. SQRL Report 15, McMaster University (2003)

    Google Scholar 

  6. Lawford, M., Froebel, P., Moum, G.: Application of tabular methods to the specification and verification of a nuclear reactor shutdown system. Formal Methods in System Design (accepted for publication, October 2004), http://www.cas.mcmaster.ca/~awford/papers/

  7. Zucker, J.: Transformations of normal and inverted function tables. Formal Aspects of Programming 8, 679–705 (1996)

    Article  MATH  Google Scholar 

  8. Janicki, R., Wassyng, A.: On tabular expressions. In: CASCON 2003: Proceedings of the 2003 conference of the Centre for Advanced Studies on Collaborative research, pp. 92–106. IBM Press (2003)

    Google Scholar 

  9. Jing, M.: A table checking tool. SERG Report 384, McMaster University (2000)

    Google Scholar 

  10. Parnas, D.L.: Predicate logic for software engineering. IEEE Trans. Softw. Eng. 19(9), 856–862 (1993)

    Article  Google Scholar 

  11. Turner, D.A.: Total functional programming. Universal Computer Science 10(7), 751–768 (2004)

    MathSciNet  Google Scholar 

  12. Martin-Löf, P.: A theory of types. Technical Report 71–3, University of Stockholm (1971)

    Google Scholar 

  13. Coquand, T., Huet, G.: The calculus of constructions. Technical Report RR-0530, INRIA Rocquencourt (1986)

    Google Scholar 

  14. Girard, J.Y.: Une extension de l’interprétation de Gödel à l’analyse, et son application à l’élimination des coupures dans l’analyse et la théorie des types. In: Fenstad, J.E. (ed.) Proceedings of the Second Scandinavian Logic Symposium, North-Holland, Amsterdam (1971)

    Google Scholar 

  15. Barendregt, H.: Lambda calculi with types. In: Abramsky, Gabbay, Maibaum (eds.) Handbook of Logic in Computer Science, vol. 2. Clarendon (1992)

    Google Scholar 

  16. Spivey, M.: A functional theory of exceptions. Sci. Comput. Program 14(1), 25–42 (1990)

    Article  MATH  Google Scholar 

  17. Jansen, J.M., Koopman, P., Plasmeijer, R.: Efficient interpretation by transforming data types and patterns to functions. In: Proceedings of Trends in Functional Programming (TFP) (2006)

    Google Scholar 

  18. Morrisett, G., Walker, D., Crary, K., Glew, N.: From system F to typed assembly language. ACM Transactions on Programming Languages and Systems 21(3), 528–569 (1999)

    Article  Google Scholar 

  19. Mogensen, T.: Binding Time Aspects of Partial Evaluation. PhD thesis, University of Copenhagen (1989)

    Google Scholar 

  20. Buswell, S., Caprotti, O., Carlisle, D.P., Dewar, M.C., Gaëtano, M., Kohlhase, M.: The OpenMath Standard (Version 2.0). The OpenMath Society (2004)

    Google Scholar 

  21. Peters, D.K., Lawford, M., Trancón y Widemann, B.: An IDE for software development using tabular expressions. In: Proceedings of CASCON (2007)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Olaf Chitil Zoltán Horváth Viktória Zsók

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Trancón y Widemann, B., Parnas, D.L. (2008). Tabular Expressions and Total Functional Programming. In: Chitil, O., Horváth, Z., Zsók, V. (eds) Implementation and Application of Functional Languages. IFL 2007. Lecture Notes in Computer Science, vol 5083. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-85373-2_13

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-85373-2_13

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-85372-5

  • Online ISBN: 978-3-540-85373-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics