Reversible computation in term rewriting

Reconocimiento - No comercial - Sin obra derivada (by-nc-nd)Reconocimiento - No comercial - Sin obra derivada (by-nc-nd)Reconocimiento - No comercial - Sin obra derivada (by-nc-nd)

Fecha

Directores

Editores

Otras autorías

Unidades organizativas

Compartir

Handle

https://riunet.upv.es/handle/10251/121738

Cita bibliográfica

Nishida, N.; Palacios, A.; Vidal, G. (2018). Reversible computation in term rewriting. Journal of Logical and Algebraic Methods in Programming. 94:128-149. https://doi.org/10.1016/j.jlamp.2017.10.003

Titulación

Resumen

[EN] Essentially, in a reversible programming language, for each forward computation from state S to state S', there exists a constructive method to go backwards from state S' to state S. Besides its theoretical interest, reversible computation is a fundamental concept which is relevant in many different areas like cellular automata, bidirectional program transformation, or quantum computing, to name a few.

In this work, we focus on term rewriting, a computation model that underlies most rule-based programming languages. In general, term rewriting is not reversible, even for injective functions; namely, given a rewrite step t(1) -> t(2), we do not always have a decidable method to get t(1) from t(2). Here, we introduce a conservative extension of term rewriting that becomes reversible. Furthermore, we also define two transformations, injectivization and inversion, to make a rewrite system reversible using standard term rewriting. We illustrate the usefulness of our transformations in the context of bidirectional program transformation. (C) 2017 Elsevier Inc. All rights reserved.

Fuente

Journal of Logical and Algebraic Methods in Programming issn: 2352-2208

Enlaces relacionados

URL