75,782 research outputs found
Inheritance through the cytoplasm
Most heritable information in eukaryotic cells is encoded in the nuclear genome, with inheritance patterns following classic Mendelian segregation. Genomes residing in the cytoplasm, however, prove to be a peculiar exception to this rule. Cytoplasmic genetic elements are generally maternally inherited, although there are several exceptions where these are paternally, biparentally or doubly-uniparentally inherited. In this review, we examine the diversity and peculiarities of cytoplasmically inherited genomes, and the broad evolutionary consequences that non-Mendelian inheritance brings. We first explore the origins of vertical transmission and uniparental inheritance, before detailing the vast diversity of cytoplasmic inheritance systems across Eukaryota. We then describe the evolution of genomic organisation across lineages, how this process has been shaped by interactions with the nuclear genome and population genetics dynamics. Finally, we discuss how both nuclear and cytoplasmic genomes have evolved to co-inhabit the same host cell via one of the longest symbiotic processes, and all the opportunities for intergenomic conflict that arise due to divergence in inheritance patterns. In sum, we cannot understand the evolution of eukaryotes without understanding hereditary symbiosis
Experience with statically-generated proxies for facilitating Java runtime specialisation
Issues pertaining to mechanisms which can be used to change the behaviour of Java classes at runtime are discussed. The proxy mechanism is compared to, and contrasted with other standard approaches to this problem. Some of the problems the proxy mechanism is subject to are expanded upon. The question of whether statically-developed proxies are a viable alternative to bytecode rewriting was investigated by means of the JavaCloak system, which uses statically-generated proxies to alter the runtime behaviour of externally-developed code. The issues addressed include ensuring the type safety, dealing with the self problem, object encapsulation, and issues of object identity and equality. Some performance figures are provided which demonstrate the load the JavaCloak proxy mechanism places on the system
The C Object System: Using C as a High-Level Object-Oriented Language
The C Object System (Cos) is a small C library which implements high-level
concepts available in Clos, Objc and other object-oriented programming
languages: uniform object model (class, meta-class and property-metaclass),
generic functions, multi-methods, delegation, properties, exceptions, contracts
and closures. Cos relies on the programmable capabilities of the C programming
language to extend its syntax and to implement the aforementioned concepts as
first-class objects. Cos aims at satisfying several general principles like
simplicity, extensibility, reusability, efficiency and portability which are
rarely met in a single programming language. Its design is tuned to provide
efficient and portable implementation of message multi-dispatch and message
multi-forwarding which are the heart of code extensibility and reusability.
With COS features in hand, software should become as flexible and extensible as
with scripting languages and as efficient and portable as expected with C
programming. Likewise, Cos concepts should significantly simplify adaptive and
aspect-oriented programming as well as distributed and service-oriented
computingComment: 18
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
The inheritance of dynamic and deontic integrity constraints or: Does the boss have more rights?
In [18,23], we presented a language for the specification of static, dynamic and deontic integrity constraints (IC's) for conceptual models (CM's). An important problem not discussed in that paper is how IC's are inherited in a taxonomic network of types. For example, if students are permitted to perform certain actions under certain preconditions, must we repeat these preconditions when specializing this action for the subtype of graduate students, or are they inherited, and if so, how? For static constraints, this problem is relatively trivial, but for dynamic and deontic constraints, it will turn out that it contains numerous pitfalls, caused by the fact that common sense supplies presuppositions about the structure of IC inheritance that are not warranted by logic. In this paper, we unravel some of these presuppositions and show how to avoid the pitfalls. We first formulate a number of general theorems about the inheritance of necessary and/or sufficient conditions and show that for upward inheritance, a closure assumption is needed. We apply this to dynamic and deontic IC's, where conditions arepreconditions of actions, and show that our common sense is sometimes mistaken about the logical implications of what we have specified. We also show the connection of necessary and sufficient preconditions of actions with the specification of weakest preconditions in programming logic. Finally, we argue that information analysts usually assume constraint completion in the specification of (pre)conditions analogous to predicate completion in Prolog and circumscription in non-monotonic logic. The results are illustrated with numerous examples and compared with other approaches in the literature
- …