Efficient symbolic analysis of programs (Q1082800)

From MaRDI portal
Revision as of 16:12, 17 June 2024 by ReferenceBot (talk | contribs) (‎Changed an Item)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)





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