This Article 
 Bibliographic References 
 Add to: 
Functional Data Structures as Updatable Objects
December 1990 (vol. 16 no. 12)
pp. 1427-1432

The threat of continuous data copying is one of the key problems in applicative programming. The opportunities to implement functional data structures as updatable objects, thus avoiding any form of copying, are discussed. The notion of incremental structures and associated storage is used. Its specification is modified so as to handle sequential and shared structures. The former can be used in the case when only data dependencies and not data values are considered in source program analysis. The latter can be used for nondeterministic applications such as system programming.

[1] W. B. Ackerman, "Data flow languages," MIT Lab. Comput. Sci., CSG Memo 177, 1979.
[2] T. Agerwala and Arvind, Eds.,Computer (Special Issue on Data Flow Systems), vol. 10, no. 2, 1982.
[3] Arvind, K. P. Gostelow, and W. Plouffe, "An asynchronous programming language and computing machine," Dep. Inform. Comput. Sci., Univ. California, Irvine, Tech. Rep. TR-114A, 1978.
[4] Arvind and R. E. Thomas, "I-structures: An efficient data structure for functional languages," MIT Lab. Comput. Sci., Tech. Rep. TM-178, 1980.
[5] Arvind and J. D. Brock, "Streams and managers," MIT Lab. Comput. Sci., Tech. Rep. TM-217, 1982.
[6] Arvind and J. D. Brock, "Resource managers in functional programming,"J. Parallel and Distributed Comput., no. 1, pp. 5-21, 1984.
[7] R. Buehrer and K. Ekanadham, "Incorporating data flow ideas into von Neumann processors for parallel execution,"IEEE Trans. Comput., vol. C-36, pp. 1515-1522, Dec. 1987.
[8] A. J. Catto and J. R. Gurd, "Nondeterministic dataflow graphs," inProc. 8th World Computer Congress, IFIP, 1980, pp. 251-256.
[9] J. L. Gaudiot, "Methods for handling structures in data-flow systems," inProc. 12th Int. Symp. Comput. Architecture, June 1985.
[10] J. R. Gurd,et al., "The dataflow approach," inDistributed Computing, F. B. Chambers,et al., Eds., Academic, 1984, pp. 1-53.
[11] S. K. Heller, "Design of a memory controller for the MIT tagged token dataflow machine," MIT Lab. Comput. Sci., CSG Memo 230, 1983.
[12] R. A. Iannucci, "Toward a dataflow/von Neumann hybrid architecture," inProc. 16th Annu. Symp. Computer Architecture, IEEE, 1989, pp. 262-272.
[13] J.R. McGraw, "The VAL Language: Description and Analysis,"ACM Trans. Programming Languages and Systems, 1982, pp. 44-82.
[14] J. Milewski, "Divorcing dataflow from the single assignment rule," unpublished paper, 1983.
[15] J. Milewski, "I-storage in dataflow computing," Ph.D. dissertation, Warsaw Univ., 1990.
[16] R. S. Nikhil, K. Pingali, and Arvind, "Id nouveau," MIT Lab. Comput. Sci., Tech. Rep. TM-265, 1986.
[17] R. S. Nikhil and Arvind, "Can dataflow subsume van Neumann computing?" inProc. 16th Ann. Int. Symp. on Computer Architecture, 1989.
[18] S. L. Peyton Jones, "Parallel implementations of functional programming languages,"Comput. J., vol. 32, pp. 175-186, Feb. 1989.
[19] E. Y. Shapiro, "A subset of concurrent Prolog and its interpreter," ICOT, Tokyo, Japan, Tech. Rep. TR-003, 1983.
[20] P. C. Treleaven, R. P. Hopkins, and P. W. Rautenbach, "Combining data flow and control flow computing,"Comput. J., vol. 25, no. 2, pp. 207-217, 1982.

Index Terms:
continuous data copying; applicative programming; functional data structures; updatable objects; incremental structures; associated storage; shared structures; data dependencies; source program analysis; nondeterministic applications; system programming; data structures; functional programming; parallel programming
J. Milewski, "Functional Data Structures as Updatable Objects," IEEE Transactions on Software Engineering, vol. 16, no. 12, pp. 1427-1432, Dec. 1990, doi:10.1109/32.62450
Usage of this product signifies your acceptance of the Terms of Use.