Abstract
Methods for mathematically basic and precise description of system behavior at discrete interfaces have been developed by David Parnas and his groups and collaborators over many years. Total functions can play a crucial role as constructive and effectively executable semantics for various levels of these descriptions. Straightforward analysis and transformation techniques for functional programs, particularly effective for total functions, can be used as significant steps towards automated generation of implementations. Theoretical claims are supported by practical examples. The focus is on insight into applications from the functional perspective rather than on innovations in functional programming itself.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Baber, R., Parnas, D., Vilkomir, S., Harrison, P., O’Connor, T.: Disciplined methods of software specification: A case study. In: Proc. ITCC 2005, vol. 2, pp. 428–437. IEEE Computer Society (2005)
Balat, V., Danvy, O.: Strong normalization by type-directed partial evaluation and run-time code generation. In: Leroy, X., Ohori, A. (eds.) TIC 1998. LNCS, vol. 1473, pp. 240–252. Springer, Heidelberg (1998)
Bartoussek, W., Parnas, D.L.: Using assertions about traces to write abstract specifications for software modules. In: Bracchi, G., Lockemann, P.C. (eds.) ECI 1978. LNCS, vol. 65, pp. 211–236. Springer, Heidelberg (1978)
Desharnais, J., Khédry, R., Mili, A.: Interpretation of tabular expressions using arrays of relations. In: Relational Methods for Computer Science Applications, pp. 3–13. Physica Verlag (2001)
Feng, X., Parnas, D.L., Tse, T.H.: Tabular expression-based testing strategies: A comparison. In: Proc. MUTATION 2007. IEEE Computer Society (2007)
Feng, X., Parnas, D.L., Tse, T.H.: Fault propagation in tabular expression-based specifications. In: Proc. COMPSAC 2008, pp. 180–183. IEEE Computer Society (2008)
Feng, X., Parnas, D.L., Tse, T.H., O’Callaghan, T.: A comparison of tabular expression-based testing strategies. IEEE Trans. Software Eng. 37(5), 616–634 (2011)
Furusawa, H., Kahl, W.: Table algebras: Algebraic structures for tabular notation, including nested headers. Programming science technical report, AIST (2004)
ISO/IEC: Information Technology – Z Formal Specification Notation – Syntax, Type System and Semantics (2002)
Janicki, R.: Towards a formal semantics of parnas tables. In: Proc. ICSE 1995, pp. 231–240. ACM (1995)
Janicki, R., Khédry, R.: On a formal semantics of tabular expressions. Sci. Comp. Progr. 39(2-3), 189–213 (2001)
Janicki, R., Parnas, D.L., Zucker, J.: Tabular representations in relational documents. In: Relational Methods in Computer Science, pp. 184–196. Springer (1997)
Jin, Y., Parnas, D.L.: Defining the meaning of tabular mathematical expressions. Sci. Comput. Program. 75(11), 980–1000 (2010)
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 (2001) (accepted for publication, 2004)
Lawford, M., McDougall, J., Froebel, P., Moum, G.: Practical application of functional and relational methods for the specification and verification of safety critical software. In: Rus, T. (ed.) AMAST 2000. LNCS, vol. 1816, pp. 73–88. Springer, Heidelberg (2000)
Liu, Z., Parnas, D.L., Trancón y Widemann, B.: Documenting and verifying systems assembled from components. Frontiers of Computer Science in China 4(2), 151–161 (2010)
Pantelic, V., Jin, X., Lawford, M., Parnas, D.L.: Inspection of concurrent systems: Combining tables, theorem proving and model checking. In: Proc. SERP 2006, pp. 629–635 (2006)
Pantelic, V.: Combining tables, theorem proving and model checking. Msc thesis, McMaster University (2006)
Parnas, D.L., Wang, Y.: The trace assertion method of module interface specification. CIS Report 89-261, Queen’s University (1989)
Parnas, D.L.: Tabular representation of relations. CLR Report 260, McMaster University (1992)
Parnas, D.L.: Predicate logic for software engineering. IEEE Trans. Software Eng. 19(9), 856–862 (1993)
Parnas, D.L.: Inspection of safety-critical software using program-function tables. In: IFIP Congress, vol. (3), pp. 270–277 (1994)
Parnas, D.L., Madey, J., Iglewski, M.: Precise documentation of well-structured programs. IEEE Trans. Software Eng. 20(12), 948–976 (1994)
Parnas, D.L., Peters, D.K.: An easily extensible toolset for tabular mathematical expressions. In: Cleaveland, W.R. (ed.) TACAS/ETAPS 1999. LNCS, vol. 1579, pp. 345–359. Springer, Heidelberg (1999)
Peters, D., Lawford, M., Trancón y Widemann, B.: An ide for software development using tabular expressions. In: Proc. CASCON 2007, pp. 248–251. ACM (2007)
Sepehr, S.: Adding Nested Headers and a Proper Gtk-Based GUI to The Haskell Table Tools. Master’s thesis, McMaster University (2010)
Trancón y Widemann, B., Parnas, D.L.: Tabular expressions and total functional programming. In: Chitil, O., Horváth, Z., Zsók, V. (eds.) IFL 2007. LNCS, vol. 5083, pp. 219–236. Springer, Heidelberg (2008)
Trancóny Widemann, B.: The recursion scheme of the trace function method. In: Proc. ENASE 2012, pp. 146–155 (2012)
Trancóny Widemann, B.: State-based simulation of linear course-of-value iteration. In: Proc. CMCS 2012. Tallinn University of Technology (2012); short contribution
Uustalu, T., Vene, V.: Primitive (co)recursion and course-of-value (co)iteration, categorically. Informatica, Lith. Acad. Sci. 10(1), 5–26 (1999)
Wang, Y., Parnas, D.L.: Simulating the behaviour of software modules by trace rewriting. In: Proc. ICSE 1993, pp. 14–23. IEEE Computer Society (1993)
Wang, Y., Parnas, D.L.: Trace rewriting systems. In: Rusinowitch, M., Remy, J.-L. (eds.) CTRS 1992. LNCS, vol. 656, pp. 343–356. Springer, Heidelberg (1993)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Trancón y Widemann, B. (2014). Total Functional Software Engineering. In: McCarthy, J. (eds) Trends in Functional Programming. TFP 2013. Lecture Notes in Computer Science, vol 8322. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-45340-3_1
Download citation
DOI: https://doi.org/10.1007/978-3-642-45340-3_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-45339-7
Online ISBN: 978-3-642-45340-3
eBook Packages: Computer ScienceComputer Science (R0)