کد مقاله کد نشریه سال انتشار مقاله انگلیسی نسخه تمام متن
433719 689615 2016 29 صفحه PDF دانلود رایگان
عنوان انگلیسی مقاله ISI
Fundamentals of reversible flowchart languages
ترجمه فارسی عنوان
مبانی زبان های جریان فونگرافی برگشت پذیر
موضوعات مرتبط
مهندسی و علوم پایه مهندسی کامپیوتر نظریه محاسباتی و ریاضیات
چکیده انگلیسی


• Structured and unstructured reversible flowcharts are introduced and explored.
• They are shown to be equivalent and as expressive as reversible Turing machines (RTMs).
• Programming languages modeled on the flowchart variants are designed and formalized.
• Program inversion and translation between these languages is given in full.
• The results are demonstrated on Dijkstra's permutation encoding and RTM simulation.

This paper presents the fundamentals of reversible flowcharts. Reversible flowcharts are intended to naturally represent the structure and control flow of reversible (imperative) programming languages in a simple computation model in the same way classical flowcharts do for conventional languages. Although reversible flowcharts are superficially similar to classical flowcharts, there are crucial differences: atomic steps are limited to locally invertible operations, and join points require an explicit orthogonalizing conditional expression.Despite these constraints, we show that reversible flowcharts are both expressive and robust: reversible flowcharts can simulate irreversible ones by adapting reversibilization techniques to the flowchart model. Thus, reversible flowcharts are r-Turing-complete, meaning that they can compute exactly all injective computable functions. Furthermore, structured reversible flowcharts are as expressive as unstructured ones, as shown by a reversible version of the classic Structured Program Theorem.We illustrate how reversible flowcharts can be concretized with two example programming languages, complete with syntax and semantics: a low-level unstructured language and a high-level structured language. We introduce concrete tools such as program inverters and translators for both languages, which follow the structure suggested by the flowchart model. To further illustrate the different concepts and tools brought together in this paper, we present two major worked examples: a reversible permutation-to-code algorithm attributed to Dijkstra, and a simulation scheme for reversible Turing machines. By exhibiting a wide range of uses, we hope that the proposed reversible flowcharts can serve as a springboard for further theoretical research in reversible computing.

ناشر
Database: Elsevier - ScienceDirect (ساینس دایرکت)
Journal: Theoretical Computer Science - Volume 611, 18 January 2016, Pages 87–115
نویسندگان
, , ,