Reuse Variables: Reusing Code and State in Timor

  • J. Leslie Keedy
  • Christian Heinlein
  • Gisela Menger
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3107)


The standard approach to code reuse in object oriented languages is via inheritance. This is restrictive in a number of ways. For example, it leads to well known conflicts between subtyping and subclassing. Furthermore, where no type relationship exists, programmers must resort to inefficient techniques such as delegation to achieve code reuse. In the paper it is described how the language Timor decouples subtyping and code reuse and presents a new concept known as reuse variables, showing how these can be used to eliminate such restrictions in object oriented and component oriented contexts.


Inefficient Technique Binary Method Instance Method Concrete Type Public Method 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bruce, K.B., Cardelli, L., Castagna, G.: The Hopkins Object Group. In: Leavens, G.T., Pierce, B. (eds.) On Binary Methods.Theory and Practice of Object Systems, vol. 1(3), pp. 221–242 (1995)Google Scholar
  2. 2.
    Chambers, C.: The Cecil Language: Specification & Rationale, Version 2.1 (1997), see,
  3. 3.
    Cook, W., Hill, W., Canning, P.: Inheritance is Not Subtyping. In: 17th ACM Symposium on Principles of Programming Languages, pp. 125–135 (1990)Google Scholar
  4. 4.
    Gamma, E., et al.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)Google Scholar
  5. 5.
    Keedy, J.L., Menger, G., Heinlein, C.: Support for Subtyping and Code Re-use in Timor. In: 40th International Conference on Technology of Object-Oriented Languages and Systems (TOOLS Pacific 2002), Sydney, Australia. Conferences in Research and Practice in Information Technology, vol. 10, pp. 35–43 (2002)Google Scholar
  6. 6.
    Keedy, J.L., Menger, G., Heinlein, C.: Inheriting from a Common Abstract Ancestor in Timor. Journal of Object Technology ( 1(1), 81–106 (2002)CrossRefGoogle Scholar
  7. 7.
    Keedy, J.L., Menger, G., Heinlein, C.: Inheriting Multiple and Repeated Parts in Timor. Journal of Object Technology ( 3(6) (2004), (to appear)
  8. 8.
    Liskov, B., Curtis, D., Day, M., Ghemawat, S., Gruber, R., Johnson, P., Myers, A.C.: Theta Reference Manual, MIT Laboratory for Computer Science, Cambridge, MA, Programming Methodology Group Memo 88 (February 1994)Google Scholar
  9. 9.
    Liskov, B., Wing, J.M.: A Behavioral Notion of Subtyping. ACM Transactions on Programming Languages and Systems 16(6), 1811–1841 (1994)CrossRefGoogle Scholar
  10. 10.
    Parnas, D.L.: On the Criteria To Be Used in Decomposing Systems into Modules. Communications of the ACM 15(12), 1053–1058 (1972)CrossRefGoogle Scholar
  11. 11.
    Schmolitzky: Ein Modell zur Trennung von Vererbung und Typabstraktion in objektorientierten Sprachen (A Model for Separating Inheritance and Type Abstraction in Object Oriented Languages), Ph.D. Thesis, Dept. of Computer Structures: University of Ulm, Germany (1999)Google Scholar
  12. 12.
    Ungar, D., Smith, R.B.: Self: The Power of Simplicity. In: OOPSLA 1987, Orlando, Florida. ACM SIGPLAN Notices, vol. 22, pp. 227–241 (1987)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • J. Leslie Keedy
    • 1
  • Christian Heinlein
    • 1
  • Gisela Menger
    • 1
  1. 1.Department of Computer StructuresUniversity of UlmUlmGermany

Personalised recommendations