25 research outputs found

    An Object-Oriented Model for Extensible Concurrent Systems: the Composition-Filters Approach

    Get PDF
    Applying the object-oriented paradigm for the development of large and complex software systems offers several advantages, of which increased extensibility and reusability are the most prominent ones. The object-oriented model is also quite suitable for modeling concurrent systems. However, it appears that extensibility and reusability of concurrent applications is far from trivial. The problems that arise, the so-called inheritance anomalies are analyzed and presented in this paper. A set of requirements for extensible concurrent languages is formulated. As a solution to the identified problems, an extension to the object-oriented model is presented; composition filters. Composition filters capture messages and can express certain constraints and operations on these messages, for example buffering. In this paper we explain the composition filters approach, demonstrate its expressive power through a number of examples and show that composition filters do not suffer from the inheritance anomalies and fulfill the requirements that were established

    Linda Talk : suporte distribuido a programação concorrente orientada a objetos

    Get PDF
    Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro TecnologicoProblemas complexos são geralmente decompostos em subproblemas menores, que sejam tratáveis mais facilmente. O mesmo vale para sistemas de computação, os quais contam com uma gama rica de abordagens de decomposição (funcional, procedural, etc). Dentre estas, a decomposição orientada a objetos tem ganho cada vez mais espaço, dada sua riqueza e poder na modelagem e implementação de sistemas informáticos. A possibilidade de programar sistemas multiprocessadores e sistemas em redes de computadores, por outro lado, favoreceu as linhas de programação paralela/concorrente/distribuída. Contudo, se de um lado a orientação a objetos clássica promove uma modelagem natural de entidades no domínio do problema, por outro lado ela falha na tentativa de expressar atividades concorrentes/paralelas. Já sistemas que suportam a noção de processos paralelos, tais como Occam, Conic, Ada, etc, permitem preencher esta lacuna. Contudo, o poder de modelagem e abstração de entidades fica bastante limitado neste tipo de abordagem, levandogeralmente à produção de sistemas difíceis de adaptar, manter e recusar. Modelos com suporte à programação paralela orientada a objetos, tais como Emerald, ConcurrentSmalltalk, Act-1, ABCL/1, etc. surgem na tentativa de unificar objetos no sentido clássico de orientação a objetos com a noção de processos paralelos e comunicantes. Porém, tanto nesta abordagem quanto na programação orientada a objetos clássica e alguns modelos de programação concorrente/paralela/distribuída, a metófora de interação entre objetos/processo é a mesma: troca de mensagens. Troca de mensagens conforme presente em sistemas concorrentes orientados a objetos apresentam diversas fraquezas no que toca a implementação, manutenção e reusabilidade de sistemas distribuídos. Nossa proposta busca incorporar a uma linguagem orientada a objetos clássica - Smalltalk - um modelo que suporte a programação paralela/distribuída com um maior grau de flexibilidade. Este modelo é o de Espaço de Tuplas, de Linda. Através de um pequeno conjunto de primitivas, tem-se um modelo simples de criação e coordenação de processos ortogonal à linguagem em que se insere o modelo (Smalltalk, no caso). Através do uso extensivo do modelo, acreditamos ser possível a construção de sistemas realmente distribuídos e orientados a objetos com um maior grau de flexibilidade em sua implementação, reusabilidade e manutenção

    Distributed Programming with Shared Data

    Get PDF
    Until recently, at least one thing was clear about parallel programming: tightly coupled (shared memory) machines were programmed in a language based on shared variables and loosely coupled (distributed) systems were programmed using message passing. The explosive growth of research on distributed systems and their languages, however, has led to several new methodologies that blur this simple distinction. Operating system primitives (e.g., problem-oriented shared memory, Shared Virtual Memory, the Agora shared memory) and languages (e.g., Concurrent Prolog, Linda, Emerald) for programming distributed systems have been proposed that support the shared variable paradigm without the presence of physical shared memory. In this paper we will look at the reasons for this evolution, the resemblances and differences among these new proposals, and the key issues in their design and implementation. It turns out that many implementations are based on replication of data. We take this idea one step further, and discuss how automatic replication (initiated by the run time system) can be used as a basis for a new model, called the shared data-object model, whose semantics are similar to the shared variable model. Finally, we discuss the design of a new language for distributed programming, Orca, based on the shared data-object model. 1

    Programming Languages for Distributed Computing Systems

    Get PDF
    When distributed systems first appeared, they were programmed in traditional sequential languages, usually with the addition of a few library procedures for sending and receiving messages. As distributed applications became more commonplace and more sophisticated, this ad hoc approach became less satisfactory. Researchers all over the world began designing new programming languages specifically for implementing distributed applications. These languages and their history, their underlying principles, their design, and their use are the subject of this paper. We begin by giving our view of what a distributed system is, illustrating with examples to avoid confusion on this important and controversial point. We then describe the three main characteristics that distinguish distributed programming languages from traditional sequential languages, namely, how they deal with parallelism, communication, and partial failures. Finally, we discuss 15 representative distributed languages to give the flavor of each. These examples include languages based on message passing, rendezvous, remote procedure call, objects, and atomic transactions, as well as functional languages, logic languages, and distributed data structure languages. The paper concludes with a comprehensive bibliography listing over 200 papers on nearly 100 distributed programming languages

    Application of Parallel Processing for Object Oriented Discrete Event Simulation of Manufacturing Systems

    Get PDF
    Industrial Engineering and Managemen

    A Brief History of the Object-Oriented Approach

    Get PDF
    Unlike other fads, the object-oriented paradigm is here to stay. The road towards an object-oriented approach is described and several object-oriented programming languages are reviewed. Since the object-oriented paradigm promised to revolutionize software development, in the 1990s, demand for object-oriented software systems increased dramatically; consequently, several methodologies have been proposed to support software development based on thatparadigm. Also presented are a survey and a classification schemefor object-oriented methodologies

    A visual object-oriented environment for LISP.

    Get PDF
    by Leong Hong Va.Thesis (M.Phil.)--Chinese University of Hong Kong, 1989.Bibliography: leaves 142-146

    A Programming Environment Evaluation Methodology for Object-Oriented Systems

    Get PDF
    The object-oriented design strategy as both a problem decomposition and system development paradigm has made impressive inroads into the various areas of the computing sciences. Substantial development productivity improvements have been demonstrated in areas ranging from artificial intelligence to user interface design. However, there has been very little progress in the formal characterization of these productivity improvements and in the identification of the underlying cognitive mechanisms. The development and validation of models and metrics of this sort require large amounts of systematically-gathered structural and productivity data. There has, however, been a notable lack of systematically-gathered information on these development environments. A large part of this problem is attributable to the lack of a systematic programming environment evaluation methodology that is appropriate to the evaluation of object-oriented systems
    corecore