Static and dynamic partitioning of pointers as links and threads

Identifying some pointers as invisible threads, for the purposes of storage management, is a generalization from several widely used programming conventions, like threaded trees. The necessary invariant is that nodes that are accessible (without threads) emit threads only to other accessible nodes. Dynamic tagging or static typing of threads ameliorates storage recycling both in functional and imperative languages.We have seen the distinction between threads and links sharpen both hardware- and software-supported storage management in SCHEME, and also in C. Certainly, therefore, implementations of languages that already have abstract management and concrete typing, should detect and use this as a new static type.

[1]  Harry R. Lewis,et al.  Data structures & their algorithms , 1991 .

[2]  Daniel G. Bobrow,et al.  An efficient, incremental, automatic garbage collector , 1976, CACM.

[3]  Philip Wadler,et al.  Once upon a type , 1995, FPCA '95.

[4]  S. L. Graham,et al.  List Processing in Real Time on a Serial Computer , 1978 .

[5]  David S. Wise Design for a Multiprocessing Heap with On-board Reference Counting , 1985, FPCA.

[6]  George E. Collins,et al.  A method for overlapping and erasure of lists , 1960, CACM.

[7]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[8]  Jacques Cohen,et al.  Garbage Collection of Linked Data Structures , 1981, CSUR.

[9]  Donald E. Knuth The art of computer programming: fundamental algorithms , 1969 .

[10]  Ellis Horowitz,et al.  Fundamentals of Data Structures in Pascal , 1984 .

[11]  James S Miller MultiScheme: A Parallel Processing System Based on MIT (Massachusetts Institute of Technology) Scheme. , 1987 .

[12]  Zhong Shao,et al.  An Empirical and Analytic Study of Stack vs . Heap Cost for Languages with Closures , 1993 .

[13]  Joseph Weizenbaum More on the reference counter method of erasing list structures , 1964, Commun. ACM.

[14]  Harry R. Lewis,et al.  Data Structures and Their Algorithms , 1991 .

[15]  Daniel P. Friedman,et al.  Reference Counting Can Manage the Circular Environments of Mutual Recursion , 1979, Inf. Process. Lett..

[16]  Andrew W. Appel,et al.  Garbage Collection can be Faster than Stack Allocation , 1987, Inf. Process. Lett..

[17]  Douglas W. Clark,et al.  A Note on Shared List Structure in LISP , 1978, Inf. Process. Lett..

[18]  Benjamin Goldberg,et al.  Static Analysis for Optimizing Reference Counting , 1995, Inf. Process. Lett..

[19]  William Pugh,et al.  Skip Lists: A Probabilistic Alternative to Balanced Trees , 1989, WADS.

[20]  Thomas A. Standish Data Structure Techniques , 1980 .

[21]  Henry G. Baker,et al.  Lively linear Lisp: “look ma, no garbage!” , 1992, SIGP.

[22]  Joseph Weizenbaum Symmetric list processor , 1963, CACM.

[23]  David S. Wise Stop-and-Copy and One-Bit Reference Counting , 1993, Inf. Process. Lett..

[24]  Robert E. Tarjan,et al.  Finding Dominators in Directed Graphs , 1974, SIAM J. Comput..

[25]  David S. Wise Referencing lists by an edge , 1976, CACM.

[26]  Andrew W. Appel,et al.  Empirical and Analytic Study of Stack Versus Heap Cost for Languages with Closures , 1996, J. Funct. Program..

[27]  William Goldman The princess bride : screenplay , 1986 .

[28]  Alan J. Perlis,et al.  Symbol manipulation by threaded lists , 1960, Commun. ACM.

[29]  Slocum Miller James,et al.  Multischeme : a parallel processing system based on MIT scheme , 1987 .