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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Parnas, D.L.: Tabular representation of relations. CRL Report 260, McMaster University (1992)
Balaban, A., Bane, D., Jin, Y., Parnas, D.L.: Mathematical model of tabular expressions. SQRL draft (2007) (to be published), David.Parnas@ul.ie
Parnas, D.L., Madey, J., Iglewski, M.: Precise documentation of well-structured programs. IEEE Trans. Softw. Eng. 20(12), 948–976 (1994)
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)
Kahl, W.: Compositional syntax and semantics of tables. SQRL Report 15, McMaster University (2003)
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/
Zucker, J.: Transformations of normal and inverted function tables. Formal Aspects of Programming 8, 679–705 (1996)
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)
Jing, M.: A table checking tool. SERG Report 384, McMaster University (2000)
Parnas, D.L.: Predicate logic for software engineering. IEEE Trans. Softw. Eng. 19(9), 856–862 (1993)
Turner, D.A.: Total functional programming. Universal Computer Science 10(7), 751–768 (2004)
Martin-Löf, P.: A theory of types. Technical Report 71–3, University of Stockholm (1971)
Coquand, T., Huet, G.: The calculus of constructions. Technical Report RR-0530, INRIA Rocquencourt (1986)
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)
Barendregt, H.: Lambda calculi with types. In: Abramsky, Gabbay, Maibaum (eds.) Handbook of Logic in Computer Science, vol. 2. Clarendon (1992)
Spivey, M.: A functional theory of exceptions. Sci. Comput. Program 14(1), 25–42 (1990)
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)
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)
Mogensen, T.: Binding Time Aspects of Partial Evaluation. PhD thesis, University of Copenhagen (1989)
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)
Peters, D.K., Lawford, M., Trancón y Widemann, B.: An IDE for software development using tabular expressions. In: Proceedings of CASCON (2007)
Author information
Authors and Affiliations
Editor information
Rights 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)