Abstract
The notion of nested blocks has come into disfavour or has been ignored in recent program language design. Many of the current object oriented programming languages use subclassing as the sole mechanism to establish relationships between classes and have no general notion of nesting. We argue that nesting (and, more generally, hierarchical organization) is a powerful mechanism that provides facilities that are not otherwise possible in a class based programming language. We agree that traditional block structure and its associated nesting have severe problems, and we suggest several extensions to the notion of blocks and block structure that indirectly make nesting a useful and powerful mechanism, particularly in an object oriented programming system. The main extension is to allow references to definitions from outside of the containing block, thereby making the contained definitions available in a larger scope. References are made using either the name of the containing entity or an instance of the containing entity. The extensions suggest a way to organize the programming environment for a large, multi-user system. These facilities are not available with subclassing, and subclassing provides facilities not available by nesting; hence, an object oriented language can benefit by providing nesting as well.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
11. References
United States Department of Defense. “Reference Manual for the Ada Programming Language”. ANSIIMIL-STD-1815A-1983, February 1983, Springer-Verlag, New York
Atkinson, M. P., Morrison, R. “Types, Binding and Parameters in a Persistent Environment”. Persistence and Data Types Papers for the Appin Workshop, Persistent Programming Research Report 16, University of Glasgow, Dept. of Computing Science, Scotland, August 1985, pp. 1–24
Bartol, W. M., et al. “Report on the LOGLAN82 Programming Language”. Polska Akademia Nauk, Instytut Podstaw Informatyki, Panstwowe Wydawnictwo Naukowe, Warszawa-Lodz, 1984
Bobrow, D. G., Stefik, M. “The LOOPS Manual”. Xerox Corporation, 1983
Buhr, P. A., Zarnke, C. R. “A Design for Integration of Files into a Strongly Typed Programming Language”. Proceedings IEEE Computer Society 1986 International Conference on Computer Languages, Miami, Florida, October 1986, pp. 190–200
Buhr, P. A., Zarnke, C. R. “Persistence in an Environment for a Statically-Typed Programming Language”. Persistent Object Systems: their design, implementation and use., Persistent Programming Research Report 44, University of Glasgow, Scotland, August 1987, pp. 317–336
Buhr, P. A., Zarnke, C. R. “Protection in a Multi-User Object-Oriented Environment”. in preparation.
Cox, B. J. Object Oriented Programming, Addison-Wesley, 1986
Clarke, L. A., Wilden, J. C., Wolf, A. L. “Nesting in Ada Programs is for the Birds”. SIGPLAN Notices, vol. 15, no. 11, November 1980, pp. 139–145
DeRemer, F., Kron, H. H. “Programming-in-the-Large Versus Programming-in-the-Small”. I.E.E.E. Transactions on Software Engineering, vol. SE-2, no. 2, June 1976, pp. 80–86
Goldberg, A., Robson, D. Smalltalk-80: The Language and its Implementation, Addison-Wesley, May 1983
Hanson, D. R. “Is Block Structure Necessary?”. Software—Practice and Experience, vol. 11, 1981, pp. 853–866
Heering, J., Klint, P. “Towards Monolingual Programming Environments”. ACM Transactions on Programming Languages and Systems, vol. 7, no. 2, April 1985, pp. 183–213
House, R. T. “Alternative Scope Rules for Block-Structure Languages”. The Computer Journal, vol. 29, no. 3, June 1986, pp. 253–260
IBM. OS and DOS PL/I Language Reference Manual, Manual GC26-3977-0, September 1981
Kristensen, B. B., Madsen, O. L., Moller-Pedersen, B., Nygaard, K. “The BETA Programming Language”. Research Directions in Object-Oriented Programming, Shiver, B., Wegner, P. (eds.) MIT Press, Computer Systems Series, 1987, pp. 7–48.
Lampson, B. W., Horning, J. J., London, R. L., Mitchell, J. G., Popek, G. L. “Report on the Programming Language Euclid”. SIGPLAN Notices, vol. 12, no. 2, February 1977, pp. 1–79
Madsen, O. L. “Block Structure and Object Oriented Languages”. Research Directions in Object-Oriented Programming, Shiver, B., Wegner, P. (eds.) MIT Press, Computer Systems Series, 1987, pp. 113–128
Mayer, B. “Eiffel: Programming for Reusability and Extendibility”. SIG-PLAN Notices, vol. 22, no. 2, February 1987, pp. 85–94
Parnas, D. L., Clements, P. C., Weiss, D. M. “The Modular Structure of Complex Systems”. I.E.E.E. Transactions of Software Engineering, vol. SE-11, no. 3, March 1985, pp. 259–266
Shaw, M. ALPHARD: Form and Content. Springer-Verlag, New York, 1981
Simula-Data Processing. Programming Languages, Swedish Standard SS636114 SIS, Stockholm, Sweden, June 1987
Stroustrup, B. The C++ Programming Language, Addison-Wesley, 1986
W. Teitelman, J. W. Goodwin, A. K. Hartley, et al., Interlisp Reference Manuul, Xerox Palo Alto Rcsearch Center, 1978
W. Teitelman, The Cedar Programming Environment; A Midterm Report and Examination, Xerox Palo Alto Research Center, Technical Report CSL-83-11, June 1984
Tennent, R. D. “Two Examples of Block Structuring”. Software—Practice and Experience, vol. 12, 1982, pp. 385–392
Wegbreit, B. “The ECL programming system”. Proceedings of AFIPS 1971 FJCC, vol. 39, AFIPS Press, Montvale, N. J., pp. 253–262
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1988 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Buhr, P.A., Zarnke, C.R. (1988). Nesting in an Object Oriented Language is NOT for the Birds. In: Gjessing, S., Nygaard, K. (eds) ECOOP ’88 European Conference on Object-Oriented Programming. ECOOP 1988. Lecture Notes in Computer Science, vol 322. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45910-3_8
Download citation
DOI: https://doi.org/10.1007/3-540-45910-3_8
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-50053-7
Online ISBN: 978-3-540-45910-1
eBook Packages: Springer Book Archive