RISC RISC Research Institute for Symbolic Computation  
  • @techreport{RISC4193,
    author = {Wolfgang Schreiner},
    title = {{From Types to Contracts: Supporting by Light-Weight Specifications the Liskov Substitution Principle}},
    language = {english},
    abstract = {In this paper we review the main theoretical elements of behavioral subtyping in object-oriented programming languages in a semi-formal style that should allow software developers to understand better in which situations the Liskov substitution principle (objects of subclasses may stand for objects of superclasses) is violated. We then shortly discuss the specification of class contracts in behavioral specification languages that allow to ensure that the substitution principle is preserved. Since many software developers may shy away form these languages because the learning curve is esteemed as too steep, we propose a language of light-weight specifications that provides by a hierarchy of gradually more expressive specification forms a more lenient path towards the use of behavioral specification languages. The specifications do not demand the use of predicate logic; by automatic checking certain violations of the substitution principle may be detected.},
    number = {10-22},
    year = {2010},
    month = {February},
    keywords = {formal methods, design patterns, object-oriented programming, type systems},
    sponsor = {Supported by the Austrian-Hungarian Scientific/Technical Cooperation Contract HU 14/2009},
    length = {35},
    type = {RISC Report Series},
    institution = {Research Institute for Symbolic Computation (RISC), Johannes Kepler University Linz},
    address = {Schloss Hagenberg, 4232 Hagenberg, Austria}