| Ph. Schnoebelen, Refined Compilation of Pattern Matching for Functional Languages, Science of Computer Programming, 1988. |
....and Wadler are economical in terms of space usage, but may reexamine symbols in the input term. In the worst case, these methods can degenerate to the naive method of testing each pattern separately against the input term. In contrast, the methods of Christian [4] Graf [9] and Schnoebelen [24] avoid reexamining symbols, but this is achieved at the cost of increasing the space requirements. In fact, Graf and Schnoebelen show that the upper bounds on the size of their automata are exponential. One way to improve both space and matching time is to engineer a traversal order to suit the ....
....the upper bound on size of the automaton obtained using such a (deliberately chosen) non optimal traversal order. Our lower bounds refer to the lower bounds obtained for any possible traversal order. Figure 6 summarizes our results. The proof on upper bound on space follows from the result of [24]. Since a left to right traversal is simply a special case of an adaptive traversal, the fact that there always exists a left to right traversal order with an automaton size less than O( Q n i=1 jl i j) implies the existance of an adative traversal with these bounds. We now present the details ....
Ph. Schnoebelen, Refined Compilation of Pattern Matching for Functional Languages, Science of Computer Programming, 1988.
....method, based on a syntactic comparison, is provided. Figure 14 shows the abstract implementation The default implementation of this class is based on the syntactic representation of values and on the axioms of the ADT. For each operation in ADT, we orient the axioms into a set of rewrite rules [10]. The core of the associated method is mainly a multiple choice between a set of applicable axiom. Undefined cases throw exceptions. Figure 15 shows a fragment of the default axiomatic implementation of the lists highlighting the operation size . We see that both of the two axioms defining this ....
Ph. Schnoebelen. Refined compilation of pattern-matching for functionnal languages. Science of Computer Programming, pages 11:133-159, 1988.
....ground convergent constructor based rewrite system is equivalent to a (ground convergent constructor based) rewrite system where all the patterns are linear. Term subtraction and the previous results are also relevant to the compilation of pattern matching in functional languages, for example [24, 40]. Deciding whether a term is covered by a disjunction of terms is closely related to the concept of ground reducibility in term rewriting. Ground reducibility is important because it has application in proving that an algebraic specification is sufficiently complete and in proving inductive ....
Ph. Schnoebelen, Refined Compilation of Pattern-matching for Functional Languages, Proc. Workshop on Algebraic and Logic Programming, LNCS 343, 233--243, 1988.
....tree of depth 13, this takes .57 seconds without RC optimizations, and .143 seconds with the RC optimizations. Note that the reverse function (most frequently called in the example) profits maximally from the RC optimization; no space is consumed at all. Our code takes .77 seconds for Tree. In [Sch88], rewrite rules are translated into an abstraction of imperative programming languages; if then else structures. The algorithm is claimed to be very similar to [Aug85] but it is optimized with respect to the domain over which the function should be compiled. An interesting point is that the ....
Ph. Schnoebelen. Refined compilation of pattern-matching for functional languages. Science of Computer Programming, (11):133--159, 1988.
....of the variable flow. The scope of variables V 1 ; Vn are the patterns P i , the boolean guards E i , and the statements I i . The patterns P 1 ; Pn must be exhaustive, i.e. they must cover all the possible values of type T . There exist algorithms that check statically this condition [Sch88] To make exhaustive the list of pattern one have to add an any of T I n 1 clause at the end of the list. The evaluation of a case statement is made as follows. Let N 0 be the value of the expression E 0 ; N 0 is matched sequentially over the clauses corresponding to patterns P 1 ; ....
Philippe Schnoebelen. Refined Compilation of Pattern-Matching for Functional Languages. Science of Computer Programming, 11:133--159, 1988.
....A be a subset of the F algebra A. Definition 2.1 can be extended to solutions in A: a solution in A is a A solution such that every variable in U is mapped to an element of A. 2.3 Examples 2.3. 1 A = T (F ) or A = T (F; X) This is the interpretation used for complement problems (for example [Sch87, Sch88b], Thi84] BMPT90] LM87] Com86] and others) This interpretation is also considered in e.g [Ven87] CL89] Mah88a] Bur88] Kun87b, Kun87a, Nic87] It appears that the main point for such interpretations is to know whether F is finite or infinite: the rules for solving equational formulas ....
Ph. Schnoebelen. Refined compilation of pattern-matching for functional languages. Science of Computer Programming, 11(2):133--159, December 1988.
....the rules. More precisely, for compiling the second rule, we know that the first one cannot be applied. Hence, we have some knowledge about the ground terms on which the second rule should be tried : they are in the complement of the first left hand side. This is effectively used in, for example [Sch88a]. Another kind of term complements is used in [Lav87, Lav88, PS90] in order to produce a non ambiguous set of patterns . ffl There are basically two kinds of applications of complement problems in logic programming. Both rely on the fact that the declarative semantics of a logic program is its ....
Ph. Schnoebelen. Refined compilation of pattern-matching for functional languages. In Proc. 1st Workshop on Algebraic and Logic Programming, Gaussig, LNCS 343. Springer-Verlag, November 1988.
....terms) it is hard to reduce the number of states [2] whereas reducing breadth is not. Therefore in the rest of the paper, we will use breadth as the measure of size of the automaton. We now present the details of lower bound proofs. The proofs for upper bounds can be established along the lines of [4, 12]. The space bounds given in this section are all independent of the 2 The size of a pattern is the number of nonvariable symbols in it. Class of Patterns Lower bound Upper bound Lower bound Upper bound on space on space on time on time Unambiguous, no priority Omega Gamma2 n ) O( Q n i=1 ....
Ph. Schnoebelen, Refined Compilation of Pattern Matching for Functional Languages, Science of Computer Programming, 11, pp. 133--159, 1988.
....This will often have to be completed with externally supplied annotations since the CO OPN language does not provide a syntax for indicating the mode of method parameters. Generate code for pattern matching on algebraic abstract data types by following Schnoebelen s compilation algorithm [23]. Merge into single functions the preconditions, transitions and postconditions gathered from the different axioms defining each method. The compilation should mask as much as possible the notion of axiom: The larger the operations of the abstract code, the better the potential for optimization ....
Ph. Schnoebelen, "Refined Compilation of Pattern-Matching for Functional Languages", Science of Computer Programming, 11:133-159, 1988.
No context found.
Ph. Schnoebelen. Refined compilation of pattern-matching for functional languages. Science of Computer Programming, (11):133--159, 1988.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC