29,974 research outputs found
JML\u27s Rich, Inherited Specifications for Behavioral Subtypes
The Java Modeling Language (JML) is used to specify detailed designs for Java classes and interfaces. It has a particularly rich set of features for specifying methods. This paper describes those features, with particular emphasis on the features related to specification inheritance. It shows how specification inheritance in JML forces behavioral subtyping, through a discussion of semantics and examples. It also describes a notion of modular reasoning based on static type information, supertype abstraction, which is made valid in JML by methodological restrictions on invariants, history constraints, and initially clauses and by behavioral subtyping
Disjunctive Logic Programs with Inheritance
The paper proposes a new knowledge representation language, called DLP<,
which extends disjunctive logic programming (with strong negation) by
inheritance. The addition of inheritance enhances the knowledge modeling
features of the language providing a natural representation of default
reasoning with exceptions.
A declarative model-theoretic semantics of DLP< is provided, which is shown
to generalize the Answer Set Semantics of disjunctive logic programs.
The knowledge modeling features of the language are illustrated by encoding
classical nonmonotonic problems in DLP<.
The complexity of DLP< is analyzed, proving that inheritance does not cause
any computational overhead, as reasoning in DLP< has exactly the same
complexity as reasoning in disjunctive logic programming. This is confirmed by
the existence of an efficient translation from DLP< to plain disjunctive logic
programming. Using this translation, an advanced KR system supporting the DLP<
language has been implemented on top of the DLV system and has subsequently
been integrated into DLV.Comment: 28 pages; will be published in Theory and Practice of Logic
Programmin
Multi-Dimensional Inheritance
In this paper, we present an alternative approach to multiple inheritance for
typed feature structures. In our approach, a feature structure can be
associated with several types coming from different hierarchies (dimensions).
In case of multiple inheritance, a type has supertypes from different
hierarchies. We contrast this approach with approaches based on a single type
hierarchy where a feature structure has only one unique most general type, and
multiple inheritance involves computation of greatest lower bounds in the
hierarchy. The proposed approach supports current linguistic analyses in
constraint-based formalisms like HPSG, inheritance in the lexicon, and
knowledge representation for NLP systems. Finally, we show that
multi-dimensional inheritance hierarchies can be compiled into a Prolog term
representation, which allows to compute the conjunction of two types
efficiently by Prolog term unification.Comment: 9 pages, styles: a4,figfont,eepic,eps
Metamodel-based model conformance and multiview consistency checking
Model-driven development, using languages such as UML and BON, often makes use of multiple diagrams (e.g., class and sequence diagrams) when modeling systems. These diagrams, presenting different views of a system of interest, may be inconsistent. A metamodel provides a unifying framework in which to ensure and check consistency, while at the same time providing the means to distinguish between valid and invalid models, that is, conformance. Two formal specifications of the metamodel for an object-oriented modeling language are presented, and it is shown how to use these specifications for model conformance and multiview consistency checking. Comparisons are made in terms of completeness and the level of automation each provide for checking multiview consistency and model conformance. The lessons learned from applying formal techniques to the problems of metamodeling, model conformance, and multiview consistency checking are summarized
Encapsulation and Aggregation
A notion of object ownership is introduced as a solution to difficult problems of specifying and reasoning about complex linked structures and of modeling aggregates (composit objects). Syntax and semantics are provided for extending Eiffel with language support for object ownership annotation and checking. The ideas also apply to other OOPLs such as C++
- …