Octopus: A Reflective Language Mechanism for Object Manipulation

  • Alex Farkas
  • Alan Dearle
Part of the Workshops in Computing book series (WORKSHOPS COMP.)


A class of database programs exist which are required to operate over an infinite number of types; included in this class are object browsers and query tools. The types over which these programs operate cannot be enumerated statically. One solution to this problem is to provide a reflective language mechanism that permits the types of values to be abstracted over and the values manipulated in a type independent manner; this paper describes such a mechanism. The mechanism is called Octopus which is an acronym for Object Closure Transplantable to Other Persistent User Spaces. The essence of the technique is to allow values from the programming language value space to be hoisted up to a meta level and manipulated in ways which the programming language would not otherwise permit. When manipulation is complete they may be dropped back into the value space, provided that they still conform to the language’s type system. An additional feature of this technique, as the name suggests, is the ability to isolate portions of closures, and copy them to other locations. Partial closures may be rewired, possibly in a different context, using the meta level interface supplied by Octopus.


Programming Language Partial Closure Abstract Data Type Object Closure Persistent Store 
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.
    Albano, A., Cardelli, L. and Orsini, R. “Galileo: A Strongly Typed, Interactive Conceptual Language”, ACM Transactions on Database Systems, vol 10, 2, pp. 230–260, 1985.CrossRefGoogle Scholar
  2. 2.
    Atkinson, M. P. “Malcolm’s Famous Parts Example”, Personal Communication, 1887.Google Scholar
  3. 3.
    Bachman, C. W. “The Programmer as Navigator”, Turing Award Lecture, in Communications of the ACM, vol 16, 11, pp. 653–658, 1973.CrossRefGoogle Scholar
  4. 4.
    Cardelli, L. “Typeful Programming”, Research Report 45, DIGITAL Systems Research Center, 1989.Google Scholar
  5. 5.
    Connor, R. C. H., Brown, A. L., Cutts, Q. I., Dearle, A., Morrison, R. and Rosenberg, J. “Type Equivalence Checking in Persistent Object Systems”, in Proceedings of the 4th International Workshop on Persistent Object Systems, Morgan-Kaufmann, Martha’s Vineyard, Massachusetts, pp. 151–164, 1990.Google Scholar
  6. 6.
    Davie, A. J. T. and McNally, D. J. “PCASE - A Persistent Lazy Version of an SECD Machine”, Research Report, University of St. Andrews, CS/92/7, 1992.Google Scholar
  7. 7.
    Dearle, A. and Brown, A. L. “Safe Browsing in a Strongly Typed Persistent Environment”, The Computer Journal, vol 31, 6, pp. 540–545, 1988CrossRefGoogle Scholar
  8. 8.
    Dearle, A., Rosenberg, J. and Vaughan, F. “A Remote Execution Mechanism for Distributed Homogeneous Stable Stores”, in Proceedings of the Third International Workshop on Database Programming Languages, Morgan Kauffman, pp. 125–138, 1991.Google Scholar
  9. 9.
    Farkas, A. M., Dearle, A., Kirby, G., Cutts, Q., Morrison, R. and Connor, R. “Persistent Program Construction through Browsing and User Gesture with some Typing”, in Proceedings of the Fifth International Workshop on Persistent Object Systems, Pisa, pp. 376–393, 1992.Google Scholar
  10. 10.
    Futatsugi, K., Goguen, J., Meseguer, J. and Okada, K. “Parameterized Programming in OBJ2”, in Proceedings of the Ninth International Conference of Software Engineering, pp. 51–60, 1987.Google Scholar
  11. 11.
    Apple Computer Inc., “Inside Macintosh”, Addison-Wesley, 1986.Google Scholar
  12. 12.
    American National Standards Institute, “Database Language SQL”, New York, 1986.Google Scholar
  13. 13.
    Kirby, G. N. C. “Reflection and Hyper-Programming in Persistent Programming Systems”, Ph.D. Thesis, University of St. Andrews, 1993.Google Scholar
  14. 14.
    Kirby, G. N. C., Connor, R. C. H., Cutts, Q. I., Dearle, A., Farkas, A. and Morrison, R. “Persistent Hyper-Programs”, in Proceedings of the Fifth International Workshop on Persistent Object Systems, Pisa, pp. 86–106, 1992.Google Scholar
  15. 15.
    Kirby, G. N. C. and Dearle, A. “An Adaptive Browser for Napier88”, Research Report, University of St. Andrews, 90 /16, 1990.Google Scholar
  16. 16.
    Matthes, F. and Schmidt, J. “The Type System of DBPL”, in Proceedings of the 2nd International Workshop on Database Programming Languages, Oregon, pp. 219–225, 1989.Google Scholar
  17. 17.
    Morrison, R., Atkinson, M. P., Brown, A. L. and Dearle, A. “On the Classification of Binding Mechanisms”, Information Processing Letters, vol 34, 2, pp. 51–55, 1990.MATHCrossRefGoogle Scholar
  18. 18.
    Morrison, R., Brown, A. L., Connor, R. and Dearle, A. “The Napier88 Reference Manual”, University of St. Andrews, PPRR-77–89, 1989.Google Scholar
  19. 19.
    Peyton-Jones, S. “The implementation of functional languages”, Prentice-Hall, 1987.Google Scholar
  20. 20.
    Stemple, D., Stanton, R. B., Sheard, T., Philbrow, P., Morrison, R., Kirby, G., Fegaras, L., Cooper, R. L., Connor, R. C. H., Atkinson, M. P. and Alagic, S. “Type-Safe Linguistic Reflection: A Generator Technology”, ESPRIT BRA Project 3070 FIDE Technical Report, FIDE/92/49, 1991.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Alex Farkas
    • 1
  • Alan Dearle
    • 1
  1. 1.Department of Computer ScienceUniversity of AdelaideAdelaideAustralia

Personalised recommendations