| D. Michie. `Memo' functions and machine learning. Nature, 218:19--22, 1968. |
....description of the model elimination procedure. We use Prolog notation in which variables are represented by capital letters and functions, constants and predicates are represented by lowercase letters. Although the juxtaposition of vowels in this word may be inharmonious, recall memo izing [26] used to mean essentially what we call caching. The ME proof procedure uses a kind of annotated clause called a chain. Roughly, the annotations in a chain record previous inferences that have been made in the current sequence of inference steps and identify information that can be used as the ....
D. Michie. Memo functions and machine learning. Nature, 218:19--22, April 1968.
....of the instructions in the reuse unit to be skipped. The reuse unit must be large enough so that the execution time saved by reuse can offset this reuse detection latency. Examples of reuse units include a single instruction [29, 31] a basic block [14, 15, 16] a trace [10, 26] and a function [22, 25]. Reuse at the single instruction level keeps the inputs and results of previously executed instructions in a hardware buffer and tries to skip the execution of instructions that are subsequently re executed with the same inputs. In a pipelined superscalar processor, the execution of an ....
....the operand value locality. However, this scheme is very sensitive to the misprediction penalty due to its potentially low prediction accuracy. 2. 2 Value Reuse Techniques In addition to predicting values, several techniques have been proposed to dynamically reuse values produced by instructions [4, 7, 12, 10, 15, 22, 25, 29]. Harbison [12] proposed a value cache for stack machines to reuse results. Richardson [25] also proposed the result cache to skip the execution of longlatency instructions, such as floating point division. Citron et al. [4] extended the result cache idea to multimedia applications. Dynamic ....
[Article contains additional citation context not shown here]
D. Michie. "Memo Functions and Machine Learning". In Nature, vol. 218, 1968. Macmillan Publishers. Pages 19-22.
....of the isomorphism functions o#sets the time taken by type directed partial evaluation, even in the absence of memoization. 4. 4 Common sub expression elimination Furthermore, we are now in position to integrate common sub expression elimination by reflecting at function type into memo functions [32, 35]. These memo functions are indexed by the global stack to ensure their coherence, since a reflected function can be applied in conditional branches with distinct lexical scope. In the absence of sums, the memo functions can be used uniformly. To illustrate common sub expression elimination, let ....
Donald Michie. `Memo' functions and machine learning. Nature, 218:19--22, April 1968.
....above will be concretized in the next section. 2.1 Instances of multilevel systems We now examine three well known techniques for program optimization and show how their behavior can be expressed in terms of multilevel systems. 2.1. 1 Memoization This is a classical technique, introduced by [Mic68] The rules are of form f(#) # and # are constants) making it possible to share the computation of f(#) between its various invocations. When applying the technique, two issues must be settled: Which functions to memoize on In [Kho90] some syntactic criteria for deciding when memoization ....
Donald Michie. 'Memo' functions and machine learning. Nature, 218:19--22, April 1968. 252
....strategies be non lazy. The default strategies computed by the system are non lazy. 2.4. 5 Memoization Giving an operator the memo attribute causes the results of evaluating a term headed by this operator to be saved; thus the work of reduction is not repeated if that term appears again [118]. In OBJ3, the user can give any operators that he wishes the memo attribute, and this is implemented efficiently by using hash tables. More precisely, given a memoized operator symbol f and given a term f(t1, tn) to be reduced (possibly as part of some larger term) a table entry for ....
Donald Michie. `Memo' functions and machine learning. Nature, 218:19--22, April 1968.
.... together with the sharing of lock state, contributes to making the space overhead of locking independent of the number of locked objects; ii) it makes the implementation of bulk locking operations independent of the number of locked objects involved; and (iii) it allows the use of memoization [Mich68] for all individual locking operations. As will be shown later, adding delegation and programmable conflict detection do not impact these optimizations. 4.2 Bulk locking operations Bulk locking operations apply to all the locks of a given owner. The release of all the locks of a transaction ....
....includes in its header a pointer to the shared lock state that encodes the value of its lock. In this case, the last step consists of a single atomic compare and exchange of pointers to shared lock states. If this exchange fails, the four steps are repeated again. A simple form of memoization [Mich68] can be used to substantially speed up lock acquisition by eliminating the first three steps of lock acquisition for most requests. The idea is to maintain, per thread, a small cache that remembers what pointers to shared lock states were exchanged by past granted lock requests. Such caches ....
Michie, D. Memo' Function and Machine Learning. Nature, (218). 1968.
....output. The output difference is passed on to the next function. Only information for the last computation is preserved. The authors refer to this method as fine grain, since each evaluation step is performed incrementally. Function caching Function caching or memoizing, introduced by Michie in [Mic68] is a technique for storing results of function applications, and re using them when a function is invoked a second time with the same arguments. The technique is often used to improve the performance of recursive functions. An overview of various memoizing methods for recursive functions is ....
D. Michie. Memo functions and machine learning. Nature, 218:19--22, 1968.
....rules. Moreover, our list introduction strategy allows us to avoid useless intermediate data structures which are present in the conjunction of goals stored in the lists. In this sense, it is also an extension of the strategy for avoiding unnecessary variables presented in [PrP95] Memoisation [Mic68] is a technique which can be used for avoiding redundant computations by recording intermediate results. In the case of logic programming [War92] redundant predicate calls are avoided by storing in a table already computed answers to goals. This table is then looked up at each new predicate call, ....
D. Michie. Memo functions and machine learning. Nature, 218(5136):19-22, 1968.
....that cost model. The search space of possible plans is huge, and nave enumeration is not likely to be successful for any but the simplest queries. Bottom up optimizers use dynamic programming [Bel75] and top down optimizers since Volcano use a variant of dynamic programming called memoization [Mic68, RuN95], to find an optimal plan. Both dynamic programming and memoization achieve efficiency by using the principle of optimality: every subplan of an optimal plan is itself optimal (for the requested physical properties) The power of this principle is that it allows an optimizer to restrict the search ....
....and chooses one (perhaps the NULL multiexpression, indicating that no acceptable plan is available) as optimal for the desired property. Any new optimal multiexpression is stored at Figure 4 line (10) This storing of optimal multiexpressions is the original definition of memoization [Mic68, RuN95]: a function that stores its returned values from different inputs, to use in future invocations of the function. Note that for memoization to work in this case, we need only retain the multiexpression representing the best plan for the given physical properties in a group. However, in Columbia we ....
D. Michie, Memo Functions and Machine Learning, Nature, No. 218, Pg. 19-22, April 1968.
....that a profile be used to select which code is compressed. This chapter analyzes two profiling methods. Using this optimization increases the size of the compressed program due to the addition of native instructions. The second optimization, memoization, is a well known program transformation. [Michie68]. The goal of this optimization is to avoid long latency computations by caching the result of function calls. If the same function is called again with identical input values, the result can be provided from the cache rather than calculated. In the proposed compressed code system, an instruction ....
D. Michie, "Memo Functions and Machine Learning", Nature, Vol. 218, pp. 19-22, April 6, 1968.
....intermediate data structures which are present in the conjunction of goals stored in the lists. In this sense, it is also an extension of the strategy for avoiding unnecessary variables presented in [PrP95] The List Introduction Strategy for the Derivation of Logic Programs 17 Memoization [Mic68] is a technique which can be used for avoiding redundant computations by recording intermediate results. In the case of logic programming [War92] redundant predicate calls are avoided by storing in a table already computed answers to goals. This table is then looked up at each new predicate call, ....
D. Michie. Memo functions and machine learning. Nature, 218(5136):19-22, 1968.
....constructors have obvious meanings. The last one, lUnionSet is a little special. The lUnionSet construct allows a set to be built lazily. That is, whenever we have lUnionSet (f; g) it represents a set formed by the union of f( and g( where f and g are both expected to be functions that memoize[12] their results 5 5 We provide a function Memoize (f) in our system to convert any f of type unit 1a into a memoized function. We have an important reason for choosing this tree of unions of singletons representation for sets. Kleisli is based on the notion of monads in the form of ....
D. Michie. Memo functions and machine learning. Nature, 268:19--22, 1968.
....In this paper we are concerned with this latter approach, the consistency method. 1 There is an interesting exception: the addition of previously computed results as redundant clauses. These can replace multistep deduction by a direct look up. This technique is known as memoization [16] or tabling [26, 6, 24, 7] In the consistency method, computation consists of constraint propagation, which considers in turn each of the constraints and removes values that are inconsistent with the constraint. Propagation halts when none of the sets changes. In this stable state, the ....
....3 already down to about 10 Gamma15 . And this improvement is caused by adding the constraint 0 c(n) 3, which specifies an interval larger by fifteen orders of magnitude. 4 c( 0) 1.7182818284590 [4,5] c( 1) 0.999999999999999,1.0] c( 2) 0.71828182845904 [3,8] c( 3) 0. 5634363430819 [02,16] c( 4) 0.464536456131 [381,439] c( 5) 0.39559954780 [1852,2141] c( 6) 0.344684541646 [198,7936] c( 7) 0.3054900369 [23494,35662] c( 8) 0.27436153 [2973746,3071092] c( 9) 0.24902803 [0819221,1695329] c(10) 0.2280015 [11505755,20266836] c(11) 0.210265 [105523847,201895746] ....
[Article contains additional citation context not shown here]
D. Michie. Memo functions and machine learning. Nature, 218:19--22, 1968.
....forth through time could force the program to re display the same values many times, generating duplicate computations. To solve this problem, as much cache space as desired can be used to reduce the number of duplicated computations via lazy memoization [Hughes 1985] an adaptation of memoization [Michie 1968] for lazy evaluation. Although management of the cache itself requires time, it has been shown both theoretically and practically to be far less than the time required to maintain the display without saved values [Burnett et al. 1998] 5. Related Work 5.1 Related Work on Spreadsheet Languages ....
D. Michie, "`Memo' Functions and Machine Learning," Nat. 218(5136), 19-22, April 6, 1968.
....all such plans. 1 The search space of possible plans is huge, and nave enumeration is not likely to be successful for any but the simplest queries. Bottom up optimizers use dynamic programming [Bel75] and top down optimizers since Volcano use a variant of dynamic programming called memoization [Mic68, RuN95], to find an optimal plan. Both dynamic programming and memoization achieve efficiency by using the principle of optimality: every subplan of an optimal plan is itself optimal (for the requested physical properties) The power of this principle is that it allows an optimizer to restrict the search ....
....and chooses one (perhaps the NULL multiexpression, indicating that no acceptable plan is available) as optimal for the desired property. Any new optimal multiexpression is stored at Figure 4, line (10) This storing of optimal multiexpressions is the original definition of memoization [Mic68, RuN95]: a function that stores its returned values from different inputs, to use in future invocations of the function. Note that for memoization to work in this case, we need only retain the multiexpression representing the best plan for the given physical properties in a group. However, in Columbia we ....
D. Michie, 'Memo' Functions and Machine Learning, Nature, No. 218, Pp 19-22, April 1968.
....However, given the restricted knowledge of the input data at compile time, such optimizations are not effective in finding redundancies that manifest themselves only at run time. For this reason, execution time approaches are important in removing redundant computations. 1 Function Memoization [4] is an example of a run time technique for redundancy elimination. By using memoization tables, it allows functions without side effects to immediately return values already known from previous executions with the same input arguments. Our hardware based proposal was directly inspired by function ....
D. Michie, Memo Functions and Machine Learning, Nature 218, 1968, pp. 19--22.
....within loops or procedures that repeatedly compute upon the same or quasi identical data. Compiler transformations like common subexpression elimination and loop invariant code motion [2] may be not effective in finding redundancies that manifest themselves at run time. Function Memoization [3] is an example of a run time software technique for redundancy elimination. By using memoization tables, it allows functions without side effects to immediately return values already known from previous executions with the same input arguments. Our scheme is directly inspired by Function ....
D. Michie, Memo Functions and Machine Learning, Nature 218, 1968, pp. 19--22.
....is a matter of converting an indefinite constraint into a definite answer. The answer formula is a particularly definite piece of information; in fact, it is not hard to rewrite 8(G i ) as a definite formula (see [2, 3, 4] Hence we may add answer formulae to the program, and hence memoise [10] successful goals. Memoisation is a well known technique, and may considerably improve performance, as we do not need to re compute previously computed results. Whilst we cannot in general store successful goals themselves, this analysis shows that we can in fact store something more useful ....
D. Michie, Memo functions and machine learning, Nature 218:19-22, April, 1968.
....atom f(terms) In order to support this new notion of a least model, we develop an operational semantics that combines top down goal reduction with memo tables. Memo tables have been used in traditional functional languages (or equational programs) to detect dynamic common subexpressions [20]. In the partial order programming framework, however, memoization is primarily needed in order to detect circular constraints, or circular function calls. In general we need more than simple memoization when functions are defined circularly in terms of one another through monotonic functions. In ....
D. Michie, `Memo' Functions and Machine Learning, Nature, 218:19-22, 1968.
....understanding of SLD refutation, as an execution procedure for a deterministic program (along a predetermined path of the SLD tree) views SLD as calls and returns from procedures (unifying atoms in a goal) To avoid looping, a tabling or memoing method is proposed. It has been reported in [4] for a deterministic program execution, and rediscovered in [5, 6, 7] The concept is simple for a deterministic program: during the execution maintain a table of procedure calls (without side effects) and the values they return; if the same call is made during computation use the saved answer. ....
D.Michie, "Memo Functions and Machine Learning", Nature, 218 (1968), 19-22.
....of as a normal form for the latter class above. D : A j 8xD j D 1 D 2 j G oe A G : A jj G 1 G 2 j D oe G 2 where A denotes an atom, a program is a set of D formulae and a goal is a G formula. Another interesting property of Horn clauses is the way that successful goals may be memoised [11], that is, how a successful goal may be converted into a set of clauses and stored as a part of the program. This is due to the fact that a successful goal is a conjunction of atoms (instantiated by an answer substitution) which may be added to the program as a set of facts. This allows later ....
....as we may use previous computations in subsequent proofs, rather than recompute known results. Thus the larger program has the same meaning, but may be more efficient, as we can record the results of previous computations, rather than throwing them away. This technique is known as memoisation [11], and is known to be useful for avoiding redundant computation, as it allows known results to be stored for later use, thus reducing the amount of work that must be done. In our case, this consists of storing consequences of the program, so that the proof search process need not start from scratch ....
D. Michie, Memo functions and machine learning, Nature 218:19-22, April, 1968.
....development of the Signature Management System (SMS) 18] a decision support system that provides submarine crews with situational awareness and operational advice in order to reduce detectability. The term memoization is derived from the term memo function, which was coined by David Michie [10]. It refers to the tabulation of the results of a set of calculations to avoid repeating those calculations. Automatic memoization refers to a method by which an ordinary function can be changed mechanically into one that memoizes or caches its results. We place the decision about which ....
David Michie. Memo functions and machine learning. Nature, 218(1):19--22, April 1968.
....development of the Signature Management System (SMS) 17] a decision support system that provides submarine crews with situational awareness and operational advice in order to reduce detectability. The term memoization is derived from the term memo function, which was coined by David Michie [10]. It refers to the tabulation of the results of a set of calculations to avoid repeating those calculations. Automatic memoization refers to a method by which an ordinary function can be changed mechanically into one that memoizes or caches its results. By means of illustration, consider the ....
David Michie. Memo functions and machine learning. Nature, 218(1):19--22, April 1968.
....in the RHS of an equation in F. If 1. 8 s 2 SCycle(NF ,EF ) R(s) 6= id, id) and 2. 8 s1 , s2 2 HCFSet(S) B (s1 ) 0 B (s2) then performing tupling transformation on C will terminate. ut 7 Related Work One of the earliest mechanisms for avoiding redundant calls is memo functions [13]. Memo functions are special functions which remember store some or all of their previously computed function calls in a memo table, so that re occurring calls can have their results retrieved from the memo table rather than re computed. Though general (with no analysis required) memo functions ....
Donald Michie. Memo functions and machine learning. Nature, 218:19--22, April 1968.
....have found that if the above program is implemented naively, it still requires exponential time to give its answer. But this is not a problem. Different from the initial program, our derived program is suitable to be made optimized by some standard techniques such as tabulation [2] or memoisation[20]. Since these discussions are beyond the scope of this paper, we omit it here. Alternatively, a Gofer system with embedded memoisation mechanism [25] can give a direct efficient implementation. As maybe easily verified, there are only O(n 2 ) distinct values of acc requiring in the computation ....
....that by using medio type, more algorithms can be specified as a catamorphism with a type reformer. Thus our theorems in this paper are also applicable. We shall report some results about it in the future. We are now interested in applying our approach to the calculation of memoisation functions[20], because a memo function is no more than a special accumulation whose accumulating parameter remembers all computed results of the application of the specified function. Acknowledgment The authors would like to thank Dr. Oege de Moor for reading an earlier draft and making a number of helpful ....
D. Michie. Memo functions and machine learning. Nature, 218:19--22, 1968.
....the experimental results that support the use of memoization mathematical and trigonometric functions. Section 4 Compares the hardware based technique to a software based one. Sections 3.3 and 5 discuss and summarize the results. 1. 1 Related Work The concept of memoization was introduced by Michie[6]. The idea is to save the inputs and results of side effect free functions in a table and reuse 4 Operand SQRT UNIT MEMO TABLE MUX hit miss line operation completed line Result Figure 1: A square root unit using a memo table the results for matching inputs. Until the middle 90 s it had ....
Michie D., "Memo Functions and Machine Learning," Nature 218, pp. 19--22, 1968.
....the PPC 604e[5] Section 5 discusses and summarizes the results. 1 Except where technological advances reduce the latencies of certain instructions to one and thus drops them from the list of memoization candidates. 4 1. 1 Prior and Related Work The concept of memoing was introduced by Michie[6]. The idea is to save the inputs and results of side effect free functions in a table and reuse the results for matching inputs. Until the middle 90 s it has been used mainly in the context of declarative languages like Prolog, Lisp, and ML. In the past years several groups have used the concept ....
Michie D., "Memo Functions and Machine Learning," Nature 218, pp. 19--22, 1968.
....Even though LDL s semantics is defined in a bottom up fashion fashion (e.g. via stratification) the implementor can use any execution that is faithful to this declarative semantics. In particular, the execution can be bottom up and top down as well as hybrid executions that incorporate memoing [Mi68]. These choices enable the optimizer compiler to be selective in customizing the most appropriate mode for the given program. As a first approximation, it is easy to view the LDL execution as a bottom up computation using relational algebra. For instance, let p( be the query with the ....
Michie, D. "`Memo' Functions and Machine Learning" in Nature, April 1968.
....an SERC Studentship and an SERC Postdoctoral Fellowship to the first author, and an SERC Senior Fellowship to the second author. The authors would like to thank the many useful suggestions made by two anonymous JAR referees. An earlier, and much shorter, version of this paper appears in the [25]. 1 Further motivations include the advantages of proof transformation, concerning search, control and correctness criteria, over the more traditional styles of program development. We address these in detail in x . Further applications (potential and real) of this research are discussed in ....
D. Michie. Memo functions and machine learning. Nature, 218:19--22, 1968.
....of data types with laws. We showed that for a number of classes of example we could derive laws from function definitions. Specifically, we showed that we could derive the law for the type of ordered lists from a definition of a function performing insertion sort and that the memoisation [6] of function values could be achieved using laws which were derived automatically from the function definition itself. We also saw that there was a general means by which we could derive properties of objects of lawful type, by means of deduction using pattern expressions. This is only half the ....
D. Michie. `memo' functions and machine learning. Nature, 218, April 1968.
....the interpreter to keep track of which parts of the original term the result depends. They then cache these results to avoid future recalculation. This scheme enables them to cache pairs of the form (input pattern, output) rather than just (input, output) as in traditional memoizing systems [Mic68] They also succinctly explain the difference between dependence analysis and strictness analysis: strictness analysis is concerned with what parts of a program must be evaluated, whereas dependence analysis is concerned with] what parts of a program may affect the result. ALL96, p. 84] Our ....
Donald Michie. `Memo' functions and machine learning. Nature, 218:19--22, 1968.
....0 , J = G; R J ; s J ; t J ) then 8v 2 VG : term J (v) term J 0 (v) 5 Memoization by Memo Tables Memoization (sometimes called function caching) is a method to store evaluation results such that they can be reused if the same evaluation is required again later. The traditional approach [13] uses memo tables, i.e. hash tables that store pairs of argument and result for those functions that are supposed to be memoized. From the hypergraph point of view, this method corresponds to a slightly different encoding of result edges, see [7] a result hyperedge has then n sources (the n ....
D. Michie. Memo functions and machine learning. Nature, 218:19--22, 1968.
....Our implementation has convinced us that this design is a good one; this approach seems to match very well with programming styles used in practice. The main barrier to a completely practical system is performance. The current implementation tries to make the proof search fast. Memoization [Mic68] is used extensively to avoid recomputation and there is no backtracking. However, the underlying algorithm is still exponential in the worst case, since the size of the proof may be exponential in the size of the original program. A promising solution to this problem is to adapt the idea of ....
D. Michie. `Memo' functions and machine learning. Nature, (218):19--22, April 1968.
....different values are required. For the nineteen word sentence considered above, this means that there are a total of 524,827 calls when only 190 different values are needed. One way to avoid the repeated calculations here would be to use a language in which ttrees was defined as a memo function [11, 8]. This would allow the underlying implementation to avoid repeated calculation whenever possible by reusing values from a cache of previously calculated (argument,result) pairs. However, memo functions are not supported in Haskell, so we will need to do some extra work to construct and use an ....
D. Michie. `Memo' functions and machine learning. Nature, April 1968.
No context found.
D. Michie. `Memo' functions and machine learning. Nature, 218:19--22, 1968.
No context found.
D. Michie. 'memo' functions and machine learning. Nature, 218:19--22, 1968.
No context found.
D. Michie. 'memo' functions and machine learning. Nature, 218:19--22, 1968.
No context found.
D. Michie. 'memo' functions and machine learning. Nature, 218:19--22, 1968.
No context found.
D. Michie. 'memo' functions and machine learning. Nature, 218:19--22, 1968.
No context found.
D. Michie. 'memo' functions and machine learning. Nature, 218:19--22, 1968.
No context found.
D. Michie. 'memo' functions and machine learning. Nature, 218:19--22, 1968.
No context found.
D. Michie. 'memo' functions and machine learning. Nature, 218:19-22, 1968.
No context found.
D. Michie. Memo functions and machine learning. Nature, 218:19--22, April 1968.
No context found.
D. Michie. 'memo' functions and machine learning. Nature, 218:19--22, 1968.
No context found.
D. Michie. 'memo' functions and machine learning. Nature, 218:19--22, 1968.
No context found.
D. Michie. "Memo Functions and Machine Learning". In Nature, vol. 218, 1968. Macmillan Publishers. Pages 19-22.
No context found.
D. Michie. 'memo' functions and machine learning. Nature, 218:19--22, 1968.
No context found.
) Michie, D. Memo functions and machine learning. Nature 218 (1968), 19--22.
No context found.
Michie, D., "Memo Functions and Machine Learning," Nature 218(1), 19--22 (1968).
No context found.
D. Michie. 'Memo' functions and machine learning. Nature, 218(5136):19--22, April 1968.
First 50 documents Next 50
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