Authors:
Peter Grogono
1
and
Brian Shearing
2
Affiliations:
1
Computer Science and Software Engineering, Concordia University, Canada
;
2
The Software Factory, United Kingdom
Keyword(s):
Concurrency, processes, protocols, message-passing, isolation.
Related
Ontology
Subjects/Areas/Topics:
Languages and Compilers
;
Programming Languages
;
Software Engineering
Abstract:
Software systems bridge the gap between the information processing needs of the world and computer hardware. As system requirements grow in complexity and hardware evolves, the gap does not necessarily widen, but it undoubtedly changes. Although today’s applications require concurrency and today’s hardware provides concurrency, programming languages remain predominantly sequential. Concurrent programming is considered too difficult and too risky to be practiced by “ordinary programmers”. Software development is moving towards a paradigm shift, following which concurrency will play a fundamental role in programming. In this paper, we introduce an approach that we believe will reduce the difficulties of developing and maintaining certain kinds of concurrent software. Building on earlier work but applying modern insights, we propose a programming paradigm based on processes that exchange messages. Innovative features include scale-free program structure, extensible modular components wi
th multiple interfaces, protocols that specify the form of messages, and separation of semantics and deployment. We suggest that it may be possible to provide the flexibility and expressiveness of programming with processes while bounding the complexity caused by nondeterminism.
(More)