6 research outputs found

    Generic ownership for generic Java

    No full text
    Ownership types enforce encapsulation in object-oriented programs by ensuring that objects cannot be leaked beyond object(s) that own them. Existing ownership programming languages either do not support parametric polymorphism (type genericity) or attempt to add it on top of ownership restrictions. Generic Ownership provides perobject ownership on top of a sound generic imperative language. The resulting system not only provides ownership guarantees comparable to established systems, but also requires few additional language mechanisms due to full reuse of parametric polymorphism. We formalise the core of Generic Ownership, highlighting that only restriction ofthis calls and owner subtype preservation are required to achieve deep ownership. Finally we describe how Ownership Generic Java (OGJ) was implemented as a minimal extension to Generic Java in the hope of bringing ownership types into mainstream programming

    Scale-free geometry in OO programs

    No full text
    The graphs formed by the OO programs written in a variety of languages, which show that they turn out to be scale-free networks, are described. This geometry of real programs may help to optimize language runtime systems, improve the design of future of OO languages, and reexamine modern approaches to software design. The way to detect a scale-free phenomenon is to see if it shows up statistically in the form of a power law. The primary aim of OO analysis is to model the real world in terms of communicating objects. It is found that distributions of incoming and outgoing references in object graphs follow a power law

    Scale-free geometry in OO programs

    No full text
    corecore