Streaming Transducers for Algorithmic Verification of Single-pass List-processing Programs

被引:41
|
作者
Alur, Rajeev [1 ]
Cerny, Pavol [1 ]
机构
[1] Univ Penn, Philadelphia, PA 19104 USA
关键词
transducers; algorithmic software verification; lists;
D O I
10.1145/1926385.1926454
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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, an a finite set of variables ranging over data strings. At every step, it tan 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 that 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, are in PSPACE. 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 modily a singly-linked heap by changing next-pointers of heap-nodes and by adding new nodes. The main restriction specifics how the next-pointers can be used for traversal. We also identify an expressively equivalent fragment of functional programs that traverse a I st 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 revel se.
引用
收藏
页码:599 / 610
页数:12
相关论文
共 43 条
  • [1] Streaming Transducers for Algorithmic Verification of Single-pass List-processing Programs
    Alur, Rajeev
    Cerny, Pavol
    ACM SIGPLAN NOTICES, 2011, 46 (01) : 599 - 610
  • [2] SINGLE-PASS LIST PARTITIONING
    Frias, Leonor
    Singler, Johannes
    Sanders, Peter
    SCALABLE COMPUTING-PRACTICE AND EXPERIENCE, 2008, 9 (03): : 179 - 196
  • [3] Single-pass list partitioning
    Universitat Politècnica de Catalunya, Dep. de Llenguatges i Sistemes Informátics, Jordi Girona Salgado, 1-3, Barcelona
    08034, Spain
    不详
    76128, Germany
    Scalable Comput. Pract. Exp., 2008, 3 (179-184):
  • [4] Single-pass list partitioning
    Frias, Leonor
    Singler, Johannes
    Sanders, Peter
    CISIS 2008: THE SECOND INTERNATIONAL CONFERENCE ON COMPLEX, INTELLIGENT AND SOFTWARE INTENSIVE SYSTEMS, PROCEEDINGS, 2008, : 817 - +
  • [5] Single-pass TFF processing
    Lutz, Herb
    Steen, Jonathan
    Chefer, Kate
    ABSTRACTS OF PAPERS OF THE AMERICAN CHEMICAL SOCIETY, 2011, 241
  • [6] A DISTRIBUTED HOST-SATELLITE SYSTEM FOR LIST-PROCESSING PROGRAMS
    DAVIES, DJM
    INFOR, 1980, 18 (04) : 323 - 341
  • [7] Single-Pass Streaming Algorithms for Correlation Clustering
    Behnezhad, Soheil
    Charikar, Moses
    Ma, Weiyun
    Tan, Li-Yang
    PROCEEDINGS OF THE 2023 ANNUAL ACM-SIAM SYMPOSIUM ON DISCRETE ALGORITHMS, SODA, 2023, : 819 - 849
  • [8] DISTRIBUTED HOST-SATELLITE SYSTEM FOR LIST-PROCESSING PROGRAMS.
    Davies, D.Julian M.
    INFOR Journal, 1980, 18 (04): : 323 - 341
  • [9] Gradual Synthesis for Static Parallelization of Single-Pass Array-Processing Programs
    Fedyukovich, Grigory
    Ahmad, Maaz Bin Safeer
    Bodik, Rastislav
    ACM SIGPLAN NOTICES, 2017, 52 (06) : 572 - 585
  • [10] Diafiltration approach for single-pass TFF processing
    Petrone, Jon T.
    Griffin, Jennifer J.
    ABSTRACTS OF PAPERS OF THE AMERICAN CHEMICAL SOCIETY, 2013, 245