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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Agha, G.: Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge (1986)
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)
Allen, R., Garlan, D.: A Formal Basis for Architectural Connection. ACM Transactions on Software Engineering and Methodology 6(3), 213–249 (1997)
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)
Bracha, G., Cook, W.: Mixin-based Inheritance. In: Object-Oriented Programming Systems, Languages, and Applications (OOPSLA) (October 1990)
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)
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)
Bokowski, B., Vitek, J.: Confined Types. In: Object-Oriented Programming Systems, Languages, and Applications (OOPSLA) (November 1999)
Bläser, L.: The Component Language, ETH Zurich, Switzerland (2006) available from, http://www.jg.inf.ethz.ch/components
Gutknecht, J., Muller, P.J., Frey, T.M., et al.: The Bluebottle Operating System, ETH Zurich, Switzerland, Available from, http://www.bluebottle.ethz.ch
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)
Friedrich, F.: The WinAOS Oberon System, ETH Zurich, Switzerland. available from, http://www.bluebottle.ethz.ch/winaos
GĂĽntensperger, R., Gutknecht, J.: Active C# .NET Technologies (May 2004)
Gutknecht, J., Zueff, E.: Zonnon Language Report, ETH Zurich, Switzerland (October 2004) available from, http://www.zonnon.ethz.ch
Hewitt, C., Bishop, P., Steiger, R.: A Universal Modular Actor Formalism for Artificial Intelligence. In: International Joint Conference on Artificial Intelligence (IJCAI) (1973)
Hogg, J.: Islands: Aliasing Protection in Object-Oriented Languages. In: Object-Oriented Programming Systems, Languages, and Applications (OOPSLA) (October 1991)
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)
Hoare, C.A.R.: Communicating Sequential Processes. Communications of the ACM 21(8), 666–677 (1978)
Inmos Ltd. Occam 2 Reference Manual. Prentice-Hall (1988)
Magee, J., Kramer, J.: Dynamic Structure in Software Architectures. In: Fourth Symposium on the Foundations of Software Engineering (FSE) (October 1996)
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)
Müller, P., Poetzsch-Heffter, A.: A Type System for Alias and Dependency Control. Technical Report 279, Fernuniversität Hagen (2001)
Muller, P.J.: The Active Object System. Design and Multiprocessor Implementation. Ph.D thesis 14755, Department of Computer Science, ETH Zurich (2002)
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)
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)
Szyperski, C.: Component Software, Beyond Object-Oriented Programming. Addison-Wesley, Reading (1998)
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
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
Wirth, N.: What can we do about the unnecessary diversity of notation for syntactic definitions? Communications of the ACM 20(11), 822–823 (1977)
Wirth, N., Gutknecht, J.: The Oberon System. Software – Practice and Experience 19(9), 857–893 (1989)
Wirth, N.: The Programming Language Oberon. Software - Practice and Experience 18(7), 671–690 (1988)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)