26 citations found. Retrieving documents...
Gerald Baumgartner and Vincent F. Russo. Signatures: A language extension for improving type abstraction and subtype polymorphism in C++. Software--Practice and Experience, 25(8):863--889, August 1995.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents

Caramel: A Concept Representation System for Generic.. - Willcock, Siek, Lumsdaine   (1 citation)  (Correct)

....a type must support. Unlike an interface, however, a user type does not need to explicitly state which signatures are supported by a type. The compiler checks that the user type supports the correct methods when the type is passed to a function. Signatures are supported in the GNU C compiler g [5] and in the Theta [9] programming language. In the functional programming community, the Haskell [15] and Standard ML [23] languages use signatures to constrain generic type parameters. In addition to the use of interfaces mentioned above, the UML also supports types, which are equivalent to ....

G. Baumgartner and V. F. Russo. Signatures: A language extension for improving type abstraction and subtype polymorphism in C++. Software--Practice and Experience, 25(8):863--889, August 1995.


Is the Java Type System Sound? - Drossopoulou, Eisenbach (1997)   (2 citations)  (Correct)

....and simple language. Nevertheless, we feel that the introduction of some new features in Java, as well as the specific combination of features, justifies a study of the Java formal semantics. The use of interfaces, reminiscent of [10, 6] is a simplification of the signatures extension for C [4] and is to the best of our knowledge novel. The mechanism for dynamic method binding is that of C , but we know of no formal definition. Java adopts the Smalltalk approach whereby all object variables are implicitly pointers. Furthermore, although there are a large number of studies of the ....

Gerald Baumgartner and Vincent F. Russo. Signatures: A language extension for improving type abstraction and subtype polymorphism in C++. Software--Practice & Experience, 25(8):863--889, August 1995.


Concept Checking: Binding Parametric Polymorphism in C++ - Siek, Lumsdaine (2000)   (9 citations)  (Correct)

....6 Alternative Approaches Concept checking tests whether certain expressions are valid and compile successfully. An alternative approach is to declare the signature that must be provided by the input. Such an approach is is used in Generic Java [3] Theta [5] and the Signatures extension to C [2]. Within the signature based methods there are two approaches: the subtype approach and the where clause approach. The subtype approach uses the equivalent of an abstract base class (or Java interface) to group the required method signatures. Base classes are used to place requirements on the ....

G. Baumgartner and V. F. Russo. Signatures: A language extension for improving type abstraction and subtype polymorphism in C++. Software--Practice and Experience, 25(8):863--889, August 1995.


Static Interfaces in C++ - McNamara, Smaragdakis   (Correct)

....selective implementation dispatch, only without structural conformance checks. Alexandrescu also presents an inheritance detector in [Ale00b] Our framework employs this detector as a general purpose named conformance detection engine, which is at the heart of our system. Baumgartner and Russo [BR95] implement a signature system for C , which is supported as an option in the g compiler. Unlike our work, the emphasis of this system is on structural subtyping, so that classes can conform to a signature without explicitly declaring conformance. In practice, the system is only usable in the ....

Baumgartner, G. and Russo, V. "Signatures: A language extension for improving type abstraction and subtype polymorphism in C++." Software Practice & Experience, 25(8), pp. 863-889, Aug. 1995.


The Type System of Aldor - Poll, Thompson (1999)   (Correct)

....and expressive type system in order to render the types appearing in a computer implementation of basic mathematics. This requirement represents a substantial challenge, and it is interesting for instance to observe that the motivating example for an extension of the C type system described in [BR95] comes from computer algebra. Among other things, the type system of Aldor includes so called dependent types, types as values, a rich system for abstract datatypes provided by so called domains and categories and overloading. These and other features of the Aldor type system are discussed in ....

Gerald Baumgartner and Vincent F. Russo. Signatures: A language extension for improving type abstraction and subtype polymorphism in C++. Software{ Practice & Experience, 25(8):863-889, 1995.


Java is Type Safe - Probably - Drossopoulou, Eisenbach (1996)   (51 citations)  (Correct)

....a small and simple language. Nevertheless, we feel that the introduction of some new features in Java, as well as the specific combination of features, justifies a study of the Java formal semantics. The use of interfaces, reminiscentof[9, 5] is a simplification of the signatures extension for C [3] and is to the best of our knowledge novel. The mechanism for dynamic method binding is that of C , but we knowof no formal definition. Java adopts the Smalltalk approach whereby all object variables are implicitly pointers. Furthermore, although there are a large number of studies of the ....

....are passed as references, and they are dereferenced only implicitly, when their fields are accessed. Array access as described here adheres to the rules in ch. 15.12 of [13] which require full evaluation of the expression to the left of the brackets. Thus, with our operational semantics, a[ a = b)[3]] corresponds to a[b[3] # a = b. In figure 19 we describe the creation of new objects or arrays, cf. ch. 15.8 15.9 of [13] Essentially,anewvalue of the appropriate array or class type is created, and its address is returned. The fields of the array, and the components the object are assigned ....

[Article contains additional citation context not shown here]

Gerald Baumgartner and Vincent F. Russo. Signatures: A language extension for improving type abstraction and subtype polymorphism in C++. Software--Practice & Experience, 25(8):863--889, August 1995.


Collection Types and Implementations in.. - Menger, Keedy.. (1998)   (1 citation)  (Correct)

....the concept of abstract data types is fundamental for the design of software which is easy to use, to reuse and to maintain. And for at least a decade it has been discussed how the power of objectoriented concepts in general can be increased by separating abstract behavior and implementation, e.g. [4, 5, 19, 26]. This is of particular relevance for the design of collection libraries. The design of collection libraries intended to be useful over a long period and to cover the needs of everyday programming activity requires a lot of effort in order to achieve the degree of universal usability and ....

....a single inheritance mechanism the design of programs and program libraries will inevitably reflect the particular benefits which the designer expects to gain from using inheritance. Not surprisingly increasing attention has been paid in recent years to the separation of subtyping and code reuse [2, 4, 10, 17, 21, 25]. This is the hierarchical analog of separating types and implementations. Inheritance for code reuse is a technique which primarily benefits the implementor, but inheritance as a subtyping technique primarily benefits the user. It is not surprising that these aims, when attempted in a single ....

[Article contains additional citation context not shown here]

G. Baumgartner and V. F. Russo "Signatures: A Language Extension for Improving Type Abstraction and Subtype Polymorphism in C++", Software - Practice and Experience, 25, 8, pp. 863-889, 1995.


Sous-Typage Et Programmation Orientée à Objets - Castagna   (Correct)

....same type. This is obtained thanks to the use of the (recursive) record type of methods. Thus we can add to our language these record types and use them to type the objects. This addition has already been implemented in C and it is included in the GNU C compiler versions GCC 2.6. 0 and higher [BR95] There these types describing the functionality of methods are called signatures . Similar to them are the interfaces of Java [GJS96] Using the syntax of Java we can imagine to extend O 2 by commands such as: interface Point = fnorm: real, declare the type Point erase: Point ....

G. Baumgartner and V. Russo. Signatures: a language extension for improving type abstraction and subtype polymorphism in C++. Software practice and experience, 25(8):863--889, 1995.


How Well do Inheritance Mechanisms Support Inheritance .. - Evered, Keedy.. (1997)   (2 citations)  (Correct)

....Concepts Another method of improving support for inheritance concepts is to supply more than one mechanism for the different kinds of inheritance. In particular, the separation of type hierarchies and implementation hierarchies has received increasing attention in recent years [CHC90] Por92] [BR95]. This follows from the requirement that code reuse be independent of type relationships. It also follows from separating data abstraction from inheritance and replacing the class concept by the concept of an abstract type with several possible implementations. The language Java [Sun95] allows ....

Baumgartner, G. & Russo, V.F. (1995) "Signatures: A Language Extension for Improving Type Abstraction and Subtype Polymorphism in C++", Software - Practice and Experience, 25(8), pp. 863-889.


Automatic Interprocedural Optimization for Object-Oriented.. - Plevyak, Chien (1996)   (2 citations)  (Correct)

....requiring a generic function to manipulate it indirectly. Second, the compiler can no longer inline member functions since they may differ between the different actual classes. 1 The type system may impose restrictions, requiring a common base class (declared type) template or signature [4]. We present an automatic interprocedural compilation framework based on interprocedural analysis and transformation which breaks through encapsulation and automatically builds specialized versions of polymorphic abstractions. Thus we can produce implementation of object oriented programs using ....

Gerald Baumgarter and Vince F. Russo. Signatures: A language extension for improving type abstraction and subtype polymorphism in C++. Software -- Practice and Experience, 25(8):863--889, August 1995.


Sous-Typage Et Programmation Orientée à Objets - Castagna (1997)   (Correct)

....same type. This is obtained thanks to the use of the (recursive) record type of methods. Thus we can add to our language these record types and use them to type the objects. This addition has already be implemented in C and it is included in the GNU C compiler versions GCC 2.6. 0 and higher [BR95] There these types describing the functionality of methods are called signatures. Similar to them are the interfaces of Java [GJS96] Using the syntax of Java we can imagine to extend O 2 by commands such as: interface Point = fnorm: real, declare the type Point erase: Point ....

G. Baumgartner and V. Russo. Signatures: a language extension for improving type abstraction and subtype polymorphism in C++. Software practice and experience, 25(8):863--889, 1995.


Towards an Operational Semantics and Proof of Type.. - Drossopoulou, Eisenbach (1998)   (4 citations)  (Correct)

....object oriented languages. Nevertheless, we feel that the introduction of some new features in Java, as well as the specific combination of features, justifies a study of the Java formal semantics. The use of interfaces, reminiscent of [9, 6] is a simplification of the signatures extension for C [4] and is to the best of our knowledge novel. The mechanism for dynamic method binding is that of C , but we know of no formal definition. Java adopts the Smalltalk [14] approach whereby all object variables are implicitly pointers. Furthermore, although there are a large number of studies of ....

Gerald Baumgartner and Vincent F. Russo. Signatures: A language extension for improving type abstraction and subtype polymorphism in C++. Software--Practice & Experience, 25(8):863--889, August 1995.


Half & Half: Multiple Dispatch and Retroactive.. - Baumgartner, Jansche, .. (2002)   Self-citation (Baumgartner)   (Correct)

No context found.

Gerald Baumgartner and Vincent F. Russo. Signatures: A language extension for improving type abstraction and subtype polymorphism in C++ . Software---Practice & Experience, 25(8):863--889, August 1995.


Modularization Constructs For Functional And Object-Oriented.. - Baumgartner (1996)   Self-citation (Baumgartner)   (Correct)

....classes are already part of another application, altering their inheritance relationships could break that application. Again, we are forced to derive new classes through multiple inheritance or to use forwarding classes. 3.1.1. 2 Computer Algebra A concrete example from computer algebra [BS90, BR95] demonstrates the need for designing the interface type hierarchy separate from the implementation hierarchy. Consider the abstract type GeneralMatrix with subtypes NegativeDefiniteMatrix and OrthogonalMatrix. Both subtypes have methods that are not present in general matrices, e.g. the method ....

....type and an implementation. However, only the type information is inherited. Trellis Owl does not provide classless objects, closures, class objects, or multimethods. Subtyping is defined by interface inheritance. 70 5. EXTENDING C WITH INTERFACES In this chapter, we present our C extension [BR95, BR96] as a case study on extending a statically typed object oriented language with interfaces to improve type abstraction and to decouple subtyping from inheritance. For historical reasons, the interface construct in this C extension is termed a signature [BR94, GR91] The remainder of this ....

[Article contains additional citation context not shown here]

Gerald Baumgartner and Vincent F. Russo. Signatures: A language extension for improving type abstraction and subtype polymorphism in C++. Software---Practice & Experience, 25(8):863--889, August 1995.


Safe Structural Conformance for Java - Läufer, Baumgartner, Russo (1998)   (1 citation)  Self-citation (Baumgartner Russo)   (Correct)

....still limited by the requirement that classes must be declared to conform to their interfaces. A class declared to conform to an interface must provide implementations for each method in the interface or leave the method abstract. We identify interfaces in Java with signatures, an extension of C (Baumgartner and Russo, 1995), and propose allowing a class to conform structurally to an interface without explicitly associating the class with the interface. The remainder of this paper is structured as follows. First, we describe the relevant aspects of the Java type system. Next, we present our extension of Java with ....

.... languages, most notably C (Ellis and Stroustrup, 1990) a single construct, namely the class, is used to define and implement new types and to provide type abstraction, code reuse, and subtyping (conformance) This overuse of a single construct limits the expressiveness of the type system (Baumgartner and Russo, 1995). By contrast, Java (Gosling et al. 1996) offers two separate constructs, the class and the interface. Every class has exactly one immediate superclass and zero or more immediate interfaces. The root class Object does not have an immediate superclass (represented by a null superclass) the same ....

[Article contains additional citation context not shown here]

Baumgartner, G. and Russo, V. F. (1995). Signatures: A language extension for improving type abstraction and subtype polymorphism in C++. Software---Practice & Experience, 25(8):863--889.


Implementing Signatures for C++ - Baumgartner, Russo (1995)   (2 citations)  Self-citation (Baumgartner Russo)   (Correct)

....for future programming language design. Since the primary intent of this paper is to detail these implementation techniques, the motivation and language specification are of necessity brief. The reader interested in a more detailed motivation and complete syntax and semantics is referred to [2]. 2 Motivation Using inheritance as a subtyping mechanism suffers from three specific problems: Submitted to ACM Transactions on Programming Languages and Systems. 1. Using the same construct (class inheritance) for type abstraction and code sharing limits the power of both and ....

....C type system. 2.1 Separation of Type and Class Hierarchies A problem with a single class hierarchy defining both abstract types and their implementations is that as the type hierarchy becomes more complex, it might become necessary to duplicate code. We use an example from computer algebra [3, 2] to demonstrate this problem. Consider the abstract type GeneralMatrix with subtypes NegativeDefiniteMatrix and OrthogonalMatrix. Both subtypes have functions that are not present in general matrices, e.g. the function inverse( Assume we have several different implementations of these abstract ....

[Article contains additional citation context not shown here]

Gerald Baumgartner and Vincent F. Russo. Signatures: A language extension for improving type abstraction and subtype polymorphism in C++. Software Practice & Experience, 25(8):863--889, Aug. 1995.


Concepts: Linguistic Support for Generic Programming in C++ - Douglas Gregor Dgregor   (Correct)

No context found.

Gerald Baumgartner and Vincent F. Russo. Signatures: A language extension for improving type abstraction and subtype polymorphism in C++. Software--Practice and Experience, 25(8):863--889, August 1995.


Concept Checking: Binding Parametric Polymorphism in C++ - Siek, Lumsdaine (2000)   (9 citations)  (Correct)

No context found.

G. Baumgartner and V. F. Russo. Signatures: A language extension for improving type abstraction and subtype polymorphism in C++. Software--Practice and Experience, 25(8):863--889, August 1995.


Towards an Operational Semantics and Proof of Type.. - Drossopoulou, Eisenbach (1998)   (4 citations)  (Correct)

No context found.

Gerald Baumgartner and Vincent F. Russo. Signatures: A language extension for improving type abstraction and subtype polymorphism in C++. Software--Practice & Experience, 25(8):863--889, August 1995.


Java is Type Safe - Probably - Drossopoulou, Eisenbach (1997)   (51 citations)  (Correct)

No context found.

Gerald Baumgartner and Vincent F. Russo. Signatures: A language extension for improving type abstraction and subtype polymorphism in C++. Software--Practice & Experience, 25(8):863--889, August 1995.


Static Interfaces in C++ - McNamara, Smaragdakis   (Correct)

No context found.

Baumgartner, G. and Russo, V. "Signatures: A language extension for improving type abstraction and subtype polymorphism in C++." Software Practice & Experience, 25(8), pp. 863-889, Aug. 1995.


The Type System of Aldor - Poll, Thompson (1999)   (Correct)

No context found.

Gerald Baumgartner and Vincent F. Russo. Signatures: A language extension for improving type abstraction and subtype polymorphism in C++. Software{ Practice & Experience, 25(8):863-889, 1995.


The Type System of Aldor - Erik Poll And (1999)   (Correct)

No context found.

Gerald Baumgartner and Vincent F. Russo. Signatures: A language extension for improving type abstraction and subtype polymorphism in C++. Software{Practice & Experience, 25(8):863-889, 1995.


Software Reuse in an Object Oriented Framework: - Distinguishing Types From   (Correct)

No context found.

G. Baumgartner and V. F. Russo "Signatures: A Language Extension for Improving Type Abstraction and Subtype Polymorphism in C++", Software - Practice and Experience, 25, 8, pp. 863-889, 1995.


An Object-Oriented Approach to C++ Compiler Technology - Sminchisescu, Telea   (Correct)

No context found.

G. Baumgartner, V. Russo, Signatures: A Language Extension For Improving Type Abstraction and Subtype Polimorphism in C++, Technical Report, Purdue University, 1995

First 50 documents

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC