Skip to main content

Explicit Namespaces

  • Conference paper
Modular Programming Languages (JMLC 2000)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1897))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Google Scholar 

  2. 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)

    Google Scholar 

  3. Bracha, G., Cook, W.: Mixin-based Inheritance. In: Proceedings OOPSLA/ ECOOP 1990. ACM SIGPLAN Notices, vol. 25(10), pp. 303–311 (1990)

    Google Scholar 

  4. Cardelli, L., Gordon, A.D.: Mobile Ambients. In: Nivat, M. (ed.) FOSSACS 1998. LNCS, vol. 1378, pp. 140–155. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  5. Ducasse, S.: Evaluating Message Passing Control Techniques in Smalltalk. Journal of Object-Oriented Programming (JOOP) 12(6), 39–44 (1999)

    Google Scholar 

  6. Kalev, D.: Ansi/Iso C++ Professional Programmer’s Handbook, Que Professional Series (1999)

    Google Scholar 

  7. Kiczales, G., des Rivières, J., Bobrow, D.G.: The Art of the Metaobject Protocol. MIT Press, Cambridge (1991)

    Google Scholar 

  8. 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)

    Chapter  Google Scholar 

  9. 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)

    Chapter  Google Scholar 

  10. 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)

    Google Scholar 

  11. 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)

    Google Scholar 

  12. 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)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. Lutz, M.: Programming Python. O’Reilly, Sebastopol (1996)

    MATH  Google Scholar 

  15. Milner, R.: Functions as Processes. In: Paterson, M.S. (ed.) Proceedings ICALP 1990. LNCS, vol. 443, pp. 167–180. Springer, Heidelberg (1990)

    Google Scholar 

  16. Milner, R.: The Polyadic pi Calculus: a tutorial ECS-LFCS-91-180, Computer Science Dept., University of Edinburgh (October 1991)

    Google Scholar 

  17. Noble, J., Potter, J., Vitek, J.: Flexible alias protection. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, p. 158. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  18. Odersky, M.: Programming with Variable Functions. In: Proc. International Conference on Functional Programming, Baltimore (1998)

    Google Scholar 

  19. Orfali, R., Harkey, D., Edwards, J.: Instant Corba. Wiley, Chichester (1997)

    Google Scholar 

  20. 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)

    Google Scholar 

  21. Sangiorgi, D.: Interpreting functions as Pi-calculus processes: a tutorial, RR 3470, INRIA Sophia-Antipolis, France (February 1999)

    Google Scholar 

  22. 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)

    Google Scholar 

  23. 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)

    Google Scholar 

  24. Steele, G.L.: Common Lisp The Language, 2nd edn. Digital Press (1990)

    Google Scholar 

  25. Ungar, D., Smith, R.B.: Self: The Power of Simplicity. In: Proceedings OOPSLA 1987, ACM SIGPLAN Notices, December 1987, pp. 227–242 (1987)

    Google Scholar 

  26. Wadler, P.: Monads for functional programming. In: Jeuring, J., Meijer, E. (eds.) AFP 1995. LNCS, vol. 925. Springer, Heidelberg (1995)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics