41 results on '"Gange, G"'
Search Results
2. Optimising Automatic Calibration of Electric Muscle Stimulation
- Author
-
Gange, G, Knibbe, J, Gange, G, and Knibbe, J
- Abstract
Electrical Muscle Stimulation (EMS) has become a popular interaction technology in Human-Computer Interaction; allowing the computer to take direct control of the user's body. To date, however, the explorations have been limited to coarse, toy examples, due to the low resolution of achievable control. To increase this resolution, the EMS needs to increase significantly in complexity - using large numbers of electrodes in complex patterns. The calibration of such a system remains an unsolved challenge. We present a new SAT-based black-box calibration method, which requires no spatial information about muscular or electrode positioning. The method encodes domain knowledge and observations in a constraint model, and uses these to prune the space of feasible control signals. In a simulated environment we find this method can scale reliably to large arrays while requiring only a modest number of trials, and preliminary tests on real hardware show we can effectively calibrate an electrode array in a few minutes.
- Published
- 2021
3. Lightweight Nontermination Inference with CHCs
- Author
-
Calinescu, R, Pasareanu, CS, Kafle, B, Gange, G, Schachte, P, Sondergaard, H, Stuckey, PJ, Calinescu, R, Pasareanu, CS, Kafle, B, Gange, G, Schachte, P, Sondergaard, H, and Stuckey, PJ
- Abstract
Non-termination is an unwanted program property (considered a bug) for some software systems, and a safety property for other systems. In either case, automated discovery of preconditions for non-termination is of interest. We introduce NtHorn, a fast lightweight non-termination analyser, able to deduce non-trivial sufficient conditions for non-termination. Using Constrained Horn Clauses (CHCs) as a vehicle, we show how established techniques for CHC program transformation and abstract interpretation can be exploited for the purpose of non-termination analysis. NtHorn is comparable in power to the state-of-the-art non-termination analysis tools, as measured on standard competition benchmark suites (consisting of integer manipulating programs), while typically solving problems an order of magnitude faster.
- Published
- 2021
4. Disjunctive Interval Analysis
- Author
-
Dragoi, C, Mukherjee, S, Namjoshi, K, Gange, G, Navas, JA, Schachte, P, Sondergaard, H, Stuckey, PJ, Dragoi, C, Mukherjee, S, Namjoshi, K, Gange, G, Navas, JA, Schachte, P, Sondergaard, H, and Stuckey, PJ
- Abstract
We revisit disjunctive interval analysis based on the Boxes abstract domain. We propose the use of what we call range decision diagrams (RDDs) to implement Boxes, and we provide algorithms for the necessary RDD operations. RDDs tend to be more compact than the linear decision diagrams (LDDs) that have traditionally been used for Boxes. Representing information more directly, RDDs also allow for the implementation of more accurate abstract operations. This comes at no cost in terms of analysis efficiency, whether LDDs utilise dynamic variable ordering or not. RDD and LDD implementations are available in the Crab analyzer, and our experiments confirm that RDDs are well suited for disjunctive interval analysis.
- Published
- 2021
5. Dashed strings for string constraint solving
- Author
-
Amadini, R, Gange, G, Stuckey, PJ, Amadini, R, Gange, G, and Stuckey, PJ
- Abstract
String processing is ubiquitous across computer science, and arguably more so in web programming — where it is also a critical part of security issues such as injection attacks. In recent years, a number of string solvers have been developed to solve combinatorial problems involving string variables and constraints. We examine the dashed string approach to string constraint solving, which represents an unknown string as a sequence of blocks of characters with bounds on their cardinalities. The solving approach relies on propagation of information about the blocks of characters that arise from reasoning about the constraints in which they occur. This approach shows promising performance on many benchmarks involving constraints like string length, equality, concatenation, and regular expression membership. In this paper, we formally review the definition, the properties and the use of dashed strings for string constraint solving, and we provide an empirical validation that confirms the effectiveness of this approach.
- Published
- 2020
6. String constraint solving: past, present and future
- Author
-
DeGiacomo, G, Catala, A, Dilkina, B, Milano, M, Barro, S, Bugarin, A, Lang, J, Amadini, R, Gange, G, Schachte, P, Sondergaard, H, Stuckey, PJ, DeGiacomo, G, Catala, A, Dilkina, B, Milano, M, Barro, S, Bugarin, A, Lang, J, Amadini, R, Gange, G, Schachte, P, Sondergaard, H, and Stuckey, PJ
- Abstract
String constraint solving is an important emerging field, given the ubiquity of strings over different fields such as formal analysis, automated testing, database query processing, and cybersecurity. This paper highlights the current state-of-the-art for string constraint solving, and identifies future challenges in this field.
- Published
- 2020
7. Dashed Strings and the Replace(-all) Constraint
- Author
-
Amadini, R, Gange, G, Stuckey, PJ, Amadini, R, Gange, G, and Stuckey, PJ
- Abstract
Dashed strings are a formalism for modelling the domain of string variables when solving combinatorial problems with string constraints. In this work we focus on (variants of) the Replace constraint, which aims to find the first occurrence of a query string in a target string, and (possibly) replaces it with a new string. We define a Replace propagator which can also handle Replace-Last (for replacing the last occurrence) and Replace-All (for replacing all the occurrences). Empirical results clearly show that string constraint solving can draw great benefit from this approach.
- Published
- 2020
8. Abstract interpretation, symbolic execution and constraints
- Author
-
de Boer, F, Mauro, J, Amadini, R, Gange, G, Schachte, P, Sondergaard, H, Stuckey, P, de Boer, F, Mauro, J, Amadini, R, Gange, G, Schachte, P, Sondergaard, H, and Stuckey, P
- Abstract
interpretation is a static analysis framework for sound over-approximation of all possible runtime states of a program. Symbolic execution is a framework for reachability analysis which tries to explore all possible execution paths of a program. A shared feature between abstract interpretation and symbolic execution is that each – implicitly or explicitly – maintains constraints during execution, in the form of invariants or path conditions. We investigate the relations between the worlds of abstract interpretation, symbolic execution and constraint solving, to expose potential synergies.
- Published
- 2020
9. Sweep-based propagation for string constraint solving
- Author
-
Amadini R., Gange G., Stuckey P. J., Amadini R., Gange G., and Stuckey P.J.
- Subjects
High Energy Physics::Theory ,string solving - Abstract
Solving constraints over strings is an emerging important field. Recently, a Constraint Programming approach based on dashed strings has been proposed to enable a compact domain representation for potentially large bounded-length string variables. In this paper, we present a more efficient algorithm for propagating equality (and related constraints) over dashed strings. We call this propagation sweep-based. Experimental evidences show that sweep-based propagation is able to significantly outperform state-of-the-art approaches for string constraint solving.
- Published
- 2018
10. Constraint Programming for Dynamic Symbolic Execution of JavaScript
- Author
-
Rousseau, LM, Stergiou, K, Amadini, R, Andrlon, M, Gange, G, Schachte, P, Søndergaard, H, Stuckey, PJ, Rousseau, LM, Stergiou, K, Amadini, R, Andrlon, M, Gange, G, Schachte, P, Søndergaard, H, and Stuckey, PJ
- Abstract
Dynamic Symbolic Execution (DSE) combines concrete and symbolic execution, usually for the purpose of generating good test suites automatically. It relies on constraint solvers to solve path conditions and to generate new inputs to explore. DSE tools usually make use of SMT solvers for constraint solving. In this paper, we show that constraint programming (CP) is a powerful alternative or complementary technique for DSE. Specifically, we apply CP techniques for DSE of JavaScript, the de facto standard for web programming. We capture the JavaScript semantics with MiniZinc and integrate this approach into a tool we call Aratha. We use G-Strings, a CP solver equipped with string variables, for solving path conditions, and we compare the performance of this approach against state-of-the-art SMT solvers. Experimental results, in terms of both speed and coverage, show the benefits of our approach, thus opening new research vistas for using CP techniques in the service of program analysis.
- Published
- 2019
11. Reference Abstract Domains and Applications to String Analysis
- Author
-
Amadini, R, Gange, G, Gauthier, F, Jordan, A, Schachte, P, Sondergaard, H, Stuckey, PJ, Zhang, C, Amadini, R, Gange, G, Gauthier, F, Jordan, A, Schachte, P, Sondergaard, H, Stuckey, PJ, and Zhang, C
- Abstract
interpretation is a well established theory that supports reasoning about the run-time behaviour of programs. It achieves tractable reasoning by considering abstractions of run-time states, rather than the states themselves. The chosen set of abstractions is referred to as the abstract domain. We develop a novel framework for combining (a possibly large number of) abstract domains. It achieves the effect of the so-called reduced product without requiring a quadratic number of functions to translate information among abstract domains. A central notion is a reference domain, a medium for information exchange. Our approach suggests a novel and simpler way to manage the integration of large numbers of abstract domains. We instantiate our framework in the context of string analysis. Browser-embedded dynamic programming languages such as JavaScript and PHP encourage the use of strings as a universal data type for both code and data values. The ensuing vulnerabilities have made string analysis a focus of much recent research. String analysis tends to combine many elementary string abstract domains, each designed to capture a specific aspect of strings. For this instance the set of regular languages, while too expensive to use directly for analysis, provides an attractive reference domain, enabling the efficient simulation of reduced products of multiple string abstract domains.
- Published
- 2018
12. Propagating Regular membership with dashed strings
- Author
-
Hooker, J, Amadini, R, Gange, G, Stuckey, PJ, Hooker, J, Amadini, R, Gange, G, and Stuckey, PJ
- Abstract
Using dashed strings is an approach recently introduced in Constraint Programming (CP) to represent the domain of string variables, when solving combinatorial problems with string constraints. One of the most important string constraints is that of regular membership: regular (x, R) imposes string x to be a member of the regular language defined by automaton R. The regular constraint is useful for specifying complex constraints on fixed length finite sequences, and regularly appears in CP models. Dealing with regular is also desirable in software testing and verification, because regular expressions are often used in modern programming languages for pattern matching. In this paper, we define a regular propagator for dashed string solvers. We show that this propagator, implemented in the G-Strings solver, is substantially better than the current state-of-the-art. We also demonstrate that many regular constraints appearing in string solving benchmarks can actually be tackled by dashed strings solvers without explicitly using REGULAR.
- Published
- 2018
13. Sweep-based propagation for string constraint solving
- Author
-
Amadini, R, Gange, G, Stuckey, PJ, Amadini, R, Gange, G, and Stuckey, PJ
- Abstract
Solving constraints over strings is an emerging important field. Recently, a Constraint Programming approach based on dashed strings has been proposed to enable a compact domain representation for potentially large bounded-length string variables. In this paper, we present a more efficient algorithm for propagating equality (and related constraints) over dashed strings. We call this propagation sweep-based. Experimental evidences show that sweep-based propagation is able to significantly outperform state-of-the-art approaches for string constraint solving.
- Published
- 2018
14. Propagating lex, find and replace with dashed strings
- Author
-
van Hoeve, W-J, Amadini, R, Gange, G, Stuckey, PJ, van Hoeve, W-J, Amadini, R, Gange, G, and Stuckey, PJ
- Abstract
Dashed strings have been recently proposed in Constraint Programming to represent the domain of string variables when solving combinatorial problems over strings. This approach showed promising performance on some classes of string problems, involving constraints like string equality and concatenation. However, there are a number of string constraints for which no propagator has yet been defined. In this paper, we show how to propagate lexicographic ordering (lex), find and replace with dashed strings. All of these are fundamental string operations: lex is the natural total order over strings, while find and replace are frequently used in string manipulation. We show that these propagators, that we implemented in G-Strings solver, allows us to be competitive with state-of-the-art approaches.
- Published
- 2018
15. A novel approach to string constraint solving
- Author
-
Beck, JC, Amadini, R, Gange, G, Stuckey, PJ, Tack, G, Beck, JC, Amadini, R, Gange, G, Stuckey, PJ, and Tack, G
- Abstract
String processing is ubiquitous across computer science, and arguably more so in web programming. In order to reason about programs manipulating strings we need to solve constraints over strings. In Constraint Programming, the only approaches we are aware for representing string variables—having bounded yet possibly unknown size—degrade when the maximum possible string length becomes too large. In this paper, we introduce a novel approach that decouples the size of the string representation from its maximum length. The domain of a string variable is dynamically represented by a simplified regular expression that we called a dashed string, and the constraint solving relies on propagation of information based on equations between dashed strings. We implemented this approach in G-Strings, a new string solver—built on top of Gecode solver—that already shows some promising results.
- Published
- 2017
16. Combining String Abstract Domains for JavaScript Analysis: An Evaluation
- Author
-
Legay, A, Margaria, T, Amadini, R, Jordan, A, Gange, G, Gauthier, F, Schachte, P, Sondergaard, H, Stuckey, PJ, Zhang, C, Legay, A, Margaria, T, Amadini, R, Jordan, A, Gange, G, Gauthier, F, Schachte, P, Sondergaard, H, Stuckey, PJ, and Zhang, C
- Abstract
Strings play a central role in JavaScript and similar scripting languages. Owing to dynamic features such as the eval function and dynamic property access, precise string analysis is a prerequisite for automated reasoning about practically any kind of runtime property. Although the literature presents a considerable number of abstract domains for capturing and representing specific aspects of strings, we are not aware of tools that allow flexible combination of string abstract domains. Indeed, support for string analysis is often confined to a single, dedicated string domain. In this paper we describe a framework that allows us to combine multiple string abstract domains for the analysis of JavaScript programs. It is implemented as an extension of SAFE, an open-source static analysis tool. We investigate different combinations of abstract domains that capture various aspects of strings. Our evaluation suggests that a combination of a few, simple abstract domains suffice to outperform the precision of state-of-the-art static analysis tools for JavaScript.
- Published
- 2017
17. Constraint propagation and explanation over novel types by abstract compilation
- Author
-
Gange, G, Stuckey, PJ, Gange, G, and Stuckey, PJ
- Abstract
© Graeme Gange and Peter J. Stuckey. The appeal of constraint programming (CP) lies in compositionality - the ability to mix and match constraints as needed. However, this flexibility typically does not extend to the types of variables. Solvers usually support only a small set of pre-defined variable types, and extending this is not typically a simple exercise: not only must the solver engine be updated, but then the library of supported constraints must be re-implemented to support the new type. In this paper, we attempt to ease this second step. We describe a system for automatically deriving a native-code implementation of a global constraint (over novel variable types) from a declarative specification, complete with the ability to explain its propagation, a requirement if we want to make use of modern lazy clause generation CP solvers. We demonstrate this approach by adding support for wrapped-integer variables to chuffed, a lazy clause generation CP solver.
- Published
- 2016
18. A complete refinement procedure for regular separability of context-free languages
- Author
-
Gange, G, Navas, JA, Schachte, P, Sondergaard, H, Stuckey, PJ, Gange, G, Navas, JA, Schachte, P, Sondergaard, H, and Stuckey, PJ
- Abstract
Often, when analyzing the behaviour of systems modelled as context-free languages, we wish to know if two languages overlap. To this end, we present a class of semi-decision procedures for regular separability of context-free languages, based on counter-example guided abstraction refinement. We propose two effective instances of this approach, one that is complete but relatively expensive, and one that is inexpensive and sound, but for which we do not have a completeness proof. The complete method will prove disjointness whenever the input languages are regularly separable. Both methods will terminate whenever the input languages overlap. We provide an experimental evaluation of these procedures, and demonstrate their practicality on a range of verification and language-theoretic instances.
- Published
- 2016
19. Interval Analysis and Machine Arithmetic: Why Signedness Ignorance Is Bliss
- Author
-
Gange, G, Navas, JA, Schachte, P, Sondergaard, H, Stuckey, PJ, Gange, G, Navas, JA, Schachte, P, Sondergaard, H, and Stuckey, PJ
- Abstract
The most commonly used integer types have fixed bit-width, making it possible for computations to “wrap around,” and many programs depend on this behaviour. Yet much work to date on program analysis and verification of integer computations treats integers as having infinite precision, and most analyses that do respect fixed width lose precision when overflow is possible. We present a novel integer interval abstract domain that correctly handles wrap-around. The analysis is signedness agnostic. By treating integers as strings of bits, only considering signedness for operations that treat them differently, we produce precise, correct results at a modest cost in execution time.
- Published
- 2015
20. Horn Clauses As an Intermediate Representation for Program Analysis and Transformation
- Author
-
Gange, G, Navas Laserna, J, Schachte, P, SONDERGAARD, H, Stuckey, PJ, Gange, G, Navas Laserna, J, Schachte, P, SONDERGAARD, H, and Stuckey, PJ
- Abstract
Many recent analyses for conventional imperative programs begin by transforming programs into logic programs, capitalising on existing LP analyses and simple LP semantics. We propose using logic programs as an intermediate program representation throughout the compilation process. With restrictions ensuring determinism and single-modedness, a logic program can easily be transformed to machine language or other low-level language, while maintaining the simple semantics that makes it suitable as a language for program analysis and transformation. We present a simple LP language that enforces determinism and single-modedness, and show that it makes a convenient program representation for analysis and transformation.
- Published
- 2015
21. Analyzing Array Manipulating Programs by Program Transformation
- Author
-
Proietti, M, Seki, H, Cornish, JRM, Gange, G, Navas, JA, Schachte, P, SONDERGAARD, H, Stuckey, PJ, Proietti, M, Seki, H, Cornish, JRM, Gange, G, Navas, JA, Schachte, P, SONDERGAARD, H, and Stuckey, PJ
- Published
- 2015
22. Synthesizing Optimal Switching Lattices
- Author
-
Gange, G, Søndergaard, H, Stuckey, PJ, Gange, G, Søndergaard, H, and Stuckey, PJ
- Abstract
The use of nanoscale technologies to create electronic devices has revived interest in the use of regular structures for defining complex logic functions. One such structure is the switching lattice, a two-dimensional lattice of four-terminal switches. We show how to directly construct switching lattices of polynomial size from arbitrary logic functions; we also show how to synthesize minimal-sized lattices by translating the problem to the satisfiability problem for a restricted class of quantified Boolean formulas. The synthesis method is an anytime algorithm that uses modern SAT solving technology and dichotomic search. It improves considerably on an earlier proposal for creating switching lattices for arbitrary logic functions.
- Published
- 2014
23. Four-Valued Reasoning and Cyclic Circuits
- Author
-
Gange, G, Horsfall, B, Naish, L, Sondergaard, H, Gange, G, Horsfall, B, Naish, L, and Sondergaard, H
- Abstract
Allowing cycles in a logic circuit can be advantageous, for example, by reducing the number of gates required to implement a given Boolean function, or a set of functions. However, a cyclic circuit may easily be ill behaved. For instance, it may have some output wire oscillation instead of reaching a steady state. Propositional three-valued logic has long been used in tests for good behavior of cyclic circuits; a symbolic evaluation method known as ternary analysis provides one criterion for good behavior under certain assumptions about wire and gate delay. We revisit ternary analysis and argue for the use of four truth values. The fourth truth value allows for the distinction of undefined and underspecified behavior. Ability to under specify behavior is useful, because, in a quest for smaller circuits, an implementor can capitalize on degrees of freedom offered in the specification. Moreover, a fourth truth value is attractive because, rather than complicating (ternary) circuit analysis, it introduces a pleasant symmetry, in the form of contra-duality, as well as providing a convenient framework for manipulating specifications. We use this symmetry to provide fixed point results that clarify how two-, three-, and four-valued analyses are related, and to explain some observations about ternary analysis.
- Published
- 2014
24. Abstract Interpretation over Non-Lattice Abstract Domains
- Author
-
Logozzo, F, Fahndrich, M, Gange, G, Navas, JA, Schachte, P, Søndergaard, H, Stuckey, PJ, Logozzo, F, Fahndrich, M, Gange, G, Navas, JA, Schachte, P, Søndergaard, H, and Stuckey, PJ
- Abstract
The classical theoretical framework for static analysis of programs is abstract interpretation. Much of the power and elegance of that framework rests on the assumption that an abstract domain is a lattice. Nonetheless, and for good reason, the literature on program analysis provides many examples of non-lattice domains, including non-convex numeric domains. The lack of domain structure, however, has negative consequences, both for the precision of program analysis and for the termination of standard Kleene iteration. In this paper we explore these consequences and present general remedies.
- Published
- 2013
25. Fast Set Bounds Propagation Using a BDD-SAT Hybrid
- Author
-
Gange, G, Stuckey, PJ, Lagoon, V, Gange, G, Stuckey, PJ, and Lagoon, V
- Abstract
Binary Decision Diagram (BDD) based set bounds propagation is a powerful approach to solving set-constraint satisfaction problems. However, prior BDD based techniques in- cur the significant overhead of constructing and manipulating graphs during search. We present a set-constraint solver which combines BDD-based set-bounds propagators with the learning abilities of a modern SAT solver. Together with a number of improvements beyond the basic algorithm, this solver is highly competitive with existing propagation based set constraint solvers.
- Published
- 2010
26. Smooth Linear Approximation of Non-overlap Constraints
- Author
-
Stapleton, G, Howse, J, Lee, J, Gange, G, Marriott, K, Stuckey, PJ, Stapleton, G, Howse, J, Lee, J, Gange, G, Marriott, K, and Stuckey, PJ
- Published
- 2008
27. Fast Set Bounds Propagation Using a BDD-SAT Hybrid
- Author
-
Gange, G., primary, Stuckey, P. J., additional, and Lagoon, V., additional
- Published
- 2010
- Full Text
- View/download PDF
28. Steiner tree problems with side constraints using constraint programming
- Author
-
Uña, D., Gange, G., Peter Schachte, and Stuckey, P. J.
- Subjects
General Medicine - Abstract
The Steiner Tree Problem is a well know NP-complete problem that is well studied and for which fast algorithms are already available. Nonetheless, in the real world the Steiner Tree Problem is almost always accompanied by side constraints which means these approaches cannot be applied. For many problems with side constraints, only approximation algorithms are known. We introduce here a propagator for the tree constraint with explanations, as well as lower bounding techniques and a novel constraint programming approach for the Steiner Tree Problem and two of its variants. We find our propagators with explanations are highly advantageous when it comes to solving variants of this problem.
29. Splenic Anæmia
- Author
-
Gange, G. H., primary and Cockayne, E. A., additional
- Published
- 1929
- Full Text
- View/download PDF
30. Splenic Anæmia
- Author
-
Gange, G. H. and Cockayne, E. A.
- Published
- 1929
- Full Text
- View/download PDF
31. An efficient static analysis of sandwich beams
- Author
-
Bardell, N. S. and Gange, G. J.
- Published
- 1994
- Full Text
- View/download PDF
32. Algorithm Selection for Dynamic Symbolic Execution: A Preliminary Study
- Author
-
Harald Søndergaard, Graeme Gange, Roberto Amadini, Peter Schachte, Peter J. Stuckey, Amadini R., Gange G., Schachte P., Sondergaard H., and Stuckey P.J.
- Subjects
050101 languages & linguistics ,Mathematical optimization ,Computer science ,05 social sciences ,Aggregate (data warehouse) ,02 engineering and technology ,Symbolic execution ,Algorithm Selection ,Algorithm selection ,Software verification ,Path (graph theory) ,0202 electrical engineering, electronic engineering, information engineering ,Portfolio ,020201 artificial intelligence & image processing ,0501 psychology and cognitive sciences ,ComputerSystemsOrganization_SPECIAL-PURPOSEANDAPPLICATION-BASEDSYSTEMS ,Constraint solving ,Portfolio solving ,Constraint satisfaction problem ,Dynamic symbolic execution - Abstract
Given a portfolio of algorithms, the goal of Algorithm Selection (AS) is to select the best algorithm(s) for a new, unseen problem instance. Dynamic Symbolic Execution (DSE) brings together concrete and symbolic execution to maximise the program coverage. DSE uses a constraint solver to solve the path conditions and generate new inputs to explore. In this paper we join these lines of research by introducing a model that combines DSE and AS approaches. The proposed AS/DSE model is a generic and flexible framework enabling the DSE engine to solve the path conditions it collects with a portfolio of different solvers, by exploiting and extending the well-known AS techniques that have been developed over the last decade. In this way, one can increase the coverage and sometimes even outperform the aggregate coverage achievable by running simultaneously all the solvers of the portfolio.
- Published
- 2021
33. Constraint Programming for Dynamic Symbolic Execution of JavaScript
- Author
-
Peter Schachte, Roberto Amadini, Mak Andrlon, Graeme Gange, Peter J. Stuckey, Harald Søndergaard, Amadini R., Andrlon M., Gange G., Schachte P., Sondergaard H., and Stuckey P.J.
- Subjects
dynamic symbolic execution ,Programming language ,Computer science ,Semantics (computer science) ,Solver ,computer.software_genre ,Symbolic execution ,JavaScript ,Constraint (information theory) ,Program analysis ,Constraint programming ,computer ,computer.programming_language ,De facto standard - Abstract
Dynamic Symbolic Execution (DSE) combines concrete and symbolic execution, usually for the purpose of generating good test suites automatically. It relies on constraint solvers to solve path conditions and to generate new inputs to explore. DSE tools usually make use of SMT solvers for constraint solving. In this paper, we show that constraint programming (CP) is a powerful alternative or complementary technique for DSE. Specifically, we apply CP techniques for DSE of JavaScript, the de facto standard for web programming. We capture the JavaScript semantics with MiniZinc and integrate this approach into a tool we call Aratha. We use G-Strings, a CP solver equipped with string variables, for solving path conditions, and we compare the performance of this approach against state-of-the-art SMT solvers. Experimental results, in terms of both speed and coverage, show the benefits of our approach, thus opening new research vistas for using CP techniques in the service of program analysis.
- Published
- 2019
34. Propagating Regular Membership with Dashed Strings
- Author
-
Roberto Amadini, Graeme Gange, Peter J. Stuckey, Amadini R., Gange G., and Stuckey P.J.
- Subjects
Discrete mathematics ,Computer science ,String (computer science) ,020207 software engineering ,02 engineering and technology ,Solver ,string solving ,Constraint (information theory) ,High Energy Physics::Theory ,Regular language ,Regular constraint ,0202 electrical engineering, electronic engineering, information engineering ,Constraint programming ,020201 artificial intelligence & image processing ,Pattern matching ,Regular expression - Abstract
Using dashed strings is an approach recently introduced in Constraint Programming (CP) to represent the domain of string variables, when solving combinatorial problems with string constraints. One of the most important string constraints is that of regular membership: \(\textsc {regular} (x, R)\) imposes string x to be a member of the regular language defined by automaton R. The regular constraint is useful for specifying complex constraints on fixed length finite sequences, and regularly appears in CP models. Dealing with regular is also desirable in software testing and verification, because regular expressions are often used in modern programming languages for pattern matching. In this paper, we define a regular propagator for dashed string solvers. We show that this propagator, implemented in the G-Strings solver, is substantially better than the current state-of-the-art. We also demonstrate that many regular constraints appearing in string solving benchmarks can actually be tackled by dashed strings solvers without explicitly using regular.
- Published
- 2018
- Full Text
- View/download PDF
35. Propagating lex, find and replace with dashed strings
- Author
-
Roberto Amadini, Peter J. Stuckey, Graeme Gange, Amadini R., Gange G., and Stuckey P.J.
- Subjects
Discrete mathematics ,TheoryofComputation_MISCELLANEOUS ,Computer science ,Concatenation ,Propagator ,020207 software engineering ,02 engineering and technology ,Solver ,Lexicographical order ,String (physics) ,string solving ,Domain (software engineering) ,High Energy Physics::Theory ,String operations ,0202 electrical engineering, electronic engineering, information engineering ,Constraint programming ,020201 artificial intelligence & image processing - Abstract
Dashed strings have been recently proposed in Constraint Programming to represent the domain of string variables when solving combinatorial problems over strings. This approach showed promising performance on some classes of string problems, involving constraints like string equality and concatenation. However, there are a number of string constraints for which no propagator has yet been defined. In this paper, we show how to propagate lexicographic ordering (lex), find and replace with dashed strings. All of these are fundamental string operations: lex is the natural total order over strings, while find and replace are frequently used in string manipulation. We show that these propagators, that we implemented in G-Strings solver, allows us to be competitive with state-of-the-art approaches.
- Published
- 2018
36. Reference abstract domains and applications to string analysis
- Author
-
Harald Søndergaard, François Gauthier, Alexander Jordan, Graeme Gange, Peter Schachte, Chenyi Zhang, Roberto Amadini, Peter J. Stuckey, Amadini R., Gauthier F., Schachte P., Stuckey P.J., Gange G., Jordan A., Sondergaard H., and Zhang C.
- Subjects
Algebra and Number Theory ,Theoretical computer science ,Computer science ,String (computer science) ,string analysis ,020207 software engineering ,Context (language use) ,02 engineering and technology ,JavaScript ,Abstract interpretation ,Data type ,Theoretical Computer Science ,Domain (software engineering) ,Set (abstract data type) ,Computational Theory and Mathematics ,Regular language ,0202 electrical engineering, electronic engineering, information engineering ,Computer Science::Programming Languages ,020201 artificial intelligence & image processing ,computer ,Information Systems ,computer.programming_language - Abstract
interpretation is a well established theory that supports reasoning about the run-time behaviour of programs. It achieves tractable reasoning by considering abstractions of run-time states, rather than the states themselves. The chosen set of abstractions is referred to as the abstract domain. We develop a novel framework for combining (a possibly large number of) abstract domains. It achieves the effect of the so-called reduced product without requiring a quadratic number of functions to translate information among abstract domains. A central notion is a reference domain, a medium for information exchange. Our approach suggests a novel and simpler way to manage the integration of large numbers of abstract domains. We instantiate our framework in the context of string analysis. Browser-embedded dynamic programming languages such as JavaScript and PHP encourage the use of strings as a universal data type for both code and data values. The ensuing vulnerabilities have made string analysis a focus of much recent research. String analysis tends to combine many elementary string abstract domains, each designed to capture a specific aspect of strings. For this instance the set of regular languages, while too expensive to use directly for analysis, provides an attractive reference domain, enabling the efficient simulation of reduced products of multiple string abstract domains.
- Published
- 2018
37. Combining String Abstract Domains for JavaScript Analysis: An Evaluation
- Author
-
Peter J. Stuckey, Chenyi Zhang, Peter Schachte, Alexander Jordan, François Gauthier, Graeme Gange, Roberto Amadini, Harald Søndergaard, Amadini R., Jordan A., Gange G., Gauthier F., Schachte P., Sondergaard H., Stuckey P.J., and Zhang C.
- Subjects
Theoretical computer science ,Computer science ,Programming language ,String (computer science) ,string analysis ,020207 software engineering ,Static program analysis ,02 engineering and technology ,Static analysis ,JavaScript ,computer.software_genre ,Scripting language ,0202 electrical engineering, electronic engineering, information engineering ,020201 artificial intelligence & image processing ,Automated reasoning ,Regular expression ,Abstract syntax tree ,computer ,computer.programming_language - Abstract
Strings play a central role in JavaScript and similar scripting languages. Owing to dynamic features such as the eval function and dynamic property access, precise string analysis is a prerequisite for automated reasoning about practically any kind of runtime property. Although the literature presents a considerable number of abstract domains for capturing and representing specific aspects of strings, we are not aware of tools that allow flexible combination of string abstract domains. Indeed, support for string analysis is often confined to a single, dedicated string domain. In this paper we describe a framework that allows us to combine multiple string abstract domains for the analysis of JavaScript programs. It is implemented as an extension of SAFE, an open-source static analysis tool. We investigate different combinations of abstract domains that capture various aspects of strings. Our evaluation suggests that a combination of a few, simple abstract domains suffice to outperform the precision of state-of-the-art static analysis tools for JavaScript.
- Published
- 2017
- Full Text
- View/download PDF
38. Road pavement upgrade scheduling accounting for minimizing congestion.
- Author
-
Rupasinghe B, Wallace M, Gange G, and Senthooran I
- Abstract
Road pavement maintenance and upgrades (RPU) need to be scheduled in a way that minimises congestion across the road network and matches the schedule with the availability of equipment and skilled labourers to ensure that they are completed on time. RPU should not introduce unbearable congestion around blocked lanes or roads, and increased traffic due to ongoing road upgrades needs to be transferred to alternative routes. In situations where multiple upgrades are planned together, the scheduled road closures should be coordinated to not block alternative routes. While extensive studies have been conducted separately on scheduling and routing, limited research has linked these processes together, and only in restricted scenarios. In this paper, we investigate how to minimise the disruption of a set of road maintenance tasks based on their interaction with other tasks. We propose a new approach for scheduling a set of road maintenance tasks, some at the same time and others at different times, to minimise overall disruption. The proposed approach has two phases: (1) identify the local area affected by the RPU, and (2) determine which upgrades can be planned together to minimise congestion. The comparison of the results shows how the novel optimized approach identifies a better schedule to minimise congestion., (© 2023. Springer Nature Limited.)
- Published
- 2023
- Full Text
- View/download PDF
39. Performance of a novel ABR-bioelectricity-Fenton coupling reactor for treating traditional Chinese medicine wastewater containing catechol.
- Author
-
Su C, Lu Y, Deng Q, Chen S, Pang G, Chen W, Chen M, and Huang Z
- Subjects
- Bioelectric Energy Sources, Biological Oxygen Demand Analysis, Bioreactors, Catechols chemistry, Electrodes, Medicine, Chinese Traditional, Waste Disposal, Fluid methods, Catechols analysis, Wastewater chemistry, Water Purification methods
- Abstract
In this study, a novel anaerobic baffled reactor-bioelectricity-Fenton (ABR-BEF) coupling reactor, combining an ABR, microbial fuel cell (MFC), and Fenton system, was used to treat traditional Chinese medicine (TCM) wastewater containing catechol. The bio-electrochemical degradation of the catechol reached 99.7% after 8 h at dissolved oxygen (DO) concentration of 4 mg/L in the cathodic chamber. The removal rates of chemical oxygen demand (COD) reached 91.7%, when the ratio rate was 1 and the DO concentration was 4 mg/L. Moreover, the maximum open-circuit voltage and power density of the coupling reactor reached 424.9 mV and 77.1 mW/m
3 , respectively. According to the PICRUSt analysis, carbohydrate metabolism took up the most abundant function of metabolism and the enrichment of membrane transporters may relieve TCM wastewater toxicity. These results suggest that the ABR-BEF coupling reactor could be applied as an efficient approach to treat TCM wastewater., (Copyright © 2019 Elsevier Inc. All rights reserved.)- Published
- 2019
- Full Text
- View/download PDF
40. High-Quality Ultra-Compact Grid Layout of Grouped Networks.
- Author
-
Yoghourdjian V, Dwyer T, Gange G, Kieffer S, Klein K, and Marriott K
- Abstract
Prior research into network layout has focused on fast heuristic techniques for layout of large networks, or complex multi-stage pipelines for higher quality layout of small graphs. Improvements to these pipeline techniques, especially for orthogonal-style layout, are difficult and practical results have been slight in recent years. Yet, as discussed in this paper, there remain significant issues in the quality of the layouts produced by these techniques, even for quite small networks. This is especially true when layout with additional grouping constraints is required. The first contribution of this paper is to investigate an ultra-compact, grid-like network layout aesthetic that is motivated by the grid arrangements that are used almost universally by designers in typographical layout. Since the time when these heuristic and pipeline-based graph-layout methods were conceived, generic technologies (MIP, CP and SAT) for solving combinatorial and mixed-integer optimization problems have improved massively. The second contribution of this paper is to reassess whether these techniques can be used for high-quality layout of small graphs. While they are fast enough for graphs of up to 50 nodes we found these methods do not scale up. Our third contribution is a large-neighborhood search meta-heuristic approach that is scalable to larger networks.
- Published
- 2016
- Full Text
- View/download PDF
41. BetaSearch: a new method for querying β-residue motifs.
- Author
-
Ho HK, Gange G, Kuiper MJ, and Ramamohanarao K
- Subjects
- Databases, Protein, Information Storage and Retrieval, Protein Structure, Secondary
- Abstract
Background: Searching for structural motifs across known protein structures can be useful for identifying unrelated proteins with similar function and characterising secondary structures such as β-sheets. This is infeasible using conventional sequence alignment because linear protein sequences do not contain spatial information. β-residue motifs are β-sheet substructures that can be represented as graphs and queried using existing graph indexing methods, however, these approaches are designed for general graphs that do not incorporate the inherent structural constraints of β-sheets and require computationally-expensive filtering and verification procedures. 3D substructure search methods, on the other hand, allow β-residue motifs to be queried in a three-dimensional context but at significant computational costs., Findings: We developed a new method for querying β-residue motifs, called BetaSearch, which leverages the natural planar constraints of β-sheets by indexing them as 2D matrices, thus avoiding much of the computational complexities involved with structural and graph querying. BetaSearch exhibits faster filtering, verification, and overall query time than existing graph indexing approaches whilst producing comparable index sizes. Compared to 3D substructure search methods, BetaSearch achieves 33 and 240 times speedups over index-based and pairwise alignment-based approaches, respectively. Furthermore, we have presented case-studies to demonstrate its capability of motif matching in sequentially dissimilar proteins and described a method for using BetaSearch to predict β-strand pairing., Conclusions: We have demonstrated that BetaSearch is a fast method for querying substructure motifs. The improvements in speed over existing approaches make it useful for efficiently performing high-volume exploratory querying of possible protein substructural motifs or conformations. BetaSearch was used to identify a nearly identical β-residue motif between an entirely synthetic (Top7) and a naturally-occurring protein (Charcot-Leyden crystal protein), as well as identifying structural similarities between biotin-binding domains of avidin, streptavidin and the lipocalin gamma subunit of human C8.
- Published
- 2012
- Full Text
- View/download PDF
Catalog
Discovery Service for Jio Institute Digital Library
For full access to our library's resources, please sign in.