Narrowing basically extends rewriting by allowing free variables
in terms and by replacing matching with unification. As a consequence,
the search space of narrowing becomes usually infinite, as in
logic programming. ...
[EN] In a reversible language, any forward computation can be undone by a finite sequence of backward steps. Reversible computing has been studied in the context of different programming languages and formalisms, where it ...
Nishida, Naoki; Vidal Oriola, Germán Francisco(Elsevier, 2014-01)
Tail recursive functions are a special kind of recursive functions where the last action in
their body is the recursive call. Tail recursion is important for a number of reasons (e.g.,
they are usually more efficient). ...
Relative termination, a generalized notion of termination, has been used in a number of different contexts like proving the confluence of rewrite systems or analyzing the termination of narrowing. In this paper, we introduce ...
[EN] A term rewrite system is terminating when no infinite reduction sequences are
possible. Relative termination generalizes termination by permitting infinite reductions as
long as some distinguished rules are not applied ...
Galindo-Jiménez, Carlos Santiago; Nishida, Naoki; Silva, Josep; Tamarit, Salvador(Springer, 2020-07-10)
[EN] This paper presents reverCSP, a tool to animate both forward and backward CSP computations. This ability to reverse computations can be done step by step or backtracking to a given desired state of interest. reverCSP ...
[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, ...
Galindo-Jiménez, Carlos Santiago; Nishida, Naoki; Silva, Josep; Tamarit, Salvador(Institute of Electrical and Electronics Engineers, 2021-06-01)
[EN] Reversibility enables a program to be executed both forwards and backwards. This ability allows programmers to backtrack the execution to a previous state. This is essential if the computation is not deterministic ...
Nishida, Naoki; Palacios Corella, Adrián; Vidal Oriola, Germán Francisco; Nishida(Schloss Dagstuhl-Leibniz-Zentrum für Informatik GmbH, Dagstuhl Publishing, 2016)
Essentially, in a reversible programming language, for each forward computation step from state S to state S', there exists a constructive and deterministic method to go backwards from state S' to state S. Besides its ...