Type Analysis and Data Structure Selection
Jiazhen Cai, Phillipe Facon, Fritz Henglein, Robert A. Paige, Edmond Schonberg · 1991
types such as sets and maps with efficient data structures. Their transformation rests on the discovery of finite universal sets, called bases, to be used for avoiding data replication and for creating aggregate data structures that implement associative access by simpler cursor or pointer access. The SETL implementation used global analysis similar to classical dataflow for typings and for set inclusion and membership relationships to determine bases. However, the optimized data structures selected by this optmization did not include a primitive linked list or array, and all optimized data structures retained some degree of hashing. Hence, this heuristic approach only resulted in an expected improvement in performance over default implementations. The analysis was complicated by SETL’s imperative style, weak typing, and low level control structures. The implemented optimizer was large (about 20,000 lines of SETL source