skip to main content
10.1145/1926385.1926454acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article

Streaming transducers for algorithmic verification of single-pass list-processing programs

Published:26 January 2011Publication History

ABSTRACT

We introduce streaming data string transducers that map input data strings to output data strings in a single left-to-right pass in linear time. Data strings are (unbounded) sequences of data values, tagged with symbols from a finite set, over a potentially infinite data domain that supports only the operations of equality and ordering. The transducer uses a finite set of states, a finite set of variables ranging over the data domain, and a finite set of variables ranging over data strings. At every step, it can make decisions based on the next input symbol, updating its state, remembering the input data value in its data variables, and updating data-string variables by concatenating data-string variables and new symbols formed from data variables, while avoiding duplication. We establish PSPACE bounds for the problems of checking functional equivalence of two streaming transducers, and of checking whether a streaming transducer satisfies pre/post verification conditions specified by streaming acceptors over input/output data-strings.

We identify a class of imperative and a class of functional programs, manipulating lists of data items, which can be effectively translated to streaming data-string transducers. The imperative programs dynamically modify a singly-linked heap by changing next-pointers of heap-nodes and by adding new nodes. The main restriction specifies how the next-pointers can be used for traversal. We also identify an expressively equivalent fragment of functional programs that traverse a list using syntactically restricted recursive calls. Our results lead to algorithms for assertion checking and for checking functional equivalence of two programs, written possibly in different programming styles, for commonly used routines such as insert, delete, and reverse.

Skip Supplemental Material Section

Supplemental Material

54-mpeg-4.mp4

mp4

256.3 MB

References

  1. R. Alur and P. Černý. Expressivness of streaming string transducers. Invited paper. In FSTTCS, 2010.Google ScholarGoogle Scholar
  2. R. Alur, P. Černý, and S. Weinstein. Algorithmic analysis of array-accessing programs. In CSL, pages 86--101, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. M. Bojańczyk, A. Muscholl, T. Schwentick, L. Segoufin, and C. David. Two-variable logic on words with data. In LICS, pages 7--16, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. A. Bouajjani, B. Jonsson, M. Nilsson, and T. Touili. Regular model checking. In CAV, pages 403--418, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. A. Bouajjani, P. Habermehl, P. Moro, and T. Vojnar. Verifying programs with dynamic 1-selector-linked structures in regular model checking. In TACAS, pages 13--29, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. A. Bouajjani, M. Bozga, P. Habermehl, R. Iosif, P. Moro, and T. Vojnar. Programs with lists are counter automata. In CAV, pages 517--531, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. M. Bozga and R. Iosif. On flat programs with lists. In VMCAI, pages 122--136, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. P. Černý, A. Radhakrishna, D. Zufferey, S. Chaudhuri, and R. Alur. Model checking of linearizability of concurrent list implementations. In CAV, pages 465--479, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. S. Chakraborty. Reasoning about heap manipulating programs using automata techniques. To appear in IISc-World Scientific Review Volume on Modern Applications of Automata Theory.Google ScholarGoogle Scholar
  10. D. Distefano, P. O'Hearn, and H. Yang. A local shape analysis based on separation logic. In TACAS, pages 287--302, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. J. Engelfriet and H. Hoogeboom. MSO definable string transductions and two-way finite-state transducers. ACM Trans. Comput. Log., 2 (2): 216--254, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. W. Landi. Undecidability of static analysis. LOPLAS, 1 (4): 323--337, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. R. Manevich, E. Yahav, G. Ramalingam, and S. Sagiv. Predicate abstraction and canonical abstraction for singly-linked lists. In VMCAI, pages 181--198, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. R. Manevich, J. Berdine, B. Cook, G. Ramalingam, and M. Sagiv. Shape analysis by graph decomposition. In TACAS, pages 3--18, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. F. Neven, T. Schwentick, and V. Vianu. Finite state machines for strings over infinite alphabets. ACM Trans. Comput. Logic, 5 (3): 403--435, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. B. Pierce. Types and programming languages. MIT Press, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. A. Podelski and T. Wies. Counterexample-guided focus. In POPL, pages 249--260, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. G. Ramalingam. The undecidability of aliasing. ACM Trans. Program. Lang. Syst., 16 (5): 1467--1471, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. S. Sagiv, T. Reps, and R. Wilhelm. Parametric shape analysis via 3-valued logic. ACM Trans. Program. Lang. Syst., 24 (3): 217--298, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. T. Touili. Regular model checking using widening techniques. Electr. Notes Theor. Comput. Sci., 50 (4), 2001.Google ScholarGoogle Scholar

Index Terms

  1. Streaming transducers for algorithmic verification of single-pass list-processing programs

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Conferences
            POPL '11: Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
            January 2011
            652 pages
            ISBN:9781450304900
            DOI:10.1145/1926385
            • cover image ACM SIGPLAN Notices
              ACM SIGPLAN Notices  Volume 46, Issue 1
              POPL '11
              January 2011
              624 pages
              ISSN:0362-1340
              EISSN:1558-1160
              DOI:10.1145/1925844
              Issue’s Table of Contents

            Copyright © 2011 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 26 January 2011

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

            Acceptance Rates

            Overall Acceptance Rate824of4,130submissions,20%

            Upcoming Conference

            POPL '25

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader