Some equivalent transformations of recursive programs based on their schematic properties (Q794422): Difference between revisions

From MaRDI portal
RedirectionBot (talk | contribs)
Removed claim: author (P16): Item:Q1235975
ReferenceBot (talk | contribs)
Changed an Item
 
(3 intermediate revisions by 3 users not shown)
Property / author
 
Property / author: Mark B. Trakhtenbrot / rank
 
Normal rank
Property / MaRDI profile type
 
Property / MaRDI profile type: MaRDI publication profile / rank
 
Normal rank
Property / full work available at URL
 
Property / full work available at URL: https://doi.org/10.1016/0020-0190(84)90007-3 / rank
 
Normal rank
Property / OpenAlex ID
 
Property / OpenAlex ID: W2018564246 / rank
 
Normal rank
Property / cites work
 
Property / cites work: A Transformation System for Developing Recursive Programs / rank
 
Normal rank
Property / cites work
 
Property / cites work: On Classes of Program Schemata / rank
 
Normal rank
Property / cites work
 
Property / cites work: A synthesis of several sorting algorithms / rank
 
Normal rank
Property / cites work
 
Property / cites work: Program transformations and algebraic semantics / rank
 
Normal rank
Property / cites work
 
Property / cites work: Inductive methods for proving properties of programs / rank
 
Normal rank
Property / cites work
 
Property / cites work: Program equivalence and context-free grammars / rank
 
Normal rank
Property / cites work
 
Property / cites work: Tree equivalence of linear recursive schemata is polynomial-time decidable / rank
 
Normal rank

Latest revision as of 12:07, 14 June 2024

scientific article
Language Label Description Also known as
English
Some equivalent transformations of recursive programs based on their schematic properties
scientific article

    Statements

    Some equivalent transformations of recursive programs based on their schematic properties (English)
    0 references
    1984
    0 references
    The paper presents a series of new transformations of recursive program schemes which preserve functional equivalence relation. They are considered to be a contribution into techniques useful for transformational development and synthesis of programs (that start usually with a recursive specification), optimization etc. All the presented transformations are based on such semantical properties of fragments of recursive programs that are independent of a particular interpretation \({\mathcal I}\) of the used operations (or, in other words, basic functions) and are revealed automatically by global flow analysis of programs. This is both alternative and supplement to Burstall- Darlington fold-unfold technique which uses only properties given by rewriting rules that form a fixed part of transformation system and are to be presented by a man. Fragments whose properties are analyzed and to which transformations are locally applied, are occurrences of terms in a scheme, properties, defined in the paper by induction on term's structure, include: 1) a variable \(x\) affects predicate checks during the course of computation of a given term \(\tau\) on some \({\mathcal I}\); 2) whenever computation of a \(\tau\) terminates, its value equals the value of \(t\), where given term \(t\) does not contain calls to defined functions (plus some variations of these property); 3) for given \(\tau\), if its computation on some \({\mathcal I}\) does not terminate then computation of a term \(\sigma\) on \({\mathcal I}\) also does not terminate. These properties may be useful not for transformations only, but also for proving various assertions about programs. Complexity of searching terms with these properties can vary from polynomial to exponential, depending on degree of completeness of the search. Six equivalent transformations are presented, including substitution of a term by term without calls, various commutations of basic and defined functions, elimination of recursion over ''almost'' invariant arguments, elimination of useless test. They are shown to allow significant simplification of a recursive program structure.
    0 references
    recursive programs
    0 references
    schematic properties
    0 references
    equivalent transformations
    0 references

    Identifiers