Loading…
A Decision Procedure for Path Feasibility of String Manipulating Programs with Integer Data Type
Strings are widely used in programs, especially in web applications. Integer data type occurs naturally in string-manipulating programs, and is frequently used to refer to lengths of, or positions in, strings. Analysis and testing of string-manipulating programs can be formulated as the path feasibi...
Saved in:
Published in: | arXiv.org 2020-07 |
---|---|
Main Authors: | , , , , , , |
Format: | Article |
Language: | English |
Subjects: | |
Online Access: | Get full text |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
cited_by | |
---|---|
cites | |
container_end_page | |
container_issue | |
container_start_page | |
container_title | arXiv.org |
container_volume | |
creator | Chen, Taolue Hague, Matthew He, Jinlong Hu, Denghang Anthony Widjaja Lin Rummer, Philipp Wu, Zhilin |
description | Strings are widely used in programs, especially in web applications. Integer data type occurs naturally in string-manipulating programs, and is frequently used to refer to lengths of, or positions in, strings. Analysis and testing of string-manipulating programs can be formulated as the path feasibility problem: given a symbolic execution path, does there exist an assignment to the inputs that yields a concrete execution that realizes this path? Such a problem can naturally be reformulated as a string constraint solving problem. Although state-of-the-art string constraint solvers usually provide support for both string and integer data types, they mainly resort to heuristics without completeness guarantees. In this paper, we propose a decision procedure for a class of string-manipulating programs which includes not only a wide range of string operations such as concatenation, replaceAll, reverse, and finite transducers, but also those involving the integer data-type such as length, indexof, and substring. To the best of our knowledge, this represents one of the most expressive string constraint languages that is currently known to be decidable. Our decision procedure is based on a variant of cost register automata. We implement the decision procedure, giving rise to a new solver OSTRICH+. We evaluate the performance of OSTRICH+ on a wide range of existing and new benchmarks. The experimental results show that OSTRICH+ is the first string decision procedure capable of tackling finite transducers and integer constraints, whilst its overall performance is comparable with the state-of-the-art string constraint solvers. |
format | article |
fullrecord | <record><control><sourceid>proquest</sourceid><recordid>TN_cdi_proquest_journals_2423984448</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2423984448</sourcerecordid><originalsourceid>FETCH-proquest_journals_24239844483</originalsourceid><addsrcrecordid>eNqNi9EKgjAYRkcQJOU7_NC1YNssu4xM6iIQ8t6W_drENtsm4dtn0AN0dfg435kQjzK2CmJO6Yz41jZhGNL1hkYR88h1BwmW0kqtIDO6xHtvECptIBPuASkKK2-ylW4AXcHFGalqOAslu74V7jvGqjbiaeEtx-CkHNZoIBFOQD50uCDTSrQW_R_nZJke8v0x6Ix-9Whd0ejeqFEVlFO2jTnnMfvv9QGaZURs</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2423984448</pqid></control><display><type>article</type><title>A Decision Procedure for Path Feasibility of String Manipulating Programs with Integer Data Type</title><source>Publicly Available Content (ProQuest)</source><creator>Chen, Taolue ; Hague, Matthew ; He, Jinlong ; Hu, Denghang ; Anthony Widjaja Lin ; Rummer, Philipp ; Wu, Zhilin</creator><creatorcontrib>Chen, Taolue ; Hague, Matthew ; He, Jinlong ; Hu, Denghang ; Anthony Widjaja Lin ; Rummer, Philipp ; Wu, Zhilin</creatorcontrib><description>Strings are widely used in programs, especially in web applications. Integer data type occurs naturally in string-manipulating programs, and is frequently used to refer to lengths of, or positions in, strings. Analysis and testing of string-manipulating programs can be formulated as the path feasibility problem: given a symbolic execution path, does there exist an assignment to the inputs that yields a concrete execution that realizes this path? Such a problem can naturally be reformulated as a string constraint solving problem. Although state-of-the-art string constraint solvers usually provide support for both string and integer data types, they mainly resort to heuristics without completeness guarantees. In this paper, we propose a decision procedure for a class of string-manipulating programs which includes not only a wide range of string operations such as concatenation, replaceAll, reverse, and finite transducers, but also those involving the integer data-type such as length, indexof, and substring. To the best of our knowledge, this represents one of the most expressive string constraint languages that is currently known to be decidable. Our decision procedure is based on a variant of cost register automata. We implement the decision procedure, giving rise to a new solver OSTRICH+. We evaluate the performance of OSTRICH+ on a wide range of existing and new benchmarks. The experimental results show that OSTRICH+ is the first string decision procedure capable of tackling finite transducers and integer constraints, whilst its overall performance is comparable with the state-of-the-art string constraint solvers.</description><identifier>EISSN: 2331-8422</identifier><language>eng</language><publisher>Ithaca: Cornell University Library, arXiv.org</publisher><subject>Applications programs ; Feasibility ; Integers ; Performance evaluation ; Solvers ; Strings ; Transducers</subject><ispartof>arXiv.org, 2020-07</ispartof><rights>2020. This work is published under http://arxiv.org/licenses/nonexclusive-distrib/1.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.</rights><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktohtml>$$Uhttps://www.proquest.com/docview/2423984448?pq-origsite=primo$$EHTML$$P50$$Gproquest$$Hfree_for_read</linktohtml><link.rule.ids>780,784,25753,37012,44590</link.rule.ids></links><search><creatorcontrib>Chen, Taolue</creatorcontrib><creatorcontrib>Hague, Matthew</creatorcontrib><creatorcontrib>He, Jinlong</creatorcontrib><creatorcontrib>Hu, Denghang</creatorcontrib><creatorcontrib>Anthony Widjaja Lin</creatorcontrib><creatorcontrib>Rummer, Philipp</creatorcontrib><creatorcontrib>Wu, Zhilin</creatorcontrib><title>A Decision Procedure for Path Feasibility of String Manipulating Programs with Integer Data Type</title><title>arXiv.org</title><description>Strings are widely used in programs, especially in web applications. Integer data type occurs naturally in string-manipulating programs, and is frequently used to refer to lengths of, or positions in, strings. Analysis and testing of string-manipulating programs can be formulated as the path feasibility problem: given a symbolic execution path, does there exist an assignment to the inputs that yields a concrete execution that realizes this path? Such a problem can naturally be reformulated as a string constraint solving problem. Although state-of-the-art string constraint solvers usually provide support for both string and integer data types, they mainly resort to heuristics without completeness guarantees. In this paper, we propose a decision procedure for a class of string-manipulating programs which includes not only a wide range of string operations such as concatenation, replaceAll, reverse, and finite transducers, but also those involving the integer data-type such as length, indexof, and substring. To the best of our knowledge, this represents one of the most expressive string constraint languages that is currently known to be decidable. Our decision procedure is based on a variant of cost register automata. We implement the decision procedure, giving rise to a new solver OSTRICH+. We evaluate the performance of OSTRICH+ on a wide range of existing and new benchmarks. The experimental results show that OSTRICH+ is the first string decision procedure capable of tackling finite transducers and integer constraints, whilst its overall performance is comparable with the state-of-the-art string constraint solvers.</description><subject>Applications programs</subject><subject>Feasibility</subject><subject>Integers</subject><subject>Performance evaluation</subject><subject>Solvers</subject><subject>Strings</subject><subject>Transducers</subject><issn>2331-8422</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2020</creationdate><recordtype>article</recordtype><sourceid>PIMPY</sourceid><recordid>eNqNi9EKgjAYRkcQJOU7_NC1YNssu4xM6iIQ8t6W_drENtsm4dtn0AN0dfg435kQjzK2CmJO6Yz41jZhGNL1hkYR88h1BwmW0kqtIDO6xHtvECptIBPuASkKK2-ylW4AXcHFGalqOAslu74V7jvGqjbiaeEtx-CkHNZoIBFOQD50uCDTSrQW_R_nZJke8v0x6Ix-9Whd0ejeqFEVlFO2jTnnMfvv9QGaZURs</recordid><startdate>20200714</startdate><enddate>20200714</enddate><creator>Chen, Taolue</creator><creator>Hague, Matthew</creator><creator>He, Jinlong</creator><creator>Hu, Denghang</creator><creator>Anthony Widjaja Lin</creator><creator>Rummer, Philipp</creator><creator>Wu, Zhilin</creator><general>Cornell University Library, arXiv.org</general><scope>8FE</scope><scope>8FG</scope><scope>ABJCF</scope><scope>ABUWG</scope><scope>AFKRA</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>HCIFZ</scope><scope>L6V</scope><scope>M7S</scope><scope>PIMPY</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>PTHSS</scope></search><sort><creationdate>20200714</creationdate><title>A Decision Procedure for Path Feasibility of String Manipulating Programs with Integer Data Type</title><author>Chen, Taolue ; Hague, Matthew ; He, Jinlong ; Hu, Denghang ; Anthony Widjaja Lin ; Rummer, Philipp ; Wu, Zhilin</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-proquest_journals_24239844483</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2020</creationdate><topic>Applications programs</topic><topic>Feasibility</topic><topic>Integers</topic><topic>Performance evaluation</topic><topic>Solvers</topic><topic>Strings</topic><topic>Transducers</topic><toplevel>online_resources</toplevel><creatorcontrib>Chen, Taolue</creatorcontrib><creatorcontrib>Hague, Matthew</creatorcontrib><creatorcontrib>He, Jinlong</creatorcontrib><creatorcontrib>Hu, Denghang</creatorcontrib><creatorcontrib>Anthony Widjaja Lin</creatorcontrib><creatorcontrib>Rummer, Philipp</creatorcontrib><creatorcontrib>Wu, Zhilin</creatorcontrib><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>Materials Science & Engineering Collection</collection><collection>ProQuest Central (Alumni)</collection><collection>ProQuest Central</collection><collection>ProQuest Central Essentials</collection><collection>ProQuest Central</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Engineering Collection</collection><collection>Engineering Database</collection><collection>Publicly Available Content (ProQuest)</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>Engineering collection</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Chen, Taolue</au><au>Hague, Matthew</au><au>He, Jinlong</au><au>Hu, Denghang</au><au>Anthony Widjaja Lin</au><au>Rummer, Philipp</au><au>Wu, Zhilin</au><format>book</format><genre>document</genre><ristype>GEN</ristype><atitle>A Decision Procedure for Path Feasibility of String Manipulating Programs with Integer Data Type</atitle><jtitle>arXiv.org</jtitle><date>2020-07-14</date><risdate>2020</risdate><eissn>2331-8422</eissn><abstract>Strings are widely used in programs, especially in web applications. Integer data type occurs naturally in string-manipulating programs, and is frequently used to refer to lengths of, or positions in, strings. Analysis and testing of string-manipulating programs can be formulated as the path feasibility problem: given a symbolic execution path, does there exist an assignment to the inputs that yields a concrete execution that realizes this path? Such a problem can naturally be reformulated as a string constraint solving problem. Although state-of-the-art string constraint solvers usually provide support for both string and integer data types, they mainly resort to heuristics without completeness guarantees. In this paper, we propose a decision procedure for a class of string-manipulating programs which includes not only a wide range of string operations such as concatenation, replaceAll, reverse, and finite transducers, but also those involving the integer data-type such as length, indexof, and substring. To the best of our knowledge, this represents one of the most expressive string constraint languages that is currently known to be decidable. Our decision procedure is based on a variant of cost register automata. We implement the decision procedure, giving rise to a new solver OSTRICH+. We evaluate the performance of OSTRICH+ on a wide range of existing and new benchmarks. The experimental results show that OSTRICH+ is the first string decision procedure capable of tackling finite transducers and integer constraints, whilst its overall performance is comparable with the state-of-the-art string constraint solvers.</abstract><cop>Ithaca</cop><pub>Cornell University Library, arXiv.org</pub><oa>free_for_read</oa></addata></record> |
fulltext | fulltext |
identifier | EISSN: 2331-8422 |
ispartof | arXiv.org, 2020-07 |
issn | 2331-8422 |
language | eng |
recordid | cdi_proquest_journals_2423984448 |
source | Publicly Available Content (ProQuest) |
subjects | Applications programs Feasibility Integers Performance evaluation Solvers Strings Transducers |
title | A Decision Procedure for Path Feasibility of String Manipulating Programs with Integer Data Type |
url | http://sfxeu10.hosted.exlibrisgroup.com/loughborough?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-02T19%3A25%3A41IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=document&rft.atitle=A%20Decision%20Procedure%20for%20Path%20Feasibility%20of%20String%20Manipulating%20Programs%20with%20Integer%20Data%20Type&rft.jtitle=arXiv.org&rft.au=Chen,%20Taolue&rft.date=2020-07-14&rft.eissn=2331-8422&rft_id=info:doi/&rft_dat=%3Cproquest%3E2423984448%3C/proquest%3E%3Cgrp_id%3Ecdi_FETCH-proquest_journals_24239844483%3C/grp_id%3E%3Coa%3E%3C/oa%3E%3Curl%3E%3C/url%3E&rft_id=info:oai/&rft_pqid=2423984448&rft_id=info:pmid/&rfr_iscdi=true |