|
Program Synthesis and Transformations
Etude on recursion elimination
N. V. Shilov Autonomous noncommercial organization of higher education "Innopolis University",
1 Universitetskaya str., Innopolis, Tatarstan Republic, 420500, Russia
Abstract:
Transformation-based program verification was a very important topic in early years of theory of programming.
Great computer scientists contributed to these studies: John McCarthy, Amir Pnueli, Donald Knuth ...
Many fascinating examples were examined and resulted in recursion elimination techniques known as tail-recursion and co-recursion.
In the paper, we examine just a single example (but new we hope) of recursion elimination via program manipulations and problem analysis.
The recursion pattern of the example matches descending dynamic programming but is neither tail-recursion nor co-recursion pattern.
Also, the example may be considered from different perspectives: as a transformation of a descending dynamic programming to ascending one
(with a fixed-size static memory),
or as a proof of the functional equivalence between recursive and iterative programs (that can later serve as a case-study for automatic theorem proving),
or just as a fascinating algorithmic puzzle for fun and exercising in algorithm design, analysis, and verification. The article is published in the author's wording.
Keywords:
recursive and standard program schemata, recursive and iterative programs, functional equivalence of programs and program schemata,
ascending and descending dynamic programming, recursion elimination, static and dynamic memory, associative and standard arrays.
Received: 26.09.2018
Citation:
N. V. Shilov, “Etude on recursion elimination”, Model. Anal. Inform. Sist., 25:5 (2018), 549–560
Linking options:
https://www.mathnet.ru/eng/mais648 https://www.mathnet.ru/eng/mais/v25/i5/p549
|
Statistics & downloads: |
Abstract page: | 198 | Full-text PDF : | 192 | References: | 37 |
|