6 research outputs found

    A Comparison of Three Occur-Check Analysers

    No full text
    A well known problem of most Prolog interpreters and compilers is the lack of occur-check in the implementation of the unification algorithm. This means that such systems are unsound with respect to first-order predicate logic. Static analysis offers an appealing approach to the problem of occur-check reduction, that is, how to safely omit occur-checks in unification. We compare, for the first time, three static methods that have been suggested for occur-check reduction, two based on assigning "modes" to programs and one which uses abstract interpretation. In each case, the analysis or some essential part of it had not been implemented so far. Of the mode-based methods, one is due to Chadha and Plaisted and the other is due to Apt and Pellegrini. The method using abstract interpretation is based on earlier work by Plaisted, Søndergaard and others who have developed "groundness" and "sharing" analyses for logic programs. The conclusion is that a truly global analysis based on abstract i..

    Analysis of Inheritance Mechanisms in Agent-Oriented Programming

    No full text
    Research into the design methodologies for agent-oriented programming (AOP) is still in its infancy, with most of the work focused towards applying the well-known object-oriented concepts. Integration of inheritance into AOP seems a natural step in that direction. This paper addresses the notion of inheritance in AOP. We identify and formally define two problems which significantly reduce the usefulness of inheritance. We present a formal framework to investigate the notion of inheritance and the above problems. We define two alternative inheritance mechanisms for AOP and formally show the trade-offs involved. We hope that the results obtained from the analysis will help AOP language designers in their search for better inheritance mechanisms and a successful integration of inheritance within AOP. 1 Introduction Multi-agent systems are concurrent systems based on the notion of autonomous, reactive, internallymotivated agents interacting in a constantly changing environment. Resear..

    Inheritance Anomaly

    No full text
    Inheritance anomaly is a well known problem in concurrent object-oriented programming. Much work has been done in this area recently, but the problem is far from solved. In this paper we propose a simple language construct that solves the inheritance anomaly. Our proposal involves the use of pre-conditions and post-actions in which synchronization constraints of objects are specified. Pre-conditions and post-actions framework is very powerful. Apart from being able to handle all the known anomalies it also facilitates incremental changes instead of re-definitions when inherited methods are specialized or generalized. Real-time-specification anomalies and anomalies in sequential object-oriented languages are also investigated

    Inheritance Anomaly - A Formal Treatment

    No full text
    Inheritance is one of the key concepts in object-oriented programming (OOP). However, the usefulness of inheritance in concurrent OOP is greatly reduced by the inheritance anomalies. These anomalies have been subjected to intense research, but they are still only vaguely defined and often misunderstood. In this paper we show that concurrency is not the real cause of inheritance anomalies. We formally define the inheritance anomaly as a relationship between inheritance mechanisms and behavioural hierarchies. Our framework can be used to analyse the occurrence of inheritance anomalies in many different paradigms. A formal definition of the problem and a clear exposition of its causes are pre-requisites for a successful integration of inheritance and concurrency. Keywords inheritance, behavioural subtyping, concurrent object-oriented programming 1 INTRODUCTION Inheritance is one of the key concepts in object-oriented programming (OOP). It is a widely used methodology for code re-use in..
    corecore