This paper presents a debugging method for Concurrent object-oriented Systems. Our method is based upon a new notion called object Groups. An object Group is a collection of objects which forms a natural unit for perf...
详细信息
Typed object calculi that permit adding new methods to existing objects must address the problem of name clashes: what happens if a new method is added to an object already having one with the same name but a differen...
详细信息
Typed object calculi that permit adding new methods to existing objects must address the problem of name clashes: what happens if a new method is added to an object already having one with the same name but a different type? Most systems statically forbid such clashes by restricting the allowable subtypings. In contrast, by reconsidering the runtime meaning of object extension, the object calculus studied in the author's previous work with Jon Riecke allowed any object to be soundly extended with any method of any name, with unrestricted width subtyping. That language permitted a simple encoding of classes as object-generators. Because of width subtyping, subclasses could be typechecked and compiled with little knowledge of the class hierarchy and without any information about superclasses' private components;this made derived classes more robust to changes in the implementations of base classes. However, the system was not well suited for encoding mixins or by-name subtyping of objects. This article addresses those deficiencies by presenting the Calculus of objects and Indices (COI), a lower-level typed object calculus in which extensible objects are more analogous to tuples than to records. An object is simply a finite sequence of unnamed components referenced by their index in the sequence. Names are then reintroduced by allowing these indices to be first-class values (analogous to pointers to members in C++) that can be bound to variables. Since variables-unlike record labels-freely alpha-vary, difficulties caused by statically undetectable name clashes disappear. By combining COI objects with standard type-theoretic mechanisms, one can encode mixins and classes having the by-name subtyping of languages like C++ or Java but with the robustness of the object-generator encodings. Using records, more standard extensible objects with named components can also be encoded.
The research reported in this paper is part of an ongoing effort to explore potential benefits of using new software technologies for various classes of system simulation. Queueing network scenarios have been chosen a...
详细信息
Exception handling continues to be a challenging problem in objectoriented system development. One reason for this is that today’s software systems are getting increasingly more complex. Moreover, exception handling...
详细信息
We define TRIO+, an objectoriented logic language for modular system specification. TRIO+ is based on TRIO, a first order modal language that is well suited to the specification of embedded and real-time systems, and...
详细信息
Customizable meta-objects are a powerful abstraction for extending language features and implementation mechanisms, but interpretive execution suffers from severe performance penalty. Some of this penalty can be reduc...
详细信息
C vulnerabilities usually hold verbatim for C++ programs. The counterfeit-object-orientedprogramming attack demonstrated that this relation is asymmetric, i.e., it only applies to C++. The problem pinpointed by this ...
详细信息
This article concerns generic tools for the construction of user interfaces: Application Frameworks and User Interface Management Systems (UIMS’s). In this article, we propose a new taxonomy for these tools, identify...
详细信息
The Broker pattern[5] had its golden era as an architectural pattern for distributed object-orientedprogramming in the late 1990'ies and early 2000's and was supported by a large set of frameworks: CORBA, Jav...
详细信息
ISBN:
(纸本)9781450399562
The Broker pattern[5] had its golden era as an architectural pattern for distributed object-orientedprogramming in the late 1990'ies and early 2000's and was supported by a large set of frameworks: CORBA, Java RMI, .Net remoting, gRPC, SOAP and others. However, the tooling tended to be heavy-weight and cumbersome, security issues were hard to handle, and the growth of the more lightweight REST architectural style [13, 23] caused Broker based architectures to become much less used. In this tool paper we will argue why the Broker pattern offers a number of advantages over REST in a teaching context, argue that Broker can achieve similar architectural qualities as REST, show case an open source Broker library, and report from successful teaching experiences.
暂无评论