Abstract
A namespace is a mapping from labels to values. Most programming languages support different forms of namespaces, such as records, dictionaries, objects, environments, packages and even keyword-based parameters. Typically only a few of these notions are first-class, leading to arbitrary restrictions and limited abstraction power in the host language. Piccola is a small language that unifies various notions of namespaces as first-class forms, or extensible, immutable records. By making namespaces explicit, Piccola is easily able to express various abstractions that would normally require more heavyweight techniques, such as language extensions or meta-programming.
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
Achermann, F., Nierstrasz, O.: Applications = Components + Scripts – A tour of Piccola. In: Aksit, M. (ed.) Software Architectures and Component Technology. Kluwer, Dordrecht (2000) (to appear)
Achermann, F., Lumpe, M., Schneider, J.-G., Nierstrasz, O.: Piccola - a Small Composition Language. In: Bowman, H., Derrick, J. (eds.) Formal Methods for Distributed Processing, an Object Oriented Approach. Cambridge University Press, Cambridge (2000) (to appear)
Bracha, G., Cook, W.: Mixin-based Inheritance. In: Proceedings OOPSLA/ ECOOP 1990. ACM SIGPLAN Notices, vol. 25(10), pp. 303–311 (1990)
Cardelli, L., Gordon, A.D.: Mobile Ambients. In: Nivat, M. (ed.) FOSSACS 1998. LNCS, vol. 1378, pp. 140–155. Springer, Heidelberg (1998)
Ducasse, S.: Evaluating Message Passing Control Techniques in Smalltalk. Journal of Object-Oriented Programming (JOOP) 12(6), 39–44 (1999)
Kalev, D.: Ansi/Iso C++ Professional Programmer’s Handbook, Que Professional Series (1999)
Kiczales, G., des Rivières, J., Bobrow, D.G.: The Art of the Metaobject Protocol. MIT Press, Cambridge (1991)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Lea, D.: Design for Open Systems in Java. In: Garlan, D., Le Métayer, D. (eds.) COORDINATION 1997. LNCS, vol. 1282, pp. 32–45. Springer, Heidelberg (1997)
Liang, S., Hudak, P., Jones, M.P.: Monad Transformers and Modular Interpreters. In: Conference Record of POPL 1995, San Francisco, California, pp. 333–343 (1995)
Lippert, M., Lopes, C.V.: A Study on Exception Detection and Handling Using Aspect-Oriented Programming, Technical Report P9910229 CSL-99-1, Xerox Parc Palo Alto (December 1999)
Lumpe, M., Achermann, F., Nierstrasz, O.: A Formal Language for Composition. In: Leavens, G., Sitaraman, M. (eds.) Foundations of Component Based Systems, pp. 69–90. Cambridge University Press, Cambridge (2000)
Lumpe, M.: A Pi-Calculus Based Approach to Software Composition. Ph.D. thesis, University of Bern, Institute of Computer Science and Applied Mathematics (January 1999)
Lutz, M.: Programming Python. O’Reilly, Sebastopol (1996)
Milner, R.: Functions as Processes. In: Paterson, M.S. (ed.) Proceedings ICALP 1990. LNCS, vol. 443, pp. 167–180. Springer, Heidelberg (1990)
Milner, R.: The Polyadic pi Calculus: a tutorial ECS-LFCS-91-180, Computer Science Dept., University of Edinburgh (October 1991)
Noble, J., Potter, J., Vitek, J.: Flexible alias protection. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, p. 158. Springer, Heidelberg (1998)
Odersky, M.: Programming with Variable Functions. In: Proc. International Conference on Functional Programming, Baltimore (1998)
Orfali, R., Harkey, D., Edwards, J.: Instant Corba. Wiley, Chichester (1997)
Pierce, B.C., Turner, D.N.: Pict: A Programming Language based on the Pi-Calculus, Technical Report, no. CSCI 476, Computer Science Department, Indiana University (March 1997)
Sangiorgi, D.: Interpreting functions as Pi-calculus processes: a tutorial, RR 3470, INRIA Sophia-Antipolis, France (February 1999)
Schneider, J.-G., Lumpe, M.: Synchronizing Concurrent Objects in the Pi-Calculus. In: Ducournau, R., Garlatti, S. (eds.) Proceedings of Langages et Modèles à Objects 1997, Hermes, Roscoff, October 1997, pp. 61–76 (1997)
Schneider, J.-G.: Components, Scripts, and Glue: A conceptual framework for software composition Ph.D. thesis, University of Bern, Institute of Computer Science and Applied Mathematics (October 1999)
Steele, G.L.: Common Lisp The Language, 2nd edn. Digital Press (1990)
Ungar, D., Smith, R.B.: Self: The Power of Simplicity. In: Proceedings OOPSLA 1987, ACM SIGPLAN Notices, December 1987, pp. 227–242 (1987)
Wadler, P.: Monads for functional programming. In: Jeuring, J., Meijer, E. (eds.) AFP 1995. LNCS, vol. 925. Springer, Heidelberg (1995)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Achermann, F., Nierstrasz, O. (2000). Explicit Namespaces. In: Weck, W., Gutknecht, J. (eds) Modular Programming Languages. JMLC 2000. Lecture Notes in Computer Science, vol 1897. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10722581_8
Download citation
DOI: https://doi.org/10.1007/10722581_8
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-67958-5
Online ISBN: 978-3-540-44519-7
eBook Packages: Springer Book Archive