Algebraic Correctness Proofs for Compiling Recursive Function Definitions with Strictness Information

Adding appropriate strictness information to recursive function definitions we achieve a uniform treatment of lazy and eager evaluation strategies. By restriction to first-order functions over basic types we develop a pure stack implementation that avoids a heap even for lazy arguments. We present algebraic definitions of denotational, operational, and stack-machine semantics and prove their equivalence by means of structural induction.

[1]  J. M. Cadiou,et al.  Recursive definitions of partial functions and their computations , 1972, Proving Assertions About Programs.

[2]  Bernhard Steffen,et al.  Generating Data Flow Analysis Algorithms from Modal Specifications , 1993, Sci. Comput. Program..

[3]  Manfred Nagl,et al.  A universal component for the administration in distributed and integrated development environments , 1994 .

[4]  Guido Moerkotte,et al.  Nested Queries in Object Bases , 1993, DBPL.

[5]  Bernhard Steffen,et al.  Model Checking for Context-Free Processes , 1992, CONCUR.

[6]  Andy Schürr,et al.  Specification of Graph Translators with Triple Graph Grammars , 1994, WG.

[7]  John McCarthy,et al.  Recursive functions of symbolic expressions and their computation by machine, Part I , 1960, Commun. ACM.

[8]  Bernhard Westfechtel,et al.  Feedback handling in dynamic task nets , 1997, Proceedings 12th IEEE International Conference Automated Software Engineering.

[9]  Bernhard Steffen,et al.  Pushdown Processes: Parallel Composition and Model Checking , 1994, CONCUR.

[10]  Thomas Wilke,et al.  CTL+ is Exponentially more Succinct than CTL , 1999, FSTTCS.

[11]  Christopher Strachey,et al.  Toward a mathematical semantics for computer languages , 1971 .

[12]  Manfred A. Jeusfeld,et al.  Query Optimization in Deductive Object Bases , 1991, Query Processing for Advanced Database Systems, Dagstuhl.

[13]  Victor Ok Li PERFORMANCE MODELS OF DISTRIBUTED DATABASES. , 1981 .

[14]  P. J. Landin The Mechanical Evaluation of Expressions , 1964, Comput. J..

[15]  Stefan Kahrs Polymorphic Type Checking by Interpretation of Code , 1992 .

[16]  C. Lewerentz,et al.  Integrated Project Team Management in a Software Development Environment , 1988 .

[17]  Werner Damm,et al.  Specifying distributed computer architectures in AADL , 1989, Parallel Comput..

[18]  Rance Cleaveland,et al.  The concurrency workbench: a semantics-based tool for the verification of concurrent systems , 1993, TOPL.

[19]  G. Winskel The formal semantics of programming languages , 1993 .

[20]  Henry N. Adorna 3-Party Message Complexity is Better than 2-Party Ones for Proving Lower Bounds on the Size of Minimal Nondeterministic Finite Automata , 2001, DCFS.

[21]  Andy Schürr Logic Based Programmed Structure Rewriting Systems , 1996, Fundam. Informaticae.

[22]  Matthias Jarke,et al.  Workflow support for failure management in federated organizations , 1998, Proceedings of the Thirty-First Hawaii International Conference on System Sciences.

[23]  Thomas Noll On the First-Order Equivalence of Call-by-Name and Call-by-Value , 1994, CAAP.

[24]  Manfred Nagl,et al.  On Integration Mechanisms within a Graph-based Software Development Environment , 1987, WG.

[25]  Stefan Gruner Einige Anmerkungen zur graphgrammatischen Spezifikation von Integrationswerkzeugen nach Westfechtel, Janning, Lefering und Schürr , 1998 .

[26]  Marko C. J. D. van Eekelen,et al.  CLEAN: A language for functional graph writing , 1987, FPCA.

[27]  Markus Mohnen,et al.  An open framework for data-flow analysis in Java: extended abstract , 2002, PPPJ/IRE.

[28]  Bernhard Steffen,et al.  Characteristic Formulae for Processes with Divergence , 1994, Inf. Comput..

[29]  Martin Lefering Development of Incremental Integration Tools Using Formal Specifications , 1994 .

[30]  Markus Mohnen Efficient Compile-Time Garbage Collection for Arbitrary Data Structures , 1995, PLILP.

[31]  Martin Grohe,et al.  An existential locality theorem , 2004, Ann. Pure Appl. Log..

[32]  Friedrich L. Bauer,et al.  Sequential formula translation , 1960, CACM.

[33]  Olaf Chitil,et al.  Functional Programming , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[34]  Bernhard Steffen,et al.  The Interprocedural Coincidence Theorem , 1992, CC.

[35]  Thierry Cachat The Power of One-Letter Rational Languages , 2001, Developments in Language Theory.

[36]  S. C. Kleene,et al.  Introduction to Metamathematics , 1952 .

[37]  Matthias Jarke,et al.  ConceptBase - A Deductive Object Base Manager , 1994 .

[38]  Markus Mohnen Interfaces with default implementations in Java , 2002, PPPJ/IRE.

[39]  Bernhard Steffen,et al.  Compositional Minimization of Finite State Systems , 1990, CAV.

[40]  Jürgen Giesl,et al.  Innermost Termination of Context-Sensitive Rewriting , 2002, Developments in Language Theory.

[41]  Narciso Martí-Oliet,et al.  The Maude 2.0 System , 2003, RTA.

[42]  Matthias Jarke,et al.  Intelligent Networks as a Data Intensive Application (INDIA) , 1994, ADB.

[43]  Dana S. Scott,et al.  Outline of a Mathematical Theory of Computation , 1970 .

[44]  Roland Baumann Client / Server Distribution in a Structure-Oriented Database Management System , 1997 .

[45]  Manfred A. Jeusfeld,et al.  An Executable Meta Model for Re-Engineering of Database Schemas , 1994, Int. J. Cooperative Inf. Syst..

[46]  Matthias Jarke,et al.  Simulating the Impact of Information Flows in Networked Organizations , 1996, ICIS.

[47]  José Meseguer,et al.  An Introduction to OBJ 3 , 1988, CTRS.

[48]  Werner Hans,et al.  Full Indexing for Lazy Narrowing , 1993 .

[49]  David de Frutos-Escrig,et al.  A Complete Proof System for Timed Observations , 1991, TAPSOFT, Vol.1.

[50]  John McCarthy,et al.  Correctness of a compiler for arithmetic expressions , 1966 .

[51]  Matthias Jarke,et al.  Three Aspects of Intelligent Cooperation in the Quality Cycle , 1993, Int. J. Cooperative Inf. Syst..

[52]  Stefan Gruner Schemakorrespondenzaxiome unterstützen die paargrammatische Spezifikation inkrementeller Integrationswerkzeuge , 1997 .

[53]  Rita Loogen,et al.  Dynamic Detection of Determinism in Functional Languages , 1991, Theor. Comput. Sci..

[54]  Markus Mohnen,et al.  Optimising the memory management of higher order functional programs , 1997 .

[55]  Razvan Diaconescu,et al.  An overview of CafeOBJ , 1998, WRLA.

[56]  Alexandre Tessier Declarative Debugging in Constraint Logic Programming , 1996, ASIAN.

[57]  Andy Schürr,et al.  Introduction to PROGRESS, an Attribute Graph Grammar Based Specification Language , 1990, WG.

[58]  Sheila A. Greibach,et al.  Theory of Program Structures: Schemes, Semantics, Verification , 1976, Lecture Notes in Computer Science.

[59]  Peter Klein Designing Software with Modula–3 , 2007 .

[60]  Kai Jakobs,et al.  Timer Handling in High-Performance Transport Systems , 1993, Integrated Broadband Communications.

[61]  Matthias Nicola,et al.  Design and Evaluation of Wireless Health Care Information Systems in Developing Countries , 1998 .

[62]  Philip Wadler Lazy versus strict , 1996, CSUR.

[63]  Christian Prehofer,et al.  Higher-order narrowing with definitional trees , 1999, Journal of Functional Programming.

[64]  J. J. Ruzz,et al.  A VHDL Speci cation of a Shared Memory Parallel Machine for Babel , 1998 .

[65]  Guido Moerkotte,et al.  Query Optimization Techniques Exploiting Class Hierarchies , 1995 .

[66]  Werner Hans,et al.  A Complete Indexing Scheme for WAM-based Abstract Machines , 1992, PLILP.

[67]  Glynn Winskel,et al.  The formal semantics of programming languages - an introduction , 1993, Foundation of computing series.

[68]  Ludwig Staiger,et al.  On Syntactic Congruences for Omega-Languages , 1993, Theor. Comput. Sci..

[69]  J. W. de Bakker,et al.  Least fixed points revisited , 1975, Lambda-Calculus and Computer Science Theory.

[70]  S. Gruner Fine-grained and Structure-Oriented Document Integration Tools are Needed for Development Processes , 2007 .

[71]  Matthias Jarke,et al.  Exploring the Semantic Structure of Technical Document Collections: A Cooperative Systems Approach , 2000, CoopIS.

[72]  Rance Cleaveland,et al.  The Concurrency Workbench , 1990, Automatic Verification Methods for Finite State Systems.

[73]  Marcin Jurdzinski,et al.  A Discrete Strategy Improvement Algorithm for Solving Parity Games , 2000, CAV.

[74]  Fundamenta Informaticae,et al.  The Sigma-Semantics : A Comprehensive Semantics for Functional Programs , .

[75]  Andy Schürr PROGRESS: A VHL-Language Based on Graph Grammars , 1990, Graph-Grammars and Their Application to Computer Science.

[76]  Rudolf Mathar,et al.  Analyzing a distributed slot assignment protocol by Markov chains , 1992, [1992 Proceedings] Vehicular Technology Society 42nd VTS Conference - Frontiers of Technology.

[77]  Matthias Jarke,et al.  Incremental Maintenance of Externally Materialized Views , 1996, VLDB.

[78]  George Horatiu Botorog High level parallel programming and the efficient implementation of numerical algorithms , 1998 .

[79]  Andy Schürr,et al.  PROGRES , A Visual Language and Environment for PROgramming with Graph REwriting Systems 1 , 1994 .

[80]  Jürgen Giesl,et al.  Transformation techniques for context-sensitive rewrite systems , 2004, J. Funct. Program..

[81]  Christof Löding,et al.  Solving the Sabotage Game Is PSPACE-Hard , 2003, MFCS.

[82]  Benedikt Bollig,et al.  Message-passing automata are expressively equivalent to EMSO logic , 2006, Theor. Comput. Sci..

[83]  Otto Spaniol,et al.  File transfer in high-speed token ring networks: performance evaluation by approximate analysis and simulation , 1988, IEEE J. Sel. Areas Commun..

[84]  Andreas J. Winter,et al.  Modules and Updatable Graph Views for PROgrammed Graph REwriting Systems , 1997 .

[85]  A. Tarski A LATTICE-THEORETICAL FIXPOINT THEOREM AND ITS APPLICATIONS , 1955 .

[86]  U. Quernheim Satellite communication protocols-a performance comparison considering on-board processing , 1988, 8th European Conference on Electrotechnics, Conference Proceedings on Area Communication.

[87]  Thomas Noll Klassen applikativer Programmschemata und ihre Berechnungsstärke , 1995 .

[88]  K. Jacobs OSI-an appropriate basis for group communication? , 1989, IEEE International Conference on Communications, World Prosperity Through Communications,.

[89]  Guido Moerkotte,et al.  Efficient Evaluation of Aggregates on Bulk Types , 1995, DBPL.

[90]  Matthias Jarke,et al.  Sharing Processes: Team Coordination in Design Repositories , 1992, Int. J. Cooperative Inf. Syst..

[91]  RWTHAachen,LehrstuhlfurInformatikII Ahornstrae55,W-5100Aachen,Germany , .

[92]  Pär J. Ågerfalk,et al.  The Language Action Perspective on Communication Modelling , 1999 .

[93]  Joseph A. Goguen,et al.  Initial Algebra Semantics and Continuous Algebras , 1977, J. ACM.

[94]  Jürgen Giesl,et al.  Size-Change Termination for Term Rewriting , 2003, RTA.

[95]  J. Klop,et al.  WST ’ 04 7 th International Workshop on Termination , 2004 .

[96]  Andy Schürr,et al.  Computing with Graphs and Graph Rewriting , 1999 .

[97]  Stackbased ReductionGuido Hogen,et al.  Parallel Functional Implementations: Graphbased vs. Stackbased Reduction , 1995 .

[98]  M. O. Berger,et al.  k-coloring vertices using a neural network with convergence to valid solutions , 1994, Proceedings of 1994 IEEE International Conference on Neural Networks (ICNN'94).

[99]  Gottfried Vossen,et al.  SUXESS: Towards a Sound Unification of Extensions of the Relational Data Model , 1991, Data Knowl. Eng..

[100]  Ludwig Staiger,et al.  Finite Acceptance of Infinite Words , 1997, Theor. Comput. Sci..

[101]  Zohar Manna,et al.  Fixpoint approach to the theory of computation , 1972, CACM.

[102]  Bernhard Steffen,et al.  An Elementary Bisimulation Decision Procedure for Arbitrary Context-Free Processes , 1995, MFCS.

[103]  Michael Portz,et al.  A New Class of Cryptosystems Based on Interconnection Networks , 1991 .

[104]  Olaf Chitil,et al.  The c-Semantics: A Comprehensive Semantics for Functional Programs , 1997, Fundam. Informaticae.

[105]  Matthias Jarke,et al.  From Relational to Object-Oriented Integrity Simplification , 1991, DOOD.

[106]  Jürgen Giesl,et al.  Deciding Inductive Validity of Equations , 2003, CADE.