Pure Pattern Calculus

The pure pattern calculus generalises the pure lambda-calculus by basing computation on pattern-matching instead of beta-reduction. The simplicity and power of the calculus derive from allowing any term to be a pattern. As well as supporting a uniform approach to functions, it supports a uniform approach to data structures which underpins two new forms of polymorphism. Path polymorphism supports searches or queries along all paths through an arbitrary data structure. Pattern polymorphism supports the dynamic creation and evaluation of patterns, so that queries can be customised in reaction to new information about the structures to be encountered. In combination, these features provide a natural account of tasks such as programming with XML paths. As the variables used in matching can now be eliminated by reduction it is necessary to separate them from the binding variables used to control scope. Then standard techniques suffice to ensure that reduction progresses and to establish confluence of reduction.

[1]  Delia Kesner Reasoning about Redundant Patterns , 1997, J. Funct. Log. Program..

[2]  J. Davenport Editor , 1960 .

[3]  Johan Jeuring,et al.  Generic Programming, IFIP TC2/WG2.1 Working Conference on Generic Programming, July 11-12, 2002, Dagstuhl, Germany , 2003, Generic Programming.

[4]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[5]  C. Barry Jay Higher-Order Patterns , 2004 .

[6]  Wolfram Kahl,et al.  Basic Pattern Matching Calculi: Syntax, Reduction, Confluence, and Normalisation , 2003 .

[7]  David B. Skillicorn,et al.  Programming with heterogeneous structures: manipulating XML data using bondi , 2006, ACSC.

[8]  Patrik Jansson Functional Polytypic Programming , 2000 .

[9]  Jan Willem Klop,et al.  Combinatory reduction systems , 1980 .

[10]  C. Barry Jay,et al.  The pattern calculus , 2004, TOPL.

[11]  Delia Kesner,et al.  Pattern matching as cut elimination , 2004, Theor. Comput. Sci..

[12]  Delia Kesner,et al.  Pattern matching as cut elimination , 1999, Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158).

[13]  Val Tannen,et al.  A typed pattern calculus , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[14]  C. B. Jay,et al.  Dealing with Complex Patterns in XML Processing , 2005 .

[15]  J. Robin B. Cockett,et al.  Shapely Types and Shape Polymorphism , 1994, ESOP.

[16]  Claude Kirchner,et al.  Pure patterns type systems , 2003, POPL '03.

[17]  Richard S. Bird,et al.  Generic functional programming with types and relations , 1996, Journal of Functional Programming.

[18]  Julien Forest,et al.  A Weak Calculus with Explicit Operators for Pattern Matching and Substitution , 2002, RTA.

[19]  Rod M. Burstall,et al.  Proving Properties of Programs by Structural Induction , 1969, Comput. J..

[20]  Delia Kesner,et al.  Expression Reduction Systems with Patterns , 2003, RTA.

[21]  Eugenio Moggi,et al.  Functorial ML , 1998 .

[22]  Claude Kirchner,et al.  Pure patterns type systems , 2003, POPL '03.