Advertisement

A Component Language for Structured Parallel Programming

  • Luc Bläser
Part of the Lecture Notes in Computer Science book series (LNCS, 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.

Keywords

Virtual Machine Parallel Programming Component Instance Architecture Description Language Component Language 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Agha, G.: Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge (1986)Google Scholar
  2. 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)CrossRefGoogle Scholar
  3. 3.
    Allen, R., Garlan, D.: A Formal Basis for Architectural Connection. ACM Transactions on Software Engineering and Methodology 6(3), 213–249 (1997)CrossRefGoogle Scholar
  4. 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)CrossRefGoogle Scholar
  5. 5.
    Bracha, G., Cook, W.: Mixin-based Inheritance. In: Object-Oriented Programming Systems, Languages, and Applications (OOPSLA) (October 1990)Google Scholar
  6. 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. 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. 8.
    Bokowski, B., Vitek, J.: Confined Types. In: Object-Oriented Programming Systems, Languages, and Applications (OOPSLA) (November 1999)Google Scholar
  9. 9.
    Bläser, L.: The Component Language, ETH Zurich, Switzerland (2006) available from, http://www.jg.inf.ethz.ch/components
  10. 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. 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. 12.
    Friedrich, F.: The WinAOS Oberon System, ETH Zurich, Switzerland. available from, http://www.bluebottle.ethz.ch/winaos
  13. 13.
    Güntensperger, R., Gutknecht, J.: Active C# .NET Technologies (May 2004)Google Scholar
  14. 14.
    Gutknecht, J., Zueff, E.: Zonnon Language Report, ETH Zurich, Switzerland (October 2004) available from, http://www.zonnon.ethz.ch
  15. 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. 16.
    Hogg, J.: Islands: Aliasing Protection in Object-Oriented Languages. In: Object-Oriented Programming Systems, Languages, and Applications (OOPSLA) (October 1991)Google Scholar
  17. 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. 18.
    Hoare, C.A.R.: Communicating Sequential Processes. Communications of the ACM 21(8), 666–677 (1978)MATHCrossRefMathSciNetGoogle Scholar
  19. 19.
    Inmos Ltd. Occam 2 Reference Manual. Prentice-Hall (1988)Google Scholar
  20. 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. 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. 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. 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. 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. 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)CrossRefGoogle Scholar
  26. 26.
    Szyperski, C.: Component Software, Beyond Object-Oriented Programming. Addison-Wesley, Reading (1998)Google Scholar
  27. 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. 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. 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)CrossRefGoogle Scholar
  30. 30.
    Wirth, N., Gutknecht, J.: The Oberon System. Software – Practice and Experience 19(9), 857–893 (1989)CrossRefGoogle Scholar
  31. 31.
    Wirth, N.: The Programming Language Oberon. Software - Practice and Experience 18(7), 671–690 (1988)MATHCrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Luc Bläser
    • 1
  1. 1.Computer Systems InstituteETH ZurichSwitzerland

Personalised recommendations