1,941 research outputs found
A Survey of Symbolic Execution Techniques
Many security and software testing applications require checking whether
certain properties of a program hold for any possible usage scenario. For
instance, a tool for identifying software vulnerabilities may need to rule out
the existence of any backdoor to bypass a program's authentication. One
approach would be to test the program using different, possibly random inputs.
As the backdoor may only be hit for very specific program workloads, automated
exploration of the space of possible inputs is of the essence. Symbolic
execution provides an elegant solution to the problem, by systematically
exploring many possible execution paths at the same time without necessarily
requiring concrete inputs. Rather than taking on fully specified input values,
the technique abstractly represents them as symbols, resorting to constraint
solvers to construct actual instances that would cause property violations.
Symbolic execution has been incubated in dozens of tools developed over the
last four decades, leading to major practical breakthroughs in a number of
prominent software reliability applications. The goal of this survey is to
provide an overview of the main ideas, challenges, and solutions developed in
the area, distilling them for a broad audience.
The present survey has been accepted for publication at ACM Computing
Surveys. If you are considering citing this survey, we would appreciate if you
could use the following BibTeX entry: http://goo.gl/Hf5FvcComment: This is the authors pre-print copy. If you are considering citing
this survey, we would appreciate if you could use the following BibTeX entry:
http://goo.gl/Hf5Fv
A blackboard-based system for learning to identify images from feature data
A blackboard-based system which learns recognition rules for
objects from a set of training examples, and then identifies and locates
these objects in test images, is presented. The system is designed to use
data from a feature matcher developed at R.S.R.E. Malvern which finds the
best matches for a set of feature patterns in an image. The feature
patterns are selected to correspond to typical object parts which occur
with relatively consistent spatial relationships and are sufficient to
distinguish the objects to be identified from one another.
The learning element of the system develops two separate sets of
rules, one to identify possible object instances and the other to attach
probabilities to them. The search for possible object instances is
exhaustive; its scale is not great enough for pruning to be necessary.
Separate probabilities are established empirically for all combinations
of features which could represent object instances. As accurate
probabilities cannot be obtained from a set of preselected training
examples, they are updated by feedback from the recognition process.
The incorporation of rule induction and feedback into the blackboard
system is achieved by treating the induced rules as data to be held on a
secondary blackboard. The single recognition knowledge source
effectively contains empty rules which this data can be slotted into,
allowing it to be used to recognise any number of objects - there is no
need to develop a separate knowledge source for each object. Additional
object-specific background information to aid identification can be added
by the user in the form of background checks to be carried out on
candidate objects.
The system has been tested using synthetic data, and successfully
identified combinations of geometric shapes (squares, triangles etc.).
Limited tests on photographs of vehicles travelling along a main road
were also performed successfully
- …