| C. Clack and S.L. Peyton Jones. Strictness analysis - a practical approach. In J.-P. Jouannaud, editor, Proceedings of the Functional Programming Languages and Computer Architecture Conference, pages 35--49. Springer-Verlag LNCS 201, September 1985. |
....in the profile of f . Thus, annotations play a secondary role in the global execution mechanism: an underlying strategy is assumed. Program annotations are usually obtained from some kind of strictness analysis. Strictness analyses are usually costly as they involve fixpoint computations [CP85, Myc80] In this case, the safety of this deviation of the main strategy is ensured because strictness analyses are derived from the semantics of the functional language. Sometimes, the programmer is allowed (but discouraged) to annotate the program by himself. In this case, however, there is no ....
C. Clack and S.L. Peyton-Jones. Strictness analysis -- a practical approach. In J.-P. Jouannaud, editor, Functional Programming and Computer Architecture, LNCS 201:35-39, Springer-Verlag, Berlin, 1985.
....idea of the next redex , call by value execution permits all function call arguments to be evaluated in parallel. Concurrency is a very important consideration in the design of an HDL, since, in contrast to software, hardware is inherently parallel. Note that strictness analysis [37] of a lazy language can be used to determine which of a function s parameters may safely be called by value (and hence those parameters which may be executed concurrently) However, decidability issues limit the accuracy of the analysis meaning that in practice opportunity for parallelism is not ....
CLACK, C., AND PEYTON-JONES, S. L. Strictness analysis -- a practical approach. In Functional Languages and Computer Architecture (1985), LNCS, Springer-Verlag, pp. 35-- 49.
....if and only if f(z, for all v. A function is said to be strict when it is strict in all of its arguments. An intuitive notion of strictness is that a function is strict if and only if it always requires the value of each its arguments (see also Strictness Analysis A Practical Approach [6]) Using this intuitive notion of strictness, signals are non strict because one does not always need every signal element in order to instantlate the signal. Let the function 1D signal be 26 the constructor of one dimensional signals. 1D signal is of type ( pair(Z x Z) x T x . x ....
C. Clack and S. L. Peyton-Jones. Strictness analysis -- a practical approach. In Functional Languages and Computer Architecture (Lecture Notes in Computer Science; 201), pages 35-49, Springer-Verlag, Berlin, September 1985.
....associated to each program point. In contrast, time stamps approximate the solution, by maintaining only one global context common to all program points. Other algorithms that address languages with dynamic flow have been developed in the context of strictness analysis. Clack and Peyton Jones [5] have introduced the frontier based algorithm. The algorithm reduces space usage by representing the solution only with a subset of relevant values. The technique has been developed for binary lattices. Hunt s PhD thesis [9] contains a generalization to distributive lattices. The top down vs. ....
Clack, C. and S. L. Peyton Jones, Strictness analysis---a practical approach, in: J.-P. Jouannaud, editor, Proceedings of the Second International Conference on Functional Programming and Computer Architecture, number 201 in Lecture Notes in Computer Science (1985), pp. 35--49.
....) rType(t2) rType(P rocess t1 t2 ) rType(t2) rType(8fi:t) rType(t) if fun(t) aTypes : Type [T ype] aTypes(t) if nonfun(t) aTypes(t1 t2 ) t1 : aTypes(t2 ) aTypes(P rocess t1 t2 ) t1 : aTypes(t2) aTypes(8fi:t) aTypes(t) if fun(t) Fig. 10. Functions nArgs , rType and aTypes [CP85,JC87,MH87] and widening narrowing operators [CC77,CC79,HH92,PP93] Here, we will represent functions by signatures in a way similar to [PP93] A signature for a function is obtained by probing such function with some explicitly chosen combinations of arguments. For example, in the strictness ....
C. Clack and S. L. Peyton Jones. Strictness analysis - A practical approach. In J.-P. Jouannaud, editor, Functional Programming Languages and Computer Architecture, pages 35--49. Springer-Verlag, Berlin, DE, 1985. Lecture Notes in Computer Science 201Proceedings of. Conference at Nancy.
....for future work. 2 The intuition behind abstract demand propagation The classical definition of the (simple) strictness of a function f f is strict iff x = f x = naturally leads to a forward view of strictness analysis, as exemplified by the work based on abstract interpretation [CP85, BHA85, Hug85]. Alternatively, using the contrapositive and assuming a simple flat domain such as the integers Z, the strictness of f can be expressed as follows: f is strict iff f x 2 Z ) x 2 Z. This leads to a backward approach to the process of strictness analysis [Hal87, HW87, Dyb87] to determine if a ....
....parallelism can be extracted. This would seem to indicate that strictness analysis per se is not sufficient and should be combined with some form of termination analysis. 6 Related work The initial research effort on strictness analysis focused on the use of forward abstract interpretation [Myc80, BHA85, HY86, CP85, Wad87]. Although these approaches were sufficiently powerful to deal with both first order and higherorder functional languages, they have had less success with the analysis of data structures. For example, using a forward abstract interpretation approach based on a four point domain, Wad87] can detect ....
C. Clack and S.L. Peyton Jones. Strictness analysis --- A practical approach. In Functional Prog. Lang. and Comp. Arch., pages 35--49. SpringerVerlag, LNCS-201, 1985.
....Language. 3 Abstract Interpretation without Fixpoints Abstract interpretation has a variety of applications in semantic analysis. Mycroft and Neil D. Jones [23] show that Hinley Milner type inference [14, 21] can be expressed in terms of abstract interpretation. Clack and Simon L. Peyton Jones [7] approach strictness analysis using abstract interpretation. However, in both of these applications, the abstraction is not meaning preserving. In our system, we construct an abstraction which maps to the domain of symbolic expressions, and we use our abstract interpreter as a meaning preserving ....
....termination. We prefer to describe the form of symbolic evaluation used by our equivalence prover as abstract interpretation, in a manner similar to Ammarguellat and Harrison [3] We demonstrate that abstract interpretation can be a powerful tool without the need for fixpoints [18] or frontiers [7]. 4 Notation Whenever possible we will express our algorithms and examples in Scheme, a dialect of Lisp invented by Steele and Sussman [26] Its modern form is described by Rees, Clinger, et al. 24] and explored in its expressiveness by Abelson and Sussman [1] For clarity, even our assembly ....
Clack, C. and Simon L. Peyton Jones, (1985), Strictness analysis--a practical approach, FPCA '85, Lecture Notes in Computer Science, 201, Springer-Verlag, Berlin, pp. 35-49.
....the graph of a function can be very high, both in space and time. Economical representations for the graphs of the abstract functions occurring in first order strictness analysis, known as frontiers, and an algorithm for constructing them, were developed by Chris Clack and Simon Peyton Jones ( CJ85, JC87] First order strictness analysis uses the lattice 2, which has two elements 0 and 1 with 1 A similar idea is already present in [Nie84] CHAPTER 1. INTRODUCTION 13 0 1, and the functions used in abstract interpretation are monotone. The naive representation of a function s graph is ....
....of the problems posed by higher order functions may be found in [Mar89] For the time being at least, we have to accept that in general it is necessary to construct the whole graph of abstract functions with recursive definitions. The frontiers algorithm was developed by Clack and Peyton Jones ( CJ85, JC87] as a way of exploiting the monotonicity of the abstract functions to make the construction of their graphs more efficient. In this chapter and the next we describe various extensions of the frontiers method. 7.1 Exploiting Monotonicity The original work on frontiers was concerned with ....
Chris Clack and Simon Peyton Jones. Strictness analysis - a practical approach. In Functional Programming Languages and Computer Architecture, pages 35--49. Springer Verlag, September 1985. LNCS 201.
....method developed by The authors address: 251 Mercer Street, New York, NY 10012, U.S.A. E mail: chuang cs.nyu.edu, goldberg cs.nyu.edu. This research has been supported, in part, by the National Science Foundation (#CCR 8909634) and DARPA (DARPA ONR #N00014 91 J1472) Clack Peyton Jones [3,10], Martin Hankin [9] and Hunt Hankin [5,6] Young [12] also discusses related issues. Let us briefly describe how the frontier representation of a function works. Take a function s strictness property as an example. A function s strictness property is usually described by a monotonic function ....
....1; 1; 1; 1; 1ig) to the greatest element x 0 : x 1 : x 10 : 1 (whose maximal 0 frontier is fg) in domain 2 11 2 . In such badly behaved cases, the frontier method is very inefficient compared to the symbolic evaluation method. This phenomenon has been observed by Clack Peyton Jones [3,10]. Hunt Hankin [5,6] further suggest that higher order functional programs are often badly behaved. In this paper, we will develop a syntactic method suitable for symbolic calculation of fixed points on finite domains. This method uses a simply typed calculus augmented with four predefined ....
[Article contains additional citation context not shown here]
Chris Clack and Simon L. Peyton Jones. Strictness analysis --- a practical approach. In Jean--Pierre Jouannaud, editor, Functional Programming Languages and Computer Architecture, pages 35--49. Nancy, France, September 1985. Lecture Notes in Computer Science, Volume 201, Springer--Verlag.
....gives different results on different compilers 5 2 A Brief Introduction to Strictness Analysis In this section we briefly overview strictness analysis and abstract interpretation before plunging into the details in the next section. Introductions to strictness analysis can also be found in [CP85, Hug90a] and in chapter 22 of [Pey87] 2.1 What is Strictness Analysis As mentioned previously we are interested in finding out when we can safely 6 evaluate the arguments to a function call before evaluating the function s body. There are two feasible formalisations: 1. A function is strict in an ....
Chris Clack and Simon L. Peyton Jones. Strictness analysis --- a practical approach. In Functional Programming and Computer Architecture, pages 35--49. SpringerVerlag, 1985. LNCS 201.
....in the profile of f . Thus, annotations play a secondary role in the global execution mechanism: an underlying strategy is assumed. Programs annotations are usually obtained from some kind of strictness analysis. Strictness analyses are usually costly, as they involve fixpoint computations [CP85, Myc80, Wad87] In this case, safety of this deviation of the main strategy is ensured because strictness analyses are derived from the semantics of the functional language. Sometimes, the programmer is allowed (but discouraged) to annotate the program by himself. In this case, however, there is ....
C. Clack and S.L. Peyton-Jones. Strictness analysis -- a practical approach. In J.-P. Jouannaud, editor, Functional Programming and Computer Architecture, LNCS 201:35-39, Springer-Verlag, Berlin, 1985.
....As a functional language, it is similar to the denotational semantics approach and has similar advantages and disadvantages. Both combine mathematical rigour with notational elegance. They provide highlevel, modular, declarative specifications that are succinct and amenable to formal analysis [4, 6, 16]. However, this formalism may not be immediately accessible to every reader and may not be the clearest way to formally specify a given semantics. In this respect, an advantage of our approach is that PFL is immediately accessible to our users and it is well suited to specifying the semantics of ....
....the high level, modular nature of functional languages makes them particularly natural for specification. Moreover, the fact that our active system is specified in a functional language means that it is amenable to a wealth of formal analysis techniques developed for functional programming [4, 6, 16]. Thus, we conjecture that when used in conjunction with a set of ECA rules, properties of the rule set, such as triggering and activation dependencies [1] between rules and the termination of the rule set, can be formally proved and this is an area of research that we intend to pursue. Other ....
Clack, C. and Peyton-Jones, S.L. "Strictness Analysis - A Practical Approach", in Jouannaud, J.P. (Editor) Functional Programming Languages and Computer Architecture. Springer-Verlag LNCS 201, 1985. pp 35-49.
....point. The correctness is shown with respect to the brute force algorithm by a routine inductive argument. 4.3 The frontiers machine Considering first order functions, the machine of the last subsection effectively computes a truth table representation of the function. Clack and Peyton Jones [5] proposed an alternative representation of first order functions: rather than representing a function by its truth table, one could just record the maximal argument values at which the result was 0 this gives a compact representation from which the truth table could be reconstructed. This ....
....frontiers optimisation can be described as a particular restriction on types. The main technical contribution of the paper is the notion of lazy types and the corresponding type system and algorithm. This addresses an issue that has taxed the abstract interpretation community greatly. The papers [4, 5, 7, 8, 9, 13, 16, 18] all tackle the same issue. The basic problem is that the choice to abstract functions by functions is a disastrous one for the efficiency of the analysis. We can classify the various proposals to circumvent the problem into two categories: 1) some of them [4, 8, 13, 16] strive for a better ....
C. Clack and S. L. Peyton Jones, Strictness Analysis - A Practical Approach, in J. P. Jouannaud (ed), Functional Programming Languages and Computer Architecture, LNCS 201, Springer Verlag, 1985.
.... One way to characterise a strict function is to state that f = i.e. given a non terminating argument, f will not terminate either) Information about the strictness properties of a function can be derived from the known strictness properties of the built in functions using strictness analysis [Cla85]. Continuity of functions. A function f is said to be continuous if, for every sequence of values d 1 v d 2 v : in the domain of f , f(tfd 1 ; d 2 ; g) tff d 1 ; f d 2 ; g. In other words, continuous functions preserve least upper bounds. Any function defined in the notation is ....
....given specific look up patterns: we are now implementing these ideas. Finally, it is clear that the user must be provided with sophisticated tools if they are to aid the optimisation process. Such tools have already been developed for functional languages, examples being strictness analysis [Cla85] and Cambridge LCF [Pau87] which can be used to prove properties of functions such as equivalence and termination. Acknowledgements We are grateful to the anonymous referees for their pertinent remarks on a previous version of this paper. The work described here has been supported by the U.K. ....
Clack, C. and Peyton-Jones, S. Strictness analysis - a practical approach, Proc. FPCA, Springer-Verlag LNCS 201, 1985.
....domains than in the analyses themselves. The more general the abstract domain, the more there are Pieter Hartel is on sabbatical leave from the University of Amsterdam practical and to a lesser extent theoretical difficulties when solving the domain equations by fixed point finding techniques [2]. Our first compiler [3] performed nothing more advanced than backwards abstract interpretation on a two point domain with a very simple fixed point finding algorithm and it showed promising results. Since then we have extended both the domain and the fixed point finding algorithm. From the outset ....
C. Clack and S. L. Peyton Jones. Strictness analysis - a practical approach. In J.- P. Jouannaud, editor, Second conf. on functional programming languages and computer architecture, LNCS 201, pages 35--49, Nancy, France, September 1985. Springer Verlag.
....typed programs [6] which Wadler extended to handle lazy lists [34] A common feature of this work is its emphasis on working in finite domains, in which fixed points can be calculated directly by iteration. Clack and Peyton Jones invented a technique for finding such fixed points efficiently [10]. 23 The foregoing are forwards analysis methods; backwards analysis is interesting because of its apparent ability to handle lazy data structures well. Hughes developed an ad hoc analyser for first order untyped languages that relied on algebraic simplification on infinite domains to analyse ....
C. Clack and S. L. Peyton-Jones, Strictness Analysis: a Practical Approach, in IFIP Conference on Functional Programming Languages and Computer Architecture, Nancy, France, S-V LNCS 201, 1985.
....chains. It is not obvious how to represent a general class of programs with complicated constructs for accessing memory, by using these forms. Several methods have been proposed for computing the fixpoints that arise in abstract interpretation. In particular, the frontiers algorithm presented in [29, 30, 31] is an efficient means of computing analysis problems over binary lattices, for example, strictness analysis [32] However, this algorithm is suitable only for the binary lattice; for general lattices, it is unclear how to define frontiers. In addition, the minimal function graph [22] was proposed ....
Chris Clack and Simon L. Peyton Jones. Strictness analysis - a practical approach. In IFIP Symposium on Functional Programming Languages and Computer Architecture, Lecture Notes in Computer Science 201, pages 35--49, 1985.
....oe can be as large as the work w, resulting in a running time of O(log(pd) Delta (w=p d) which is not work efficient. However, since synchronizations are expensive in any implementation, there has been considerable work in reducing the number of synchronizations using compile time analysis [19, 15, 35, 36, 25]. We plan to explore the use of such methods to improve the running time of our implementation. The implementation described for the scheduling algorithm assumes that a constant fraction of the processors are assigned to the scheduler computation, eliminating them from the work force of the ....
C. D. Clack and S. L. Peyton Jones. Strictness analysis -- a practical approach. In Proc. Functional Programminng Languages and Computer Architecture. SpringerVerlag LNCS 201, Sept. 1985.
....but these do not seem to have a detrimental effect on the overall result. The overall effect of this technology is to considerably expand the range of programs for which the Frontiers algorithm gives useful results reasonably quickly. 1 Introduction The Frontiers algorithm was introduced in [CP85 ] as an allegedly efficient way of doing forwards strictness analysis, although this presentation was restricted to the two point, first order, monomorphic case. Further work showed what a versatile beast it was: higher order analysis [HH91] and arbitrary non flat datatypes [Sew91] were ....
C. Clack and S.L. Peyton Jones. Strictness analysis - a practical approach. In J.-P. Jouannaud, editor, Proceedings of the Functional Programming Languages and Computer Architecture Conference, pages 35--49. Springer-Verlag LNCS 201, September 1985.
....T oleranceb j (n) 6. Go to step 1 if changes to the partitioning of b occur. Figure 10: Algorithm 3 that Partitions General Blocks The complexity of the algorithm is O(PN 3 ) where P is the largest number of paths of a function in the program. 6 Comparison with Related Work Strictness analysis [16, 6, 7] has similar goals to that of partitioning. It tries to determine which arguments of a function 6 A small change is needed. We have to make sure the dummy operators introduced do not fall into any partition. are strict, so that they may be evaluated directly instead of building a ....
C. Clack and S. L. Peyton-Jones. Strictness Analysis -- A Practical Approach. In Proceedings of ACM Conference of Functional Programming Languages and Computer Architecture. ACM, September 1985.
No context found.
C. Clack and S.L. Peyton Jones. Strictness analysis - a practical approach. In J.-P. Jouannaud, editor, Proceedings of the Functional Programming Languages and Computer Architecture Conference, pages 35--49. Springer-Verlag LNCS 201, September 1985.
No context found.
C. Clack and S. L. Peyton Jones, `Strictness analysis---a practical approach', in J.-P. Jouannaud (ed.), 2nd Functional Programming Languages and Computer Architecture, LNCS 201, Nancy, France, September 1985, Springer-Verlag, pp. 35--49.
No context found.
Clack, C. and Peyton-Jones, S. Strictness analysis - a practical approach, Proc. FPCA, Nancy, September 1985, pp 35-49. Springer-Verlag LNCS 201.
No context found.
C. Clark and S.L. Peyton Jones. Strictness analysis - a practical approach. In Proceedings of the 1985 Functional Programming Languages and Computer Architecture Conference, pages 35-49, LNCS 201 Springer-Verlag, 1985.
No context found.
C. Clack and S. Peyton Jones. Strictness analysis---a practical approach. In Proceedings FPCA'85, volume 201 of LNCS, pages 35--49. Springer-Verlag, September 1985.
First 50 documents
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