Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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.
Atkinson, M. P. āMalcolmās Famous Parts Exampleā, Personal Communication, 1887.
Bachman, C. W. āThe Programmer as Navigatorā, Turing Award Lecture, in Communications of the ACM, vol 16, 11, pp. 653ā658, 1973.
Cardelli, L. āTypeful Programmingā, Research Report 45, DIGITAL Systems Research Center, 1989.
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.
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.
Dearle, A. and Brown, A. L. āSafe Browsing in a Strongly Typed Persistent Environmentā, The Computer Journal, vol 31, 6, pp. 540ā545, 1988
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.
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.
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.
Apple Computer Inc., āInside Macintoshā, Addison-Wesley, 1986.
American National Standards Institute, āDatabase Language SQLā, New York, 1986.
Kirby, G. N. C. āReflection and Hyper-Programming in Persistent Programming Systemsā, Ph.D. Thesis, University of St. Andrews, 1993.
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.
Kirby, G. N. C. and Dearle, A. āAn Adaptive Browser for Napier88ā, Research Report, University of St. Andrews, 90 /16, 1990.
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.
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.
Morrison, R., Brown, A. L., Connor, R. and Dearle, A. āThe Napier88 Reference Manualā, University of St. Andrews, PPRR-77ā89, 1989.
Peyton-Jones, S. āThe implementation of functional languagesā, Prentice-Hall, 1987.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
Ā© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Farkas, A., Dearle, A. (1994). Octopus: A Reflective Language Mechanism for Object Manipulation. In: Beeri, C., Ohori, A., Shasha, D.E. (eds) Database Programming Languages (DBPL-4). Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3564-7_4
Download citation
DOI: https://doi.org/10.1007/978-1-4471-3564-7_4
Publisher Name: Springer, London
Print ISBN: 978-3-540-19853-6
Online ISBN: 978-1-4471-3564-7
eBook Packages: Springer Book Archive