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.
Original language | English |
---|
Place of Publication | Altenberger Str. 69, 4040 Linz, Austria |
---|
Publisher | JKU Linz |
---|
Number of pages | 35 |
---|
Publication status | Published - Feb 2010 |
---|
Name | RISC Report Series |
---|
No. | 10-22 |
---|
- 101001 Algebra
- 101002 Analysis
- 101 Mathematics
- 102 Computer Sciences
- 102011 Formal languages
- 101013 Mathematical logic
- 101020 Technical mathematics
- 101025 Number theory
- 101012 Combinatorics
- 101005 Computer algebra
- 101003 Applied geometry
- 102025 Distributed systems
- Computation in Informatics and Mathematics