Symbolic Semantics and Program Reduction
IEEE Transactions on Software Engineering - Annals of discrete mathematics, 24
An experiment in partial evaluation: the generation of a compiler generator
Proc. of the first international conference on Rewriting techniques and applications
The concept of a supercompiler
ACM Transactions on Programming Languages and Systems (TOPLAS) - The MIT Press scientific computation series
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
One-pass transformations of attributed program trees
Acta Informatica
Software reusability: vol. 1, concepts and models
Software reusability: vol. 1, concepts and models
Rethinking the taxonomy of fault detection techniques
ICSE '89 Proceedings of the 11th international conference on Software engineering
A method for specializing logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Program Transformation Systems
ACM Computing Surveys (CSUR)
Symbolic execution and program testing
Communications of the ACM
On the criteria to be used in decomposing systems into modules
Communications of the ACM
The Denotational Description of Programming Languages: An Introduction
The Denotational Description of Programming Languages: An Introduction
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Reverse Engineering and Design Recovery: A Taxonomy
IEEE Software
SESADA: An Environment Supporting Software Specialization
ESEC '91 Proceedings of the 3rd European Software Engineering Conference
Program Simplification via Symbolic Interpretation
Proceedings of the Fifth Conference on Foundations of Software Technology and Theoretical Computer Science
Fortran program specialization
ACM SIGPLAN Notices
Extending the power of automatic constraint-based partial evaluators
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis
A Unified Symbolic Evaluation Framework for Parallelizing Compilers
IEEE Transactions on Parallel and Distributed Systems
Using symbolic execution for verifying safety-critical systems
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Constraint-based partial evaluation for imperative languages
Journal of Computer Science and Technology
Qualifying reusable functions using symbolic execution
WCRE '95 Proceedings of the Second Working Conference on Reverse Engineering
CONSIT: a fully automated conditioned program slicer
Software—Practice & Experience
ConSUS: a light-weight program conditioner
Journal of Systems and Software - Special issue: Software reverse engineering
Advanced symbolic analysis for compilers: new techniques and algorithms for symbolic program analysis and optimization
Improving symbolic execution for statechart formalisms
Proceedings of the Workshop on Model-Driven Engineering, Verification and Validation
Hi-index | 0.01 |
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.