Telephone systems are a demanding application area due to several characteristics: they are very large, distributed, highly concurrent, real-time, dynamic, and have high reliability requirements. Existing methods of creating and enhancing system software are steadily becoming less satisfactory, and new models and techniques are needed. Objects are a natural way to represent communicating entities. This position paper describes a model for object concurrency that is well-suited to this target environment.
{"title":"Representing concurrent communication systems","authors":"J. Hogg, R. Iversen","doi":"10.1145/127056.127076","DOIUrl":"https://doi.org/10.1145/127056.127076","url":null,"abstract":"Telephone systems are a demanding application area due to several characteristics: they are very large, distributed, highly concurrent, real-time, dynamic, and have high reliability requirements. Existing methods of creating and enhancing system software are steadily becoming less satisfactory, and new models and techniques are needed. Objects are a natural way to represent communicating entities. This position paper describes a model for object concurrency that is well-suited to this target environment.","PeriodicalId":135062,"journal":{"name":"OOPSLA/ECOOP '90","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1991-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122467556","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
A key property of object-oriented languages is that they promote software reuse through inter-changeability or plug compatibility of software components that conform to the same message-passing interface. A characterization of such an interface is a type, and can be viewed as a constraint on the behaviour of an object. An object that conforms to the type meets the constraint. A subtype, in this view, is simply a stronger constraint: all objects that conform to a subtype also conform to the supertype. The nature of these constraints may vary, however, as may the rules for determining when one type is a subtype of another. The choice of characterization will depend on the computational model of a particular language and the way in which objects interact. We seek to develop a notion of type that will serve to characterize concurrent, active objects whose behaviour may not conform to a strict client/server model of interaction and communication.
{"title":"Towards a type theory for active objects","authors":"Oscar Nierstrasz, M. Papathomas","doi":"10.1145/127056.127092","DOIUrl":"https://doi.org/10.1145/127056.127092","url":null,"abstract":"A key property of object-oriented languages is that they promote software reuse through inter-changeability or plug compatibility of software components that conform to the same message-passing interface. A characterization of such an interface is a type, and can be viewed as a constraint on the behaviour of an object. An object that conforms to the type meets the constraint. A subtype, in this view, is simply a stronger constraint: all objects that conform to a subtype also conform to the supertype. The nature of these constraints may vary, however, as may the rules for determining when one type is a subtype of another. The choice of characterization will depend on the computational model of a particular language and the way in which objects interact. We seek to develop a notion of type that will serve to characterize concurrent, active objects whose behaviour may not conform to a strict client/server model of interaction and communication.","PeriodicalId":135062,"journal":{"name":"OOPSLA/ECOOP '90","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1991-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131778715","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"OOPSLA panel on object-based concurrent programming","authors":"G. Agha, A. Yonezawa, P. Wegner, S. Abramsky","doi":"10.1145/127056.127071","DOIUrl":"https://doi.org/10.1145/127056.127071","url":null,"abstract":"","PeriodicalId":135062,"journal":{"name":"OOPSLA/ECOOP '90","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1991-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128998092","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
This article briefly describes the objectives, approach, major features, and current status of CORAL (Concurrent Object-oRiented Application Language). CORAL is a programming system that permits the construction and execution of sequential, parallel and distributed applications in a transparent manner. It is based on a concurrent object-oriented model of computation in which concurrent objects may execute sequentially in a single processor, in parallel over shared-memory multiprocessors, or distributively over multicomputer networks. In addition, methods within an object may execute in parallel over shared-memory multiprocessors.
{"title":"CORAL: a concurrent object-oriented system for constructing and executing sequential, parallel and distributed applications","authors":"Daniel T. Chang","doi":"10.1145/127056.127074","DOIUrl":"https://doi.org/10.1145/127056.127074","url":null,"abstract":"This article briefly describes the objectives, approach, major features, and current status of CORAL (Concurrent Object-oRiented Application Language). CORAL is a programming system that permits the construction and execution of sequential, parallel and distributed applications in a transparent manner. It is based on a concurrent object-oriented model of computation in which concurrent objects may execute sequentially in a single processor, in parallel over shared-memory multiprocessors, or distributively over multicomputer networks. In addition, methods within an object may execute in parallel over shared-memory multiprocessors.","PeriodicalId":135062,"journal":{"name":"OOPSLA/ECOOP '90","volume":"125 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1991-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121250131","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
In a previous paper from our research group we showed a means of concurrency control which was consistent with the requirement of both actor-based concurrency and inheritance. This synchronization method, called behavior abstractions, was expressed in terms of the ACT++ prototype. Limitations on the behavior abstraction concept have been noted and alternatives proposed by others. We present in this paper an extension to the behavior abstraction concept which deals with its observed limitations. This extension is called behavior sets.
{"title":"Recent progress in combining actor-based concurrency with object-oriented programming","authors":"D. Kafura, R. G. Lavender","doi":"10.1145/127056.127080","DOIUrl":"https://doi.org/10.1145/127056.127080","url":null,"abstract":"In a previous paper from our research group we showed a means of concurrency control which was consistent with the requirement of both actor-based concurrency and inheritance. This synchronization method, called behavior abstractions, was expressed in terms of the ACT++ prototype. Limitations on the behavior abstraction concept have been noted and alternatives proposed by others. We present in this paper an extension to the behavior abstraction concept which deals with its observed limitations. This extension is called behavior sets.","PeriodicalId":135062,"journal":{"name":"OOPSLA/ECOOP '90","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1991-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117061646","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
A constraint is a numeric or geometric relationship between objects. Constraints have a declarative nature and are a natural way for describing relationships between objects. Combining constraint systems and object-oriented programming (OOP) appears hard. All existing systems implicitly compromise the encapsulation principle of OOP. Also, the constraint resolving mechanism is typically centralized, thereby restricting parallel execution of a constraint program. This paper proposes a mechanism that provides for constraints in the concurrent (parallel) object-oriented Procol environment. Constraints are implemented using propagators. Propagators are triggered by messages that are sent to objects. Propagator constraints are solved by local propagation of known state, intuitively allowing for parallel execution of a Procol constraint program.
{"title":"Propagators and concurrent constraints","authors":"C. Laffra, J. Bos","doi":"10.1145/127056.127087","DOIUrl":"https://doi.org/10.1145/127056.127087","url":null,"abstract":"A constraint is a numeric or geometric relationship between objects. Constraints have a declarative nature and are a natural way for describing relationships between objects. Combining constraint systems and object-oriented programming (OOP) appears hard. All existing systems implicitly compromise the encapsulation principle of OOP. Also, the constraint resolving mechanism is typically centralized, thereby restricting parallel execution of a constraint program. This paper proposes a mechanism that provides for constraints in the concurrent (parallel) object-oriented Procol environment. Constraints are implemented using propagators. Propagators are triggered by messages that are sent to objects. Propagator constraints are solved by local propagation of known state, intuitively allowing for parallel execution of a Procol constraint program.","PeriodicalId":135062,"journal":{"name":"OOPSLA/ECOOP '90","volume":"26 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1991-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116770476","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
One of the most important features in Object-Oriented Programming is the concept of class. The class encompasses the behavior of any object which belongs to it. For this reason, the class is said to be at a meta-level compared to that of the objects. The creation of an object as well as the copy are some examples of what a class is able to perform.
{"title":"Another proposal for a concurrency control level in concurrent object-oriented languages","authors":"O. Roux","doi":"10.1145/127056.127095","DOIUrl":"https://doi.org/10.1145/127056.127095","url":null,"abstract":"One of the most important features in Object-Oriented Programming is the concept of class. The class encompasses the behavior of any object which belongs to it. For this reason, the class is said to be at a meta-level compared to that of the objects. The creation of an object as well as the copy are some examples of what a class is able to perform.","PeriodicalId":135062,"journal":{"name":"OOPSLA/ECOOP '90","volume":"45 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1991-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125014079","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
This brief paper introduces a small anonymous formal system representing the core theory of concurrent object-based computing. Milner's π-calculus is its underlying formalism, but the original calculus is reinterpreted and reformulated to become a simple and powerful expression of concurrent object-based computing. We briefly describe its underlying computational framework, its syntax, transition rules, semantic equivalence, and its special properties concerning "naming", which makes this calculus unique among various concurrency formalisms.
{"title":"A small calculus for concurrent objects","authors":"Kohei Honda, M. Tokoro","doi":"10.1145/127056.127079","DOIUrl":"https://doi.org/10.1145/127056.127079","url":null,"abstract":"This brief paper introduces a small anonymous formal system representing the core theory of concurrent object-based computing. Milner's π-calculus is its underlying formalism, but the original calculus is reinterpreted and reformulated to become a simple and powerful expression of concurrent object-based computing. We briefly describe its underlying computational framework, its syntax, transition rules, semantic equivalence, and its special properties concerning \"naming\", which makes this calculus unique among various concurrency formalisms.","PeriodicalId":135062,"journal":{"name":"OOPSLA/ECOOP '90","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1991-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132213937","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The first language of the POOL family (Parallel Object-Oriented Language) was designed in 1984. Since then, a considerable amount of research on this subject has been performed. The aim of these activities was to develop a programming language that effectively supports the construction of large, complex applications that could be run on a multiprocessor without shared memory. At this moment, it can be said that a significant progress has been made in solving this formidable problem.
{"title":"POOL: design and experience","authors":"P. America","doi":"10.1145/127056.127072","DOIUrl":"https://doi.org/10.1145/127056.127072","url":null,"abstract":"The first language of the POOL family (Parallel Object-Oriented Language) was designed in 1984. Since then, a considerable amount of research on this subject has been performed. The aim of these activities was to develop a programming language that effectively supports the construction of large, complex applications that could be run on a multiprocessor without shared memory. At this moment, it can be said that a significant progress has been made in solving this formidable problem.","PeriodicalId":135062,"journal":{"name":"OOPSLA/ECOOP '90","volume":"26 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1991-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133471331","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
We are investigating the use of graph rewriting for the specification and implementation of object-based concurrent systems. Graph rewriting is a powerful framework in which to specify and implement such systems because the visual, graph-based notation more closely fits the programmer's visual image of object-based concurrent systems than textual notation, an image in which objects are represented as nodes or clusters of nodes in a graph and communication links are represented as edges in the same graph, and graph-rewriting presents an efficient implementation of object-based concurrent systems.
{"title":"Specification and implementation of Actors with graph rewriting","authors":"J. Loyall, S. Kaplan, S. K. Goering","doi":"10.1145/127056.127088","DOIUrl":"https://doi.org/10.1145/127056.127088","url":null,"abstract":"We are investigating the use of graph rewriting for the specification and implementation of object-based concurrent systems. Graph rewriting is a powerful framework in which to specify and implement such systems because the visual, graph-based notation more closely fits the programmer's visual image of object-based concurrent systems than textual notation, an image in which objects are represented as nodes or clusters of nodes in a graph and communication links are represented as edges in the same graph, and graph-rewriting presents an efficient implementation of object-based concurrent systems.","PeriodicalId":135062,"journal":{"name":"OOPSLA/ECOOP '90","volume":"24 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1991-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114211132","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}