Skip to main content

A Component Language for Structured Parallel Programming

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 4228))

Abstract

Current programming languages are still underdeveloped for the con struction of well-structured concurrent software systems. They typically impose many unnecessary and unacceptable compromises and/or workarounds due to a multiplicity of different suboptimal concepts. With regard to object-orientation, one can identify references, methods and inheritance as such inappropriate constructs.

To overcome this unfavourable situation, we have designed and implemented a substantially new programming language which integrates a general component notion. Three fundamental relations govern components in this language: (1) hierarchical composition, (2) symmetric connections with a dual concept of offered and required interfaces and, (3) communication-based inter actions. With the use of various examples, the advantage of the new component language is demonstrated in this paper.

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

Buying options

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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Agha, G.: Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge (1986)

    Google Scholar 

  2. Aldrich, J., Chambers, C.: Ownership Domains: Separating Aliasing Policy from Mechanism. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 1–25. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  3. Allen, R., Garlan, D.: A Formal Basis for Architectural Connection. ACM Transactions on Software Engineering and Methodology 6(3), 213–249 (1997)

    Article  Google Scholar 

  4. Almeida, P.S.: Balloon Types: Controlling Sharing of State in Data Types. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 32–59. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  5. Bracha, G., Cook, W.: Mixin-based Inheritance. In: Object-Oriented Programming Systems, Languages, and Applications (OOPSLA) (October 1990)

    Google Scholar 

  6. Boyapati, C., Lee, R., Rinard, M.: Ownership Types for Safe Programming: Preventing Data Races and Deadlocks. In: Object-Oriented Programming Systems, Languages, and Applications (OOPSLA) (November 2002)

    Google Scholar 

  7. Boyapati, C., Salcianu, A., Beebee, W., Rinard, M.: Ownership Types for Safe Region-Based Memory Management in Real-Time Java. In: Programming Language Design and Implementation (PLDI) (June 2003)

    Google Scholar 

  8. Bokowski, B., Vitek, J.: Confined Types. In: Object-Oriented Programming Systems, Languages, and Applications (OOPSLA) (November 1999)

    Google Scholar 

  9. Bläser, L.: The Component Language, ETH Zurich, Switzerland (2006) available from, http://www.jg.inf.ethz.ch/components

  10. Gutknecht, J., Muller, P.J., Frey, T.M., et al.: The Bluebottle Operating System, ETH Zurich, Switzerland, Available from, http://www.bluebottle.ethz.ch

  11. Clarke, D.G., Potter, J.M., Noble, J.: Ownership Types for Flexible Alias Protection. In: Object-Oriented Programming Systems, Languages, and Applications (OOPSLA) (October 1998)

    Google Scholar 

  12. Friedrich, F.: The WinAOS Oberon System, ETH Zurich, Switzerland. available from, http://www.bluebottle.ethz.ch/winaos

  13. Güntensperger, R., Gutknecht, J.: Active C# .NET Technologies (May 2004)

    Google Scholar 

  14. Gutknecht, J., Zueff, E.: Zonnon Language Report, ETH Zurich, Switzerland (October 2004) available from, http://www.zonnon.ethz.ch

  15. Hewitt, C., Bishop, P., Steiger, R.: A Universal Modular Actor Formalism for Artificial Intelligence. In: International Joint Conference on Artificial Intelligence (IJCAI) (1973)

    Google Scholar 

  16. Hogg, J.: Islands: Aliasing Protection in Object-Oriented Languages. In: Object-Oriented Programming Systems, Languages, and Applications (OOPSLA) (October 1991)

    Google Scholar 

  17. Hoare, C.A.R.: Hints on Programming Language Design. Stanford Artificial Intelligence Laboratory Memo AIM-224 or STAN-CS-73-403, Stanford University, Stanford, California (December 1973)

    Google Scholar 

  18. Hoare, C.A.R.: Communicating Sequential Processes. Communications of the ACM 21(8), 666–677 (1978)

    Article  MATH  MathSciNet  Google Scholar 

  19. Inmos Ltd. Occam 2 Reference Manual. Prentice-Hall (1988)

    Google Scholar 

  20. Magee, J., Kramer, J.: Dynamic Structure in Software Architectures. In: Fourth Symposium on the Foundations of Software Engineering (FSE) (October 1996)

    Google Scholar 

  21. Medvidovic, N., Rosenblum, D.S., Taylor, R.N.: A Language and Environment for Architecture-Based Software Development and Evolution. In: International Conference on Software Engineering (ICSE) (May 1999)

    Google Scholar 

  22. Müller, P., Poetzsch-Heffter, A.: A Type System for Alias and Dependency Control. Technical Report 279, Fernuniversität Hagen (2001)

    Google Scholar 

  23. Muller, P.J.: The Active Object System. Design and Multiprocessor Implementation. Ph.D thesis 14755, Department of Computer Science, ETH Zurich (2002)

    Google Scholar 

  24. Schärli, N., Ducasse, S., Nierstrasz, O., Black, A.P.: Traits: Composable Units of Behaviour. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743. Springer, Heidelberg (2003)

    Google Scholar 

  25. Schärli, N., Ducasse, S., Nierstrasz, O., Wuyts, R.: Composable Encapsulation Policies. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 26–50. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  26. Szyperski, C.: Component Software, Beyond Object-Oriented Programming. Addison-Wesley, Reading (1998)

    Google Scholar 

  27. Williams, A.: Dealing with the Unknown – or – Type Safety in a Dynamically Extensible Class Library. Draft, Microsoft Application Division (1988) available from, research.microsoft.com/comapps/docs/Unknown.doc

  28. Williams, A.: On Inheritance: What It Means and How to Use It. Draft, Applications Architecture Group, Microsoft Research (1990) available from, research.microsoft.com/comapps/docs/Inherit.doc

  29. Wirth, N.: What can we do about the unnecessary diversity of notation for syntactic definitions? Communications of the ACM 20(11), 822–823 (1977)

    Article  Google Scholar 

  30. Wirth, N., Gutknecht, J.: The Oberon System. Software – Practice and Experience 19(9), 857–893 (1989)

    Article  Google Scholar 

  31. Wirth, N.: The Programming Language Oberon. Software - Practice and Experience 18(7), 671–690 (1988)

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bläser, L. (2006). A Component Language for Structured Parallel Programming. In: Lightfoot, D.E., Szyperski, C. (eds) Modular Programming Languages. JMLC 2006. Lecture Notes in Computer Science, vol 4228. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11860990_15

Download citation

  • DOI: https://doi.org/10.1007/11860990_15

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-40927-4

  • Online ISBN: 978-3-540-40928-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics