Abstract
The Universal Resolving Algorithm was originally formulated for inverse computation of tail-recursive programs. We present an extension to general recursion that improves the efficiency and termination of inverse computation because partially produced output is used to reduce the search space. In addition, we present a transformation using a new unification-based equality operator. Examples demonstrate the advantages of the new technique. We found that these extensions can also improve inverse computation in the context of functional-logic languages.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Abramov, S.M.: Metavychislenija i logicheskoe programmirovanie (Metacomputation and logic programming) (In Russian). Programmirovanie 3, 31–44 (1991)
Abramov, S.M., Glück, R.: The universal resolving algorithm: inverse computation in a functional language. In: Backhouse, R., Oliveira, J.N. (eds.) MPC 2000. LNCS, vol. 1837, pp. 187–212. Springer, Heidelberg (2000)
Abramov, S.M., Glück, R.: The universal resolving algorithm and its correctness: inverse computation in a functional language. Science of Computer Programming 43(2-3), 193–229 (2002)
Albert, E., Vidal, G.: The narrowing-driven approach to functional logic program specialization. New Generation Computing 20(1), 3–26 (2002)
Ershov, A.P.: On the essence of compilation. In: Neuhold, E. (ed.) Formal Description of Programming Concepts, pp. 391–420. North-Holland, Amsterdam (1978)
Glück, R., Klimov, A.V.: Occam’s razor in metacomputation: the notion of a perfect process tree. In: Cousot, P., et al. (eds.) WSA 1993. LNCS, vol. 724, pp. 112–123. Springer, Heidelberg (1993)
Glück, R., Sørensen, M.H.: Partial deduction and driving are equivalent. In: Penjam, J. (ed.) PLILP 1994. LNCS, vol. 844, pp. 165–181. Springer, Heidelberg (1994)
Hanus, M.: The integration of functions into logic programming: from theory to practice. Journal of Logic Programming 19 & 20, 583–628 (1994)
Hanus, M.: Curry: an integrated functional logic language (version 0.8). Report, University of Kiel (2003)
Hoffmann, B., Plump, D.: Implementing term rewriting by jungle evaluation. Informatique Théorique et Applications/Theoretical Informatics and Applications 25(5), 445–472 (1991)
Moreno-Navarro, J.J., Rodriguez-Artalejo, M.: Logic programming with functions and predicates: the language Babel. J. of Logic Programming 12(3), 191–223 (1992)
Mu, S.-C., Bird, R.: Inverting functions as folds. In: Boiten, E.A., Möller, B. (eds.) MPC 2002. LNCS, vol. 2386, pp. 209–232. Springer, Heidelberg (2002)
Nemytykh, A.P., Pinchuk, V.A.: Program transformation with metasystem transitions: experiments with a supercompiler. In: Bjorner, D., Broy, M., Pottosin, I.V. (eds.) PSI 1996. LNCS, vol. 1181, pp. 249–260. Springer, Heidelberg (1996)
Romanenko, A.Y.: The generation of inverse functions in Refal. In: Bjørner, D., Ershov, A.P., Jones, N.D. (eds.) Partial Evaluation and Mixed Computation, pp. 427–444. North-Holland, Amsterdam (1988)
Secher, J.P.: Driving in the jungle. In: Danvy, O., Filinski, A. (eds.) PADO 2001. LNCS, vol. 2053, pp. 198–217. Springer, Heidelberg (2001)
Secher, J.P., Sørensen, M.H.: On perfect supercompilation. In: Bjorner, D., Broy, M., Zamulin, A.V. (eds.) PSI 1999. LNCS, vol. 1755, pp. 113–127. Springer, Heidelberg (2000)
Secher, J.P., Sørensen, M.H.: From checking to inference via driving and DAG grammars. In: ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pp. 41–51. ACM Press, New York (2002)
Turchin, V.F.: Equivalent transformations of recursive functions defined in Refal (In Russian). In: Tjeorija Jazykov i Mjetody Programmirovanija (Proceedings of the Symposium on the Theory of Languages and Programming Methods), Kiev-Alushta, USSR, pp. 31–42 (1972)
Turchin, V.F.: The concept of a supercompiler. ACM Transactions on Programming Languages and Systems 8(3), 292–325 (1986)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Abramov, S., Glück, R., Klimov, Y. (2007). An Universal Resolving Algorithm for Inverse Computation of Lazy Languages . In: Virbitskaite, I., Voronkov, A. (eds) Perspectives of Systems Informatics. PSI 2006. Lecture Notes in Computer Science, vol 4378. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-70881-0_6
Download citation
DOI: https://doi.org/10.1007/978-3-540-70881-0_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-70880-3
Online ISBN: 978-3-540-70881-0
eBook Packages: Computer ScienceComputer Science (R0)