Journal ArticleDOI
Software specialization via symbolic execution
TLDR
A technique and an environment-supporting specialization of generalized software components are described, based on symbolic execution, that allows one to transform a generalized software component into a more specific and more efficient component.Abstract:
A technique and an environment-supporting specialization of generalized software components are described. The technique is based on symbolic execution. It allows one to transform a generalized software component into a more specific and more efficient component. Specialization is proposed as a technique that improves software reuse. The idea is that a library of generalized components exists and the environment supports a designer in customizing a generalized component when the need arises for reusing it under more restricted conditions. It is also justified as a reengineering technique that helps optimize a program during maintenance. Specialization is supported by an interactive environment that provides several transformation tools: a symbolic executor/simplifier, an optimizer, and a loop refolder. The conceptual basis for these transformation techniques is described, examples of their application are given, and how they cooperate in a prototype environment for the Ada programming language is outlined. >read more
Citations
More filters
Program Analysis and Specialization for the C Programming Language
Lars Ole Andersen,Peter Lee +1 more
TL;DR: This thesis presents an automatic partial evaluator for the Ansi C programming language, and proves that partial evaluation at most can accomplish linear speedup, and develops an automatic speedup analysis.
Journal ArticleDOI
Conditioned program slicing
TL;DR: It is shown how slices deriving from other statement deletion based slicing models can be defined as conditioned slices, which is used to formally define a partial ordering relation between slicing models and to build a classification framework.
Proceedings ArticleDOI
Program slicing: methods and applications
TL;DR: The paper discusses different statement deletion based slicing methods, together with algorithms and applications to software engineering.
Proceedings ArticleDOI
Test generation through programming in UDITA
TL;DR: The approach is implemented and incorporated into the official, publicly available repository of Java PathFinder (JPF), a popular tool for verifying Java programs, and shows that test generation using UDITA is faster and leads to test descriptions that are easier to write than in previous frameworks.
Proceedings ArticleDOI
Using symbolic execution for verifying safety-critical systems
TL;DR: In this paper, symbolic execution is used for building an operational model of the software on which safety properties, expressed by means of a Path Description Language (PDL), can be assessed.
References
More filters
Book
Compilers: Principles, Techniques, and Tools
TL;DR: This book discusses the design of a Code Generator, the role of the Lexical Analyzer, and other topics related to code generation and optimization.
Journal ArticleDOI
On the criteria to be used in decomposing systems into modules
TL;DR: In this paper, the authors discuss modularization as a mechanism for improving the flexibility and comprehensibility of a system while allowing the shortening of its development time, and the effectiveness of modularization is dependent upon the criteria used in dividing the system into modules.
Journal ArticleDOI
Symbolic execution and program testing
TL;DR: A particular system called EFFIGY which provides symbolic execution for program testing and debugging is described, which interpretively executes programs written in a simple PL/I style programming language.
Journal ArticleDOI
Reverse engineering and design recovery: a taxonomy
E.J. Chikofsky,James H. Cross +1 more
TL;DR: The authors define and relate six terms: forward engineering, reverse engineering, redocumentation, design recovery, restructuring, and reengineering to apply to the underlying engineering processes, regardless of the degree of automation applied.
Book
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
TL;DR: Treats various kinds of languages, beginning with the pure-lambda-calculus and progressing through languages with states, commands, jumps, and assignments.