Summary
We describe a high level of data structure description for programming languages which we call the relational level. At this level one may describe and manipulate data structures without having to decide beforehand which access paths will be used or how the structure may change. This is done by using rather simple mathematical structures and providing powerful primitive operations in the language for manipulating these structures. This is constrast ed with the access path and machine levels of description and it is suggested that a language be able to function well at all three levels. We present some ideas on how a system might be built to implement such a language efficiently. This involves the use of an implementation facility to allow the programmer to specify the implementation of his relational level structures in terms of access path and machine level structures using a “structured programming” approach.
Similar content being viewed by others
References
Earley, J.: Toward an understanding of data structures. Comm. ACM 14, 617–626 (1971)
Earley, J., Caizergues, P.: VERS Manual. Computer Science Department, University of California, Berkeley (Cal.) 1971
Codd, E. F.: A relational model of data for large shared data banks. Comm. ACM 13, 377–387 (1970)
Childs, D. L.: Description of a set-theoretic data structure. Proc. AFIPS 1968 FJCC 33, 377–387 (1968)
McCuskey, W. A.: On automatic design of data organization. Proc. AFIPS 1970 FJCC 37, 187–199 (1970)
Randall, L. S.: A relational model of data for the determination of optimum computer storage structures. University of Michigan, Systems Engineering Lab., Report No. 54, 1971
Fillat, A. I., Kraning, L. A.: Generalized organization of large data bases; a set theoretic approach to relations, MIT, Cambridge (Mass.), Project MAC, MAC-TR-70, 1970
Codd, E. F.: A data base sublanguage founded on the relational calculus. IBM Research Lab., San Jose (Cal.), RJ 893, 1971
Feldman, J. A., Rovner, P. D.: An Algol-based associative language. Comm. ACM 12, 439–449 (1969)
Schwartz, J. T.: Abstract algorithms and a set theoretic language for their expression. Computer Science Department, New York University, 1970–71
Knuth, D. E.: The art of computer programming, vol. I. Reading (Mass.): Addison-Wesley 1968 p. 258.
Griswold, R. E., Poage, J. F., Polonsky, J. P.: The SNOBOL4 programming language. Englewood Cliffs (N. J.): Prentice-Hall 1968
Earley, J., Caizergues, P.: A method for incrementally compiling languages with nested statement structure. Comm. ACM 15, 1040–1044 (1972)
Branquart, P., Lewi, J., Sintzoff, M., Wodon, P. L.: The composition of semantics in Algol 68. Comm. ACM 14, 697–708 (1971)
Ash, W., Sibley, E. H.: TRAMP, an interpretive associative processor with deductive capabilities. Proc. Nat. ACM Conf. 143–156 (1968)
Derksen, J., Rulifson, J. F., Waldinger, R. J.: The QA4 language applied to robot planning. Stanford Research Institute, Stanford (Cal.), 1972
Hewitt, C.: Description and theoretical analysis of Planner. MIT, Cambridge (Mass.), Project MAC, AI-TR-258, 1972
Wegbreit, B.: The treatment of data types in EL1. Harvard University, Cambridge (Mass.) 1971
Balzer, R.: Automatic programming. USC Information Sciences Institute, 1972
Wells, M. B., Morris, J. B.: The unified data structure capability in Madcap VI. Internatl. J. Computer and Information Sciences 1, 193–208 (1972)
Dijkstra, E. W.: Structured programming. In: Software Engineering Techniques. NATO Scientific Affairs Division, Brussels 1970
Wegbreit, B.: ECL Programmer's Manual. Harvard University, Cambridge (Mass.), 1972
Author information
Authors and Affiliations
Additional information
Research was supported under National Science Foundation Grant No. GJ-34342X.
Rights and permissions
About this article
Cite this article
Earley, J. Relational level data structures for programming languages. Acta Informatica 2, 293–309 (1973). https://doi.org/10.1007/BF00289502
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF00289502