How to write parallel programs: a guide to the perplexed
ACM Computing Surveys (CSUR)
Proceedings of the seventeenth international colloquium on Automata, languages and programming
The art of metaobject protocol
The art of metaobject protocol
Regular types for active objects
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Research directions in concurrent object-oriented programming
Theoretical aspects of object-oriented programming
Information and Computation
Research directions in software composition
ACM Computing Surveys (CSUR)
Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
Component-oriented software technology
Object-oriented software composition
The reflexive CHAM and the join-calculus
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Software engineering with reusable components
Software engineering with reusable components
Software architecture in practice
Software architecture in practice
Java servlet programming
Pict: a programming language based on the Pi-Calculus
Proof, language, and interaction
A Theory of Objects
Internet Programming with Python
Internet Programming with Python
Concurrent Programming in Java. Second Edition: Design Principles and Patterns
Concurrent Programming in Java. Second Edition: Design Principles and Patterns
Smalltalk-80: The Language
The 4+1 View Model of Architecture
IEEE Software
JMLC '00 Proceedings of the Joint Modular Languages Conference on Modular Programming Languages
Concurrent Objects in a Process Calculus
TPPP '94 Proceedings of the International Workshop on Theory and Practice of Parallel Programming
An Object Calculus for Asynchronous Communication
ECOOP '91 Proceedings of the European Conference on Object-Oriented Programming
ECOOP '94 Proceedings of the 8th European Conference on Object-Oriented Programming
A pi-Calculus Semantics for an Object-Based Design Notation
CONCUR '93 Proceedings of the 4th International Conference on Concurrency Theory
Requirements for a Composition Language
ECOOP '94 Selected papers from the ECOOP'94 Workshop on Models and Languages for Coordination of Parallelism and Distribution, Object-Based Models and Languages for Concurrent Systems
The IWIM Model for Coordination of Concurrent Activities
COORDINATION '96 Proceedings of the First International Conference on Coordination Languages and Models
FoSSaCS '98 Proceedings of the First International Conference on Foundations of Software Science and Computation Structure
Coordination of massively concurrent activities
Coordination of massively concurrent activities
Python reference manual
Automated assembly of software components based on XML-coded instructions
Proceedings of the 2002 ACM symposium on Applied computing
COORDINATION '00 Proceedings of the 4th International Conference on Coordination Languages and Models
HydroJ: object-oriented pattern matching for evolvable distributed systems
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
A principled exploration of coordination models
Theoretical Computer Science - Abstract state machines and high-level system design and analysis
Towards an automatic complexity analysis for generic programs
Proceedings of the 2006 ACM SIGPLAN workshop on Generic programming
A calculus for reasoning about software composition
Theoretical Computer Science - Formal methods for components and objects
A Component Coordination Model Based on Mobile Channels
Fundamenta Informaticae
Bean markup language: a composition language for JavaBeans components
COOTS'01 Proceedings of the 6th conference on USENIX Conference on Object-Oriented Technologies and Systems - Volume 6
Lessons in Software Evolution Learned by Listening to Smalltalk
SOFSEM '10 Proceedings of the 36th Conference on Current Trends in Theory and Practice of Computer Science
The ComFoRT reasoning framework
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
On the revival of dynamic languages
SC'05 Proceedings of the 4th international conference on Software Composition
Component-Based Software Development for Embedded Systems
Architectural building blocks for plug-and-play system design
CBSE'06 Proceedings of the 9th international conference on Component-Based Software Engineering
A Component Coordination Model Based on Mobile Channels
Fundamenta Informaticae
Formalising security in ubiquitous and cloud scenarios
CISIM'12 Proceedings of the 11th IFIP TC 8 international conference on Computer Information Systems and Industrial Management
Hi-index | 0.00 |
Although object-oriented languages are well-suited to implement software components, they fail to shine in the construction of component-based applications, largely because object-oriented design tends to obscure a component-based architecture. We propose to tackle this problem by clearly separating component implementation and composition. In particular, we claim that application development is best supported by consciously applying the paradigm 'Applications = Components + Scripts'. In this chapter we introduce PICCOLA, a small 'composition language' that embodies this paradigm. PICCOLA models components and compositional abstractions by means of communicating concurrent agents. Flexibility, extensibility and robustness are obtained by modelling both interfaces of components and the contexts in which they live by 'forms', a special notion of extensible records. Using a concrete example, we illustrate how PICCOLA offers explicit support for viewing applications as compositions of components and show that separating components from their composition improves maintainability.