Efficient symbolic analysis of programs (Q1082800)

From MaRDI portal
scientific article
Language Label Description Also known as
English
Efficient symbolic analysis of programs
scientific article

    Statements

    Efficient symbolic analysis of programs (English)
    0 references
    0 references
    0 references
    1986
    0 references
    This paper is concerned with constructing, for each expression in a given program text, a symbolic expression whose value is equal to the value of the text expression for all executions of the program. A cover is a mapping from text expressions to such symbolic expressions. Covers can be used for constant propagation, code motion, and a variety of other program optimizations. Covers can also be used as an aid in symbolic program execution and for finding loop invariants for program verification. We describe a direct (non-iterative) algorithm for computing a cover. The cover computed by our algorithm is characterized as a minimum of a certain fixed point equation, and is in general a better cover than might be computed by iteration methods (which can compute fixed point covers which are not minimal). Our algorithm is efficient and applicable to all flow graphs. A variant of our algorithm is implemented by \textit{R. N. Kalman} and \textit{A. A. Kortesoja} [IEEE Trans. Software Eng. SE-6, 512-519 (1980)] in an optimizing compiler.
    0 references
    symbolic expression
    0 references
    text expression
    0 references
    constant propagation
    0 references
    code motion
    0 references
    program optimizations
    0 references
    loop invariants
    0 references
    program verification
    0 references
    cover
    0 references
    fixed point
    0 references
    flow graphs
    0 references
    optimizing compiler
    0 references

    Identifiers