• Documents
  • Authors
  • Tables
  • Log in
  • Sign up
  • MetaCart
  • DMCA
  • Donate

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations

Adding nesting structure to words,” (2009)

by R Alur, P Madhusudan
Add To MetaCart

Tools

Sorted by:
Results 1 - 10 of 119
Next 10 →

A robust class of context-sensitive languages

by Salvatore La Torre, P. Madhusudan, Gennaro Parlato - In LICS , 2007
"... We define a new class of languages defined by multi-stack automata that forms a robust subclass of context-sensitive languages, with decidable emptiness and closure under boolean operations. This class, called multi-stack visibly pushdown languages (MVPLs), is defined using multi-stack pushdown auto ..."
Abstract - Cited by 43 (7 self) - Add to MetaCart
We define a new class of languages defined by multi-stack automata that forms a robust subclass of context-sensitive languages, with decidable emptiness and closure under boolean operations. This class, called multi-stack visibly pushdown languages (MVPLs), is defined using multi-stack pushdown automata with two restrictions: (a) the pushdown automaton is visible, i.e. the input letter determines the operation on the stacks, and (b) any computation of the machine can be split into�stages, where in each stage, there is at most one stack that is popped. MVPLs are an extension of visibly pushdown languages that captures noncontext free behaviors, and has applications in analyzing abstractions of multithreaded recursive programs, significantly enlarging the search space that can be explored for them. We show that MVPLs are closed under boolean operations, and problems such as emptiness and inclusion are decidable. We characterize MVPLs using monadic second-order logic over appropriate structures, and exhibit a Parikh theorem for them. 1.
(Show Context)

Citation Context

...urally present, which relates calls to procedures with their corresponding returns. Viewing the nesting structure as explicit edges in the document led to the recently studied theory of nested words (=-=[1, 2]-=-). The notion of regularity for nested words captures a different class of languages than regular word languages (i.e. regular nested word languages can be context-free when the nesting edge relation ...

On notions of regularity for data languages

by Henrik Björklund, Thomas Schwentick - In FCT , 2007
"... Motivated by considerations in XML database theory and model checking, data strings have been introduced as an extension of finite alphabet strings which carry, at each position, a symbol and a data value from an infinite domain. Previous work has shown that it is difficult to come up with an expres ..."
Abstract - Cited by 28 (5 self) - Add to MetaCart
Motivated by considerations in XML database theory and model checking, data strings have been introduced as an extension of finite alphabet strings which carry, at each position, a symbol and a data value from an infinite domain. Previous work has shown that it is difficult to come up with an expressive yet decidable automaton model for data languages. Recently, such a model, data automata, was introduced. This paper introduces a simpler but equivalent model and investigates its expressive power, algorithmic and closure properties, and some extensions. 1
(Show Context)

Citation Context

.... The automaton C is the product of the two automata A and B from Example 3.2 after elimination of the unreachable states. Figure 4 depicts and explains C. CMAs are similar to the automata studied in =-=[2]-=- for nested words. However, stated in the terms of this paper, in [2] each data value can only appear twice and the edges between positions with equal value must be nested. Proposition 3.7. Data autom...

First-order and temporal logics for nested words

by Rajeev Alur, Marcelo Arenas, Pablo Barceló, Kousha Etessami, Neil Immerman, Leonid Libkin - In LICS 2007
"... Nested words are a structured model of execution paths in procedural programs, reflecting their call and return nesting structure. Finite nested words also capture the structure of parse trees and other tree-structured data, such as XML. We provide new temporal logics for finite and infinite nested ..."
Abstract - Cited by 27 (4 self) - Add to MetaCart
Nested words are a structured model of execution paths in procedural programs, reflecting their call and return nesting structure. Finite nested words also capture the structure of parse trees and other tree-structured data, such as XML. We provide new temporal logics for finite and infinite nested words, which are natural extensions of LTL, and prove that these logics are first-order expressivelycomplete. One of them is based on adding a ”within” modality, evaluating a formula on a subword, to a logic CaRet previously studied in the context of verifying properties of recursive state machines. The other logic is based on the notion of a summary path that combines the linear and nesting structures. For that logic, both model-checking and satisfiability are shown to be EXPTIME-complete. Finally, we prove that first-order logic over nested words has the three-variable property, and we present a temporal logic for nested words which is complete for the twovariable fragment of first-order. 1
(Show Context)

Citation Context

...e between each point during the execution at which a procedure is called and the point when we return from that procedure call. This leads naturally to the notion of a finite or infinite nested word (=-=[4, 3, 2]-=-). A nested word is simply a finite or ω-word supplied with an additional binary matching relation which relates corresponding call and return points (and of course satisfies “well-bracketing” propert...

Marrying words and trees

by Rajeev Alur - PODS , 2007
"... Traditionally, data that has both linear and hierarchical structure, such as annotated linguistic data, is modeled using ordered trees and queried using tree automata. In this paper, we argue that nested words and automata over nested words offer a better way to capture and process the dual structur ..."
Abstract - Cited by 24 (1 self) - Add to MetaCart
Traditionally, data that has both linear and hierarchical structure, such as annotated linguistic data, is modeled using ordered trees and queried using tree automata. In this paper, we argue that nested words and automata over nested words offer a better way to capture and process the dual structure. Nested words generalize both words and ordered trees, and allow both word and tree operations. We study various classes of automata over nested words, and show that while they enjoy expressiveness and succinctness benefits over word and tree automata, their analysis complexity and closure properties are analogous to the corresponding word and tree special cases. In particular, we show that finite-state nested word automata can be exponentially more succinct than tree automata, and pushdown nested word automata include the two incomparable classes of context-free word languages and context-free tree languages.

The Tree Width of Auxiliary Storage

by P. Madhusudan, Gennaro Parlato
"... We propose a generalization of results on the decidability of emptiness for several restricted classes of sequential and distributed automata with auxiliary storage (stacks, queues) that have recently been proved. Our generalization relies on reducing emptiness of these automata to finite-state grap ..."
Abstract - Cited by 24 (2 self) - Add to MetaCart
We propose a generalization of results on the decidability of emptiness for several restricted classes of sequential and distributed automata with auxiliary storage (stacks, queues) that have recently been proved. Our generalization relies on reducing emptiness of these automata to finite-state graph automata (without storage) restricted to monadic second-order (MSO) definable graphs of bounded tree-width, where the graph structure encodes the mechanism provided by the auxiliary storage. Our results outline a uniform mechanism to derive emptiness algorithms for automata, explaining and simplifying several existing results, as well as proving new decidability results. Categories and Subject Descriptors F.1.1 [Theory of Computation]:

Statically-Directed Dynamic Automated Test Generation

by Domagoj Babić, Lorenzo Martignoni, Stephen McCamant, Dawn Song , 2011
"... We present a new technique for exploiting static analysis to guide dynamic automated test generation for binary programs, prioritizing the paths to be explored. Our technique is a three-stage process, which alternates dynamic and static analysis. In the first stage, we run dynamic analysis with a sm ..."
Abstract - Cited by 20 (4 self) - Add to MetaCart
We present a new technique for exploiting static analysis to guide dynamic automated test generation for binary programs, prioritizing the paths to be explored. Our technique is a three-stage process, which alternates dynamic and static analysis. In the first stage, we run dynamic analysis with a small number of seed tests to resolve indirect jumps in the binary code and build a visibly pushdown automaton (VPA) reflecting the global control-flow of the program. Further, we augment the computed VPA with statically computable jumps not executed by the seed tests. In the second stage, we apply static analysis to the inferred automaton to find potential vulnerabilities, i.e., targets for the dynamic analysis. In the third stage, we use the results of the prior phases to assign weights to VPA edges. Our symbolic-execution based automated test generation tool then uses the weighted shortest-path lengths in the VPA to direct its exploration to the target potential vulnerabilities. Preliminary experiments on a suite of benchmarks extracted from real applications show that static analysis allows exploration to reach vulnerabilities it otherwise would not, and the generated test inputs prove that the static warnings indicate true positives.
(Show Context)

Citation Context

...ges, we devise a three-stage approach: The first stage uses a combined dynamic and static analysis to generate an interprocedural control-flow graph, represented as a visibly pushdown automaton (VPA) =-=[1]-=-. The second stage performs static analysis on the VPA to identify possible vulnerabilities and to compute other information used later to guide the search, like data-flow dependency slices. The third...

Improved Memory-Access Analysis for x86 Executables

by Thomas Reps, Gogul Balakrishnan
"... Over the last seven years, we have developed static-analysis methods to recover a good approximation to the variables and dynamically allocated memory objects of a stripped executable, and to track the flow of values through them. It is relatively easy to track the effects of an instruction operand ..."
Abstract - Cited by 16 (1 self) - Add to MetaCart
Over the last seven years, we have developed static-analysis methods to recover a good approximation to the variables and dynamically allocated memory objects of a stripped executable, and to track the flow of values through them. It is relatively easy to track the effects of an instruction operand that refers to a global address (i.e., an access to a global variable) or that uses a stack-frame offset (i.e., an access to a local scalar variable via the frame pointer or stack pointer). In our work, our algorithms are able to provide useful information for close to 100% of such “direct ” uses and defs. It is much harder for a static-analysis algorithm to track the effects of an instruction operand that uses a non-stack-frame register. These “indirect” uses and defs correspond to accesses to an array or a dynamically allocated memory object. In one study, our approach recovered useful information for only 29 % of indirect uses and 33 % of indirect defs. However, using the technique described in this paper, the algorithm recovered useful information for 81 % of indirect uses and 90 % of indirect defs.
(Show Context)

Citation Context

...modify global variable g, using GMODMergeAtEndCall during context-insensitive VSA results in better information at nodes 4 and 7; at node 4 the range for g is [0, 0], and at node 7 the range for g is =-=[1, 1]-=-. The actual implementation [4, Ch. 7] of GMODMergeAtEndCall is slightly more complicated. In addition to combining the information from the call-site and the exit node, it performs the following oper...

MSO decidability of Multi-Pushdown Systems via Split-Width

by Aiswarya Cyriac, Paul Gastin, K. Narayan Kumar , 2012
"... Multi-threaded programs with recursion are naturally modeled as multi-pushdown systems. The behaviors are represented as multiply nested words (MNWs), which are words enriched with additional binary relations for each stack matching a push operation with the corresponding pop operation. Any MNW ca ..."
Abstract - Cited by 15 (4 self) - Add to MetaCart
Multi-threaded programs with recursion are naturally modeled as multi-pushdown systems. The behaviors are represented as multiply nested words (MNWs), which are words enriched with additional binary relations for each stack matching a push operation with the corresponding pop operation. Any MNW can be decomposed by two basic and natural operations: shuffle of two sequences of factors and merge of consecutive factors of a sequence. We say that the split-width of an MNW is k if it admits a decomposition where the number of factors in each sequence is at most k. The MSO theory of MNWs with split-width k is decidable. We introduce two very general classes of MNWs that strictly generalize known decidable classes and prove their MSO decidability via their split-width and obtain comparable or better bounds of tree-width of known classes.
(Show Context)

Citation Context

...ls Γ = {⋖, � 1 , � 2 , . . . , � s )}. We refer to the edges labelled by ⋖ as linear edges and those labelled by � i as nesting edges. If s = 1, a MNW is simply called a nested word in the literature =-=[1]-=-.MSO over MNWs We assume that we have an infinite supply of first-order variables x, y, . . . and second-order variables X, Y, . . .. First order variables vary over positions of an MNW while second ...

Directed proof generation for machine code

by A. Thakur, J. Lim, A. Lal, A. Burton, E. Driscoll, M. Elder, T. Andersen, T. Reps , 2010
"... Abstract. We present the algorithms used in MCVETO (Machine-Code VErification TOol), a tool to check whether a stripped machinecode program satisfies a safety property. The verification problem that MCVETO addresses is challenging because it cannot assume that it has access to (i) certain structures ..."
Abstract - Cited by 15 (6 self) - Add to MetaCart
Abstract. We present the algorithms used in MCVETO (Machine-Code VErification TOol), a tool to check whether a stripped machinecode program satisfies a safety property. The verification problem that MCVETO addresses is challenging because it cannot assume that it has access to (i) certain structures commonly relied on by source-code verification tools, such as control-flow graphs and call-graphs, and (ii) metadata, such as information about variables, types, and aliasing. It cannot even rely on out-of-scope local variables and return addresses being protected from the program’s actions. What distinguishes MCVETO from other work on software model checking is that it shows how verification of machine-code can be performed, while avoiding conventional techniques that would be unsound if applied at the machine-code level. 1
(Show Context)

Citation Context

...alls on adjust, the loop-head in adjust, and the branch on y!=500. Representing the Abstract Graph. The infinite abstract graph used in MCVETO is finitely represented as a nested word automaton (NWA) =-=[2]-=- and queried by symbolic operations. (See App. A for definitions related to NWAs.) As discussed in §3.1 the key property of NWAs for abstraction refinement is that, even though they represent matched ...

R.: Instrumenting C programs with nested word monitors

by Swarat Chaudhuri, Rajeev Alur - In: SPIN. (2007
"... In classical automata-theoretic model checking [6], a system model generates a language L of words modeling system executions, and verification involves ..."
Abstract - Cited by 11 (3 self) - Add to MetaCart
In classical automata-theoretic model checking [6], a system model generates a language L of words modeling system executions, and verification involves
(Show Context)

Citation Context

...t these notations cannot reason modularly about programs. If programs are structured, why not specifications as well? These problems can be overcome if a program execution is modeled as a nested word =-=[1]-=- rather than as a word. A nested word is obtained by adding, to a word modeling an execution, a set of nested jump-edges that connect call sites to their matching returns. A nested word automaton proc...

Powered by: Apache Solr
  • About CiteSeerX
  • Submit and Index Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2019 The Pennsylvania State University