24 research outputs found

    An analysis of inheritance hierarchy evolution

    Get PDF
    This research investigates the evolution of object-oriented inheritance hierarchies in open source, Java systems. The paper contributes an understanding of how hierarchies, particularly large complex hierarchies, evolve in ‘real world’ systems. It informs object-oriented design practices that aim to control or avoid these complicated design structures. The study is based on a detailed analysis of 665 inheritance hierarchies drawn from a total of 262 versions of 10 open source systems. The research contributions include that: i) the majority of inheritance hierarchies are ‘simple’ in structure and remain that way throughout their lifetimes ii) the majority of hierarchies are stable in terms of size and shape throughout their lifetimes iii) there is a minority of large, complex, branching ‘Subtree’ hierarchies that continue to grow ever more complicated as the systems evolve iv) a detailed analysis of some of these larger hierarchies finds evidence of ‘good’ object-oriented design practices being used but also highlights the significant challenges involved in understanding and refactoring these complex structures. There is clear evidence that some of the complex hierarchies are emphasising reuse while others appear focused on type inheritance

    Time dependent partial waves and vortex rings in the dynamics of wave packets

    Get PDF
    We have found a new class of time dependent partial waves which are solutions of time dependent Schr\"odinger equation for three dimensional harmonic oscillator. We also showed the decomposition of coherent states of harmonic oscillator into these partial waves. This decomposition appears perticularly convenient for a description of the dynamics of a wave packet representing a particle with spin when the spin--orbit interaction is present in the hamiltonian. An example of an evolution of a localized wave packet into a torus and backwards, for a particular initial conditions is analysed in analytical terms and shown with a computer graphics.Comment: 10 pages, LaTeX, 6 postscript figures, submitted to J. Phys. A: Math. Ge

    PT-symmetric models in curved manifolds

    Full text link
    We consider the Laplace-Beltrami operator in tubular neighbourhoods of curves on two-dimensional Riemannian manifolds, subject to non-Hermitian parity and time preserving boundary conditions. We are interested in the interplay between the geometry and spectrum. After introducing a suitable Hilbert space framework in the general situation, which enables us to realize the Laplace-Beltrami operator as an m-sectorial operator, we focus on solvable models defined on manifolds of constant curvature. In some situations, notably for non-Hermitian Robin-type boundary conditions, we are able to prove either the reality of the spectrum or the existence of complex conjugate pairs of eigenvalues, and establish similarity of the non-Hermitian m-sectorial operators to normal or self-adjoint operators. The study is illustrated by numerical computations.Comment: 37 pages, PDFLaTeX with 11 figure

    Objects as session-typed processes

    Full text link
    A key idea in object-oriented programming is that objects encapsulate state and interact with each other by message exchange. This perspective suggests a model of computation that is inherently concurrent (to facilitate simultaneous mes-sage exchange) and that accounts for the effect of message exchange on an object’s state (to express valid sequences of state transitions). In this paper we show that such a model of computation arises naturally from session-based commu-nication. We introduce an object-oriented programming lan-guage that has processes as its only objects and employs lin-ear session types to express the protocols of message ex-change and to reason about concurrency and state. Based on various examples we show that our language supports the typical patterns of object-oriented programming (e.g., en-capsulation, dynamic dispatch, and subtyping) while guar-anteeing session fidelity in a concurrent setting. In addition, we show that our language facilitates new forms of expres-sion (e.g., type-directed reuse, internal choice), which are not available in current object-oriented languages. We have implemented our language in a prototype compiler

    Concurrent object-oriented programs: From specification to code

    No full text
    Abstract. In this paper we put forward a concurrent object-oriented programming language in which concurrency is tightly integrated with objects. Concurrency is expressed by extending classes with actions and allowing methods to be guarded. Concurrency in an object may be hidden to the outside, thus allowing concurrency to be introduced in subclasses of a class hierarchy. A disciplined form of intra-object concurrency is supported. The language is formally defined by translation to action systems. Inheritance and subtyping is also considered. A theory of class refinement is presented, allowing concurrent programs to be developed from sequential specifications. Our goal is to have direct rules for verification and refinement on one hand and a practical implementation on the other hand. We briefly sketch our implementation. While the implementation relies on threads, the management of threads is hidden to the programmer.

    Relational Database Support for Aspect-Oriented Programming

    No full text
    Code repositories play a central role in the reuse and mining of existing assets when engineering large, complex software systems. It is, therefore, essential that database support be extended to new programming paradigms as and when they emerge. This paper proposes an approach to support the storage, reuse and mining of aspects - constructs used in AspectOriented Programming (AOP) to separate crosscutting concerns - in AspectJ (an aspect language for Java) using a relational database. The approach is based on mapping an aspect's anatomy to the relational model hence allowing finegrained queries to be composed. This results in greater flexibility during search and retrieval in contrast with most existing code repositories which store the code as BLObs complemented by meta-data about the code

    Generic Wrappers

    No full text
    Component software means reuse and separate marketing of pre-manufactured binary components. This requires components from different vendors to be composed very late, possibly by end users at run time as in compound-document frameworks. To this aim, we propose generic wrappers, a new language construct for stronglytyped class-based languages. With generic wrappers, objects can be aggregated at run time. The aggregate belongs to a subtype of the actual type of the wrapped object. A lower bound for the type of the wrapped object is fixed at compile time. Generic wrappers are type safe and support modular reasoning. This feature combination is required for true component software but not achieved by known wrapping and combination techniques, such as the wrapper pattern or mix-ins. We analyze the design space for generic wrappers, e.g. overriding, forwarding vs. delegation, and snappy binding of the wrapped object. As a proof of concept, we add generic wrappers to Java and report on a mechanized type soundness proof of the latter

    INORGANIC SCINTILLATOR

    Full text link
    FIELD: selective detection and displaying of heavy-density pulse electron beams in background α-, β-, γ radiation of nuclides, in particular, for electron beams generated by heavy-current amplifiers of electrons. SUBSTANCE: method involves usage of semiconductor crystals of HgI2 (red tetragonal modification) as inorganic scintillator.EFFECT: increased efficiency for detection of heavy-density electron beams, practical insensitivity to α-, β-, γ- radiation of nuclides.Использование: в качестве избирательного детектора для визуализации и эффективной регистрации импульсных пучков электронов высокой плотности на фоне α-, β-, γ - ядерных излучений радионуклидов в частности, для визуализации и регистрации электронных пучков, создаваемых сильноточными ускорителями электронов нано- и пикосекундного диапазона. Сущность изобретения: применение известных полупроводниковых кристаллов иодида ртути HgI2 (красной тетрагональной модификации) в качестве неорганического сцинтиллятора, обладающего высокой сцинтилляционной эффективностью Cотн при регистрации электронных пучков высокой плотности и практически не чувствительного как сцинтиллятор к ядерным α-, β-, γ- излучениям радионуклидов
    corecore