scispace - formally typeset
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

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, +1 more
- 01 Jan 1990 - 
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.
Related Papers (5)