Efficient handling of data structures in definitional languages (Q1102735)
From MaRDI portal
| This is the item page for this Wikibase entity, intended for internal use and editing purposes. Please use this page instead for the normal view: Efficient handling of data structures in definitional languages |
scientific article; zbMATH DE number 4050959
| Language | Label | Description | Also known as |
|---|---|---|---|
| English | Efficient handling of data structures in definitional languages |
scientific article; zbMATH DE number 4050959 |
Statements
Efficient handling of data structures in definitional languages (English)
0 references
1988
0 references
Implementations of operations on general data structures in definitional languages often lead to excessive copying and storage requirements. To partially overcome this problem, users are given facilities to select efficient storage structures or to guide storage allocation. This contradicts the spirit of definitional languages, requiring the user to get involved with implementation details. This paper presents a method for automatically recognizing excessive copying and optimizing the storage for data structures. Based on analysis of data dependencies, the storage may be reduced from an entire structure to individual elements of the structure. The benefits are especially significant in incremental structures, where only a constant number of elements of a large data structure is modified in each operation. For incremental structures, copying of unchanged parts of the structure is avoided, and unnecessary iterations are eliminated, without involving the user in this consideration. The user is thus relieved of considering the inefficiencies inherent in specifications in definitional languages. The method is applicable to a variety of language processors and computer architectures. The proposed optimization method produces better results than those obtained by explicit storage references. The paper describes the implementation of the method in the compiler of the MODEL definitional language. First, criteria are presented for recognizing structures that may be optimized. Then, a transformation that removes iterations implied by the operations on incremental structures is described. The method is exemplified by its application to the non- recursive iteration computation of the Ackermann's function.
0 references
non-recursive iteration computation of Ackermann's function
0 references
general data structures
0 references
definitional languages
0 references
storage structures
0 references
storage allocation
0 references
incremental structures
0 references
implementation
0 references
compiler
0 references