| Douglas W. Clark and C. Cordell Green, An Empirical Study of List Structure in Lisp, Communications of ACM, February 1977, Vol. 20, No. 2. |
....numbers are roughly what static analysis by Grotho#, Palsberg, and Vitek [5] leads us to expect, even though we are looking from a di#erent perspective. 7. POWER LAWS We examined five large dumps of our corpus, in a similar manner to Clark and Green with respect to the list structures in Lisp [6]. For each of these large dumps we produced a graph of the log of the frequency rank versus the log of the number of occurrences of the objects having a corresponding rank. All five graphs for incoming reference and outgoing reference distributions demonstrated a linear or close to linear ....
Douglas W. Clark and C. Cordell Green, An Empirical Study of List Structure in Lisp, Communications of ACM, February 1977, Vol. 20, No. 2.
....instead of pointers often contain small integers or zero. In short, the information theoretic entropy of the average word is smalh furthermore, a garbage collector ca.n be made t.o put. objects that point to each other in nearby locations. thus reducing the entropy per word to as little as 7 bits[9]. By the use of a data compression algorithm, then, a page of 32 bit words might be compressible to about one quarter of a page. Instead of paging less recentlyused pages directly to the disk, they could be com pressed instead and put back into main memory. 36 t Then, when those virtual pages ....
D. W. Clark and C. C. Green. An empirical study of list structure in Lisp. IEE Trans_ 'o,ware En,q. 5(1}:51-59, 1977.
....depth first visit order; in this case, pointers and their targets are usually moved much closer together, so count adjustments are more frequently local. Of course, linearization also improves the locality of mark and sweep collection. Empirical studies of LISP list structure by Clark and Green [CG77] showed that on the average over 98 percent of list pointer cdrs point to the next cell after linearization along cdr edges. Locality is also improved by the use of special encodings that reduce the size of objects. cdr coding [BC79] permits the e#cient use of only two bits for the cdr field of ....
....in the multi reference table (MRT) addresses of objects referenced by variables are stored in the variable reference table (VRT) Any object appearing in neither the ZCT nor the MRT has an implicit reference count of one. In a LISP system most objects are expected to have only one reference [CG77] so this is expected to save space and improve locality of reference. As the program runs the tables become out of date, but a record of the adjustments to (in heap) reference counts is stored in the transaction file. In this system, computation is briefly interrupted to collect unused storage. ....
[Article contains additional citation context not shown here]
D. W. Clark and C. C. Green. An empirical study of list structure in LISP. Communications of the ACM, 20(2):78--87, February 1977.
....young objects are more likely to become inactive than old objects. It also appears that young objects refer to old objects much more often than old objects refer to young objects, and that most objects are referred to by only one object. These properties have been observed experimentally [Cla79, CG77] and inferred from the improved performance of collectors that exploit them [LH83, Moo84, SCN84, DB76, Rov85] It has also been observed that the sizes of objects are not distributed uniformly [BB77, Nie77] Reference counting Reference counting garbage collection identifies reusable objects by ....
D. W. Clark and C. C. Green. An empirical study of list structure in LISP. Communications of the ACM, 20(2):78--87, February 1977. 104
....instead of pointers often contain small integers or zero. In short, the information theoretic entropy of the average word is small; furthermore, a garbage collector can be made to put objects that point to each other in nearby locations, thus reducing the entropy per word to as little as 7 bits[9]. By the use of a data compression algorithm, then, a page of 32 bit words might be compressible to about one quarter of a page. Instead of paging less recentlyused pages directly to the disk, they could be compressed instead and put back into main memory. 36] Then, when those virtual pages are ....
D. W. Clark and C. C. Green. An empirical study of list structure in Lisp. IEEE Trans. Software Eng., SE5 (1):51--59, 1977.
....= f0; 1; maxrc; 1g where maxrc is an arbitrary positive integer. The idea is that if a reference count ever exceeds maxrc, it jumps to infinity and sticks there, never to decrease again. 3 Justification for using this domain comes from empirical studies (at least of Lisp programs [2]) that indicate that objects are generally not shared very much, so that choosing a suitably high value for maxrc will give fairly accurate results most of the time. As with Rc, Src is a flat domain. We define the following primitive operations on the elements: x Phi n = if (x n maxrc) then ....
D.W. Clark. An empirical study of list structure in lisp. CACM, 20(2):78--87, February 1977.
....page. Therefore, the scanner should work on those references first. These references are largely to be found in the newest pages added to the to space 14 as a result of scanning the trapping page. A good heuristic might be: After a page trap, scan the newest pages of to space first. Clark [Clark 77] found that even in a pointer language like Lisp, references to an address were often followed by references to nearby addresses. This leads to the heuristic: After a page trap, scan the pages adjacent to the trapping page. Brooks [Brooks 84] and others have suggested that it is better to scan ....
Douglas W. Clark and C. Cordell Green. An empirical study of list structure in Lisp. Communications of the ACM, 20(2):78-87, 1977.
....A problem with being specific is some languages allow optimisations that are not generally applicable. Language semantics can restrict the topology of the computation graph which may be: cyclic, acyclic or a polytree tree. In unoptimised functional languages the graph is predominantly treelike [Clarke, 1977]. This is not the case for object oriented languages, which make extensive use of cyclic data structures. The topology of the computation graph in turn, as will be explained, constrains the type of collector that can be effective. Cohen [1981] refined the collector process, C, of Dijkstra et al. ....
....one major problem: the need to perform a local mark scan every time a reference to a shared cell is deleted. This increases the complexity of the local mark scan to O(n) where n is the size of the shared subgraph. In unoptimised functional languages, most structures have a reference count of one [Clarke, 1977] and the cost of the algorithm is exactly the same as the standard reference count. This is not the case for object oriented languages, which make extensive use of sharing and cyclic data structures, making the overhead of this scheme high. Lins [1990] addresses the problem by introducing an extra ....
Clark DW and Green CC (1977) An empirical study of list structure in Lisp, Comm ACM 20(2)78-86.
....compilation [1,5,14] The second was also solved to some extent by those same compilers because the user programs could be removed from the list storage area and freed from its inefficient constraints on representation. 1 Other techniques such as compact list representation ( CDR coding ) [12,19] have been proposed which also offer partial solutions to this problem. This paper presents a solution to the third problem of classical list processing techniques and removes that roadblock to their more general use. Using the method given here, a computer could have list processing primitives ....
....with a partial solution to the second big problem with list structures: their inefficient use of storage. Whereas a list of 5 elements in a language like Fortran or APL would require only a 5 element array, such a list in LISP requires 5 cells having two pointers apiece. So called CDR coding [12,19] can reduce the storage cost of LISP lists by as much as 50 . The idea is simple: memory is divided up into equalsized chunks called Q s. Each Q is big enough to hold 2 bits plus a pointer p to another Q. The 2 bits are decoded via the table: 00 NORMAL; CAR of this node is p; CDR is in the ....
[Article contains additional citation context not shown here]
Clark, D.W., and Green, C.C. An empirical study of list structure in LISP. Comm. ACM 20, 2 (Feb. 1977), 78-87.
....garbage spaces are simply squeezed out, without disturbing the original ordering of objects in memory. This can ameliorate locality problems, because the allocation ordering is usually more similar to subsequent access orderings than an arbitrary ordering imposed by a copying garbage collector [CG77, Cla79] While the locality that results from sliding compaction is advantageous, the collection process itself shares the mark sweep s unfortunate property that several passes over the data are required. After the initial marking phase, sliding compactors make two or three more passes over the ....
Douglas W. Clark and C. Cordell Green. An empirical study of list structure in LISP. Communications of the ACM, 20(2):78--87, February 1977.
....in which ternary symbols are, e.g. twice less likely than binary symbols etc. The weighted models are of interest for several reasons. By construction, they are likely to represent real life situations better than the uniform models (that only combine points 1 and 2 above) In effect, Clark [10, 11] has shown, from statistics on actual large data structures created by a number of Lisp programmes that, rather independently of particular applications: i) There is a fairly constant probability, in the interval [ 2 3 ; 3 4 ] that a left son of a cons node be an atom, and similarly for ....
....new comers in the area of analysis of algorithms. They arise naturally as combinatorial models (see [21, Sect 2.3. 4] for introductory material) but also as a specialisation of branching processes or as a way of making precise empirical observations on large structures created by symbolic systems [11, 10], as we have discussed in Section 4. Meir and Moon s seminal paper [25] itself inspired by P olya s works [29, 30] showed the possibility of counting trees in models that are essentially equivalent to our general branching model. What is interesting is a situation not unlike what we witness in ....
Clark, D. W., and Green, C. C. An empirical study of list structure in Lisp. Commun. ACM 20, 2 (1977), 78--87.
....each link is checked for nil; and a long chain of data dependences as each link fetch is dependent on the previous one. With modern superscalar hardware, these dependences are a serious bottleneck. In order to save on storage for links, cdr coding was proposed in the 1970 s [Han69, Gre77, Cla76, CG77, BC79, Bob75] Its main idea is to try to avoid some links by arranging for the second cons cell to directly follow the car of the first, and to encode that information in several bits contained in the car field of the first cell; thus the first cell does not need a cdr field at all. A ....
....does not have a good dead code detection algorithm, we believe that a more refined implementation can achieve more code sharing and produce much smaller code. 6. 5 Related work Cdr coding techniques were first proposed in the early 70 s by researchers at MIT and Xerox [Han69, Gre77, Cla76, CG77, BC79, Bob75] While these schemes differ from each other on the encoding methods, they all rely on the hardware support from microcoded 7 NUR allocates 33 less memory than OSR on certain benchmarks, because unlike in Table 23, each cons cell in our compiler contains an extra descriptor ....
Douglas W. Clark and C. Cordell Green. An Empirical Study of List Structure in Lisp. Communications of the ACM, 20(2):78--87, February 1977.
.... collection, and conjectured that generational collection had no advantage over non generational collection for the radioactive decay model and a uniform memory system [5, 39] There is a great deal of empirical evidence to show that most heap allocated objects die young, even in languages like C [8, 9, 11, 12, 24, 31, 36, 35, 39]. There is no empirical support for the idea that long lived objects show a strong correlation between age and life expectancy [24, 33, 32, 39] Equation (1) quantifies a relationship noted by Barry Hayes, who pointed out that if all objects decay at the same rate, as in the radioactive decay ....
Douglas W. Clark and C. Cordell Green. An empirical study of list structure in LISP. CACM 20(2), February 1977, pages 78--87.
....control dependences as each cdr is checked for nil; and a long chain of data dependences as each cdr fetch is dependent on the previous one. With modern superscalar hardware, these dependences are a serious bottleneck. In order to save on storage for links, cdr coding was proposed in the 1970 s [15, 13, 8, 9, 6, 5]. Its main idea is to try to avoid some links by arranging for the second cons cell to directly follow the car of the first, and to encode that information in several bits contained in the car field of the first cell; thus the first cell does not need a cdr field at all. A depth first (or ....
....of NUR is that it does not have a good dead code detection algorithm, we believe that a more refined implementation can achieve more code sharing and produce much smaller code. 5 Related Work Cdr coding techniques were first proposed in early 70 s by a group of researchers at MIT and Xerox [15, 13, 8, 9, 6, 5]. While these schemes differ from each other on the encoding methods, they all rely on the hardware support from microcoded Lisp machines [25, 10] to alleviate the high costs incurred by the runtime encoding bits. Since modern machines tend not to offer these kinds of special hardware support, the ....
Douglas W. Clark and C. Cordell Green. An empirical study of list structure in lisp. Communications of the ACM, 20(2):78--87, February 1977.
....AT T Bell Laboratories, 600 Mountain Avenue, Murray Hill, NJ 07974. Email address: jhr research.att.com. dependent on the previous one. With modern superscalar hardware, these dependences are a serious bottleneck. In order to save on storage for links, cdr coding was proposed in the 1970 s [15, 13, 8, 9, 6, 5]. Its main idea is to try to avoid some links by arranging for the second cons cell to directly follow the car of the first, and to encode that information in several bits contained in the car field of the first cell; thus the first cell does not need a cdr field at all. A depth first (or ....
....of NUR is that it does not have a good dead code detection algorithm, we believe that a more refined implementation can achieve more code sharing and produce much smaller code. 5 Related Work Cdr coding techniques were first proposed in early 70 s by a group of researchers at MIT and Xerox [15, 13, 8, 9, 6, 5]. While these schemes differ from each other on the encoding methods, they all rely on the hardware support from microcoded Lisp machines [25, 10] to alleviate the high costs incurred by the runtime encoding bits. Since modern machines tend not to offer these kinds of special hardware support, the ....
Douglas W. Clark and C. Cordell Green. An empirical study of list structure in lisp. Communications of the ACM, 20(2):78--87, February 1977.
....the garbage spaces are simply squeezed out, without disturbing the original ordering of objects in memory. This can ameliorate locality problems, because the allocation ordering is usually more similar to subsequent access orderings than an arbitrary ordering imposed by a garbage collector [CG77, Cla79] While the locality that results from sliding compaction is advantageous, the collection process itself shares the mark sweep s unfortunate property that several passes over the data are required. After the initial marking phase, sliding compactors make two or three more passes over the ....
Douglas W. Clark and C. Cordell Green. An empirical study of list structure in LISP. Communications of the ACM, 20(2):78--87, February 1977.
No context found.
Clark, D.W., and Green, C.C. "An Empirical Study of List Structure in LISP". CACM 20,2 (Feb. 1977),78-87.
No context found.
Clark, D.W., and Green, C.C. "An Empirical Study of List Structure in LISP". CACM 20,2 (Feb. 1977),78-87.
No context found.
Douglas W. Clark, and C. Cordell Green. An empirical study of list structure in Lisp. Communications of the ACM 20, 2 (Feb. 1977), 78-87.
No context found.
Douglas W. Clark and C. Cordell Green. An empirical study of list structure in Lisp. Communications of the ACM, 20(2):78--86, February 1977.
No context found.
DW Clark & CC Green [Feb 1977], "An empirical study of list structure in Lisp," Communications of the ACM 20, 78--87.
No context found.
DW Clark & CC Green [Feb 1977], "An empirical study of list structure in Lisp," Communications of the ACM 20, 78--87.
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