• DocumentCode
    935021
  • Title

    Extending typestate checking using conditional liveness analysis

  • Author

    Strom, Robert E. ; Yellin, Daniel M.

  • Author_Institution
    IBM Thomas J. Watson Res. Center, Yorktown Heights, NY, USA
  • Volume
    19
  • Issue
    5
  • fYear
    1993
  • fDate
    5/1/1993 12:00:00 AM
  • Firstpage
    478
  • Lastpage
    485
  • Abstract
    The authors present a practical extension to typestate checking, which is capable of proving programs free of uninitialized variable errors even when these programs contain conditionally initialized variables where the initialization of a variable depends upon the equality of one or more tag variables to a constant. The user need not predeclare the relationship between a conditionally initialized variable and its tags, and this relationship may change from one point in the program to another. The technique generalizes liveness analysis to conditional liveness analysis. Like typestate checking, this technique incorporates a dataflow analysis algorithm in which each point in a program is labeled with a lattice point describing statically tracked information, including the initialization of variables. The labeling is then used to check for programming errors such as referencing a variable which may be uninitialized
  • Keywords
    program verification; conditional liveness analysis; dataflow analysis algorithm; program verification; programming errors; statically tracked information; typestate checking; uninitialized variable errors; Algorithm design and analysis; Computer languages; Data analysis; Information analysis; Labeling; Lattices; Modems; Performance analysis; Program processors; Runtime;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/32.232013
  • Filename
    232013