An Automatic Technique for Selection of Data Representations in SETL Programs

Publisher Summary This chapter highlights an automatic technique for selection of data representations in SETL programs. SETL is a very-high-level programming language supporting set-theoretic syntax and semantics. It allows algorithms to be programmed rapidly and succinctly without requiring data-structure declarations to be supplied. The chapter describes a new technique for automatic selection of appropriate data representations during compile time for programs with omitted declarations. It also presents an efficient data representation selection algorithm, whose complexity is comparable with those of the fastest known general data-flow algorithms of Tarjan and Reif. The level of a programming language is determined by the power of its semantic primitives, which influence the ease and speed of programming in the language profoundly. The chapter also describes how the SETL compiler chooses data structure implementations. SETL supports logical quantifiers and the abstract data type set as the prominent high-level features of the language. Programmers are intended to use these features as much as possible and leave more specific data structure and control structure decisions to the SETL compiler. Most other very high-level languages start by incorporating these same features. SETL is a very-high-level programming language supporting set-theoretic syntax and semantics. It allows algorithms to be programmed rapidly and succinctly without requiring data-structure declarations to be supplied. Such declarations can be manually specified later, without recoding the program, to improve the efficiency of program execution. We describe a new technique for automatic selection of appropriate data representations during compile time for programs with omitted declarations and present an efficient data representation selection algorithm, whose complexity is comparable with those of the fastest known general data-flow algorithms of Tarjan and Reif.

[1]  Edmond Schonberg,et al.  Programming by Refinement, as Exemplified by the SETL Representation Sublanguage , 1979, TOPL.

[2]  Alfred V. Aho,et al.  Principles of Compiler Design (Addison-Wesley series in computer science and information processing) , 1977 .

[3]  William C. McGee Data structures and their representation in storage , 1969 .

[4]  Maurice H. Halstead,et al.  Elements of software science , 1977 .

[5]  Jacob T. Schwartz,et al.  Automatic data structure choice in a language of very high level , 1975, CACM.

[6]  Michael E. Senko,et al.  Data Structures and Accessing in Data-Base Systems. I: Evolution of Information Systems , 1973, IBM Syst. J..

[7]  Frances E. Allen,et al.  Control-flow analysis , 2022 .

[8]  Micha Sharir,et al.  Automatic data structure selection in SETL , 1979, POPL.

[9]  Robert E. Tarjan,et al.  Efficiency of a Good But Not Linear Set Union Algorithm , 1972, JACM.

[10]  George H. Mealy,et al.  Another look at data , 1967, AFIPS '67 (Fall).

[11]  Alfred V. Aho,et al.  Principles of Compiler Design , 1977 .

[12]  Jacob T. Schwartz,et al.  On programming : an interim report on the SETL Project , 1973 .

[13]  Robert E. Tarjan,et al.  Fast Algorithms for Solving Path Problems , 1981, JACM.

[14]  Robert Balzer Dataless programming , 1967, AFIPS '67 (Fall).

[15]  Jay Earley,et al.  Toward an understanding of data structures , 1971, SIGFIDET '70.

[16]  James R. Low Automatic data structure selection: an example and overview , 1978, CACM.

[17]  Maurice H. Halstead,et al.  Elements of software science (Operating and programming systems series) , 1977 .

[18]  M. E D'Imperio Data structures and their representation in storage , 1969 .

[19]  E. SenkoM.,et al.  Data structures and accessing in data-base systems , 1973 .

[20]  Robert E. Tarjan,et al.  A Unified Approach to Path Problems , 1981, JACM.

[21]  Matthew S. Hecht,et al.  Flow Analysis of Computer Programs , 1977 .