Polynomial-time inverse computation for accumulative functions with multiple data traversals

Research output: Chapter in Book/Report/Conference proceedingConference contribution

9 Citations (Scopus)

Abstract

Inverse computation has many applications such as serialization/ deserialization, providing support for undo, and test-case generation for software testing. In this paper, we propose an inverse computation method that always terminates for a class of functions known as parameter-linear macro tree transducers, which involve multiple data traversals and the use of accumulations. The key to our method is the observation that a function in the class can be regarded as a non-accumulative context-generating transformation without multiple data traversals. Accordingly, we demonstrate that it is easy to achieve terminating inverse computation for the class by context-wise memoization of the inverse computation results. We also show that when we use a tree automaton to express the inverse computation results, the inverse computation runs in time polynomial to the size of the original output and the textual program size.

Original languageEnglish
Title of host publicationPOPL
Subtitle of host publicationPEPM'12 - Proceedings of the ACM SIGPLAN 2012 Workshop on Partial Evaluation and Program Manipulation
PublisherAssociation for Computing Machinery
Pages5-14
Number of pages10
ISBN (Print)9781450311182
DOIs
Publication statusPublished - 2012
EventACM SIGPLAN 2012 Workshop on Partial Evaluation and Program Manipulation, PEPM'12, Co-located with POPL 2012 - Philadelphia, PA, United States
Duration: 2012 Jan 232012 Jan 24

Publication series

NameConference Record of the Annual ACM Symposium on Principles of Programming Languages
ISSN (Print)0730-8566

Other

OtherACM SIGPLAN 2012 Workshop on Partial Evaluation and Program Manipulation, PEPM'12, Co-located with POPL 2012
CountryUnited States
CityPhiladelphia, PA
Period12/1/2312/1/24

Keywords

  • Functional programming
  • Inverse computation
  • Program inversion
  • Program transformation
  • Tree automata
  • Tree transducers

ASJC Scopus subject areas

  • Software

Fingerprint Dive into the research topics of 'Polynomial-time inverse computation for accumulative functions with multiple data traversals'. Together they form a unique fingerprint.

Cite this