26 citations found. Retrieving documents...
K. B. Bruce. Typing in object-oriented languages: Achieving expressibility and safety. Technical report, Williams College, 1996.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents

Type Systems for the Object-Oriented Paradigm - Bono (1999)   (1 citation)  (Correct)

....prior experiences with OO languages. Adviced texts about lambda calculi are the ones of Barendregt [Bar91, Bar92] and of Hindley and Seldin [HS86] A good introduction to OO is in Abadi and Cardelli s book [AC96a] An enlighting discussion about type safety for OO languages is in Bruce s paper [Bru97]. A pleasant handbook to approach a real OO language is Arnold and Gosling s book on Java [AG96] Part I Enriching the Lambda Calculus of Objects 11 Chapter 2 Introduction to LCO The Lambda Calculus in Two Lines For the reader who is not well acquainted with functional notation, we give the ....

K.B. Bruce. Typing object-oriented languages: Achieving expressiveness and safety. Technical Report, Williams College, http://www.cs.williams.edu/ kim/, 1997.


Modelling Generalization and Other Class-to-Parent.. - Tratt, Clark, Evans (2002)   (Correct)

.... This exibility comes with a price: in situations where a method argument is of type Self (in Ei el this is the Like Current type) one can create subclasses which are not necessarily subtypes of the superclass (see [CHC90] for the classical argument of this fact, and [Cas95, AC96, Bru96, Tai96] for more gentle introductions to the subject) Thus it is no longer true that our SubclassRel class should have the is subtype relation set to true. Covariant method overriding opens up a whole new can of worms for which the UML can provide no solution whatsoever, and that our simple ....

Kim Bruce. Typing in object-oriented languages: Achieving expressibility and safety. Technical report, Williams College, 1996.


Polylingual Systems: An Approach To Seamless Interoperability - Barrett (1998)   (1 citation)  (Correct)

....component necessarily written in a single language; however, at least two languages are represented. 2.3 Types Type theorists use several different formalisms for describing types, as will be discussed in Section 4.4. In this dissertation, we use the following terminology drawn 15 from Bruce [16] and Abadi and Cardelli [1] A type is a set of attributes (fields) and a set of method specifications (i.e. signatures with return types) 2 The set of public method specifications is sometimes called the interface of the type. A class is a type accompanied by implementations of its methods. ....

....and private, are also not part of the definition of a type in this dissertation, but our toolset (Chapter 9) can take them into account when comparing types. 16 Person p; Type t 0 is a subtype of type t if an instance of type t 0 can be used in any context that expects an instance of type t [16]. Subtyping is represented by the : infix operator. The notation A :B indicates that type A is a subtype of type B. The subsumption rule of subtyping states: if a is of type t 0 , and t 0 :t, then a is also of type t. Types, like components, are represented using programming languages. ....

[Article contains additional citation context not shown here]

Bruce, Kim M. Typing in object-oriented languages: Achieving expressiveness and safety. Technical report, Department of Computer Science, Williams College, Williamstown, MA, Sept. 1996.


Pizza into Java: Translating theory into practice - Odersky, Wadler (1997)   (218 citations)  (Correct)

....the form of subsumption found in Pizza. All that is necessary is to complete each function type, by replacing any formal argument type T which is not a type variable by a new quantified type variable with bound T . A similar technique to model subtyping by matching has been advocated by Bruce [Bru9x] Details of completion are described in the appendix. There is a classic type reconstruction algorithm for implicit polymorphism, due to Hindley and Milner [DM82] and used in languages such as Standard ML and Haskell. Various extensions of this algorithm to bounded polymorphism exist [WB89, ....

Kim Bruce. Typing in object-oriented languages: Achieving expressibility and safety. Computing Surveys. to appear.


Anti-Symmetry of Higher-Order Subtyping - Compagnoni, Goguen (1999)   (2 citations)  (Correct)

....was proved for our calculus in [14] Most of this author s work was carried out at LFCS, University of Edinburgh, JCMB, The King s Buildings, Edinburgh, EH9 3JZ, UK. The subtyping relation has been extensively researched because of its importance in applications to programming languages [1, 6, 21, 28], proof assistants [3, 25, 29] and metatheoretical studies [4, 5, 7, 10, 14 16, 18, 19, 24, 30] to name a few. However, none of these studies has established the anti symmetry of the subtyping relation for a higher order calculus. In some cases it has been conjectured, as in [35] In other ....

K. B. Bruce. Typing in object-oriented languages: Achieving expressiveness and safety. Unpublished, June 1996.


Types - Pierce (1996)   (Correct)

.... perspective and in much more generality) in Henk Barendregt s handbook article on Lambda Calculi with Types [Bar92] ffl The object model sketched in Chapter 7 is developed in detail in papers by David Turner, Martin Hofmann, and myself David Turner [PT94, HP95] ffl Articles by Kim Bruce [Bru94, Bru95], by Fisher and Mitchell [FM94] and by Abadi and Cardelli [AC94b, AC94a] develop related object models. ffl Theoretical Aspects of Object Oriented Programming: Types, Semantics, and Language Design is a collection of papers, many on type systems for object oriented programming. Though it does ....

Kim B. Bruce. Typing in object-oriented languages: Achieving expressibility and safety, 1995. Available through http://www.cs.williams.edu/ kim.


D.Phil. Thesis Proposal - Owen (1999)   (Correct)

....polymorphism may result in covariance 8 of method parameters, which is why GJ has to employ a work around using overloaded methods and run time casts on arguments. Research efforts are investigating alternative ways of expressing binary methods using other language features such as matching[5, 9], type dependency[52, 53] and multiple method dispatch[3, 14, 32, 43] It would be useful to evaluate these ideas in a language design. 4.2 Field overriding Whilst Java allows methods to be overridden in subclasses, the treatment of fields is different 5 . A field may be redefined in a ....

Kim Bruce. Typing in object-oriented language: Achieving expressiveness and safety. Technical report, Williams College, September 1996. ftp: //ftp.cs.williams.edu/pub/kim/Static.ps.gz.


Extension Polymorphism - Balasubramaniam   (Correct)

....this form of evolution, type safe inheritance of binary methods during subclassing is not possible. The concept of matching [Bru95, BCC 95, AC96, Bru96] has been proposed to address this problem. Two languages that have incorporated matching in their type systems are introduced here. 96 PolyTOIL [BSG95, Bru96] was developed by Bruce et al. at Williams College, Massachusetts. The Tycoon object oriented Language (TooL) GM95, GM96] evolved from the language Tycoon developed at Hamburg University. Various features relevant to inheritance, polymorphism and evolution are described for each language in the ....

Bruce, K.B. "Typing in object-oriented languages: Achieving expressiveness and safety". Williams College (1996).


Objective ML: An effective object-oriented extension to ML - Remy, Vouillon (1998)   (10 citations)  (Correct)

....invocation. Instead of using row variables, many other languages use subtyping polymorphism. Since subtyping polymorphism must be explicitly declared in Objective ML (see section 4) row variables are essential here to keep type inference. Row variables also allow to express some kind of matching [7] without F bounded or higherorder quantification [28, 2, 3] Here is an example: let min x y = if x#leq y then x else y; value min : h leq : ff bool; i as ff) ff ff = hfuni The binder as makes it possible to deal with open object types occurring several times in a type (this will ....

....records (which does not scale up to extensible records) in [26] However, his approach, based on the correspondence between types and domains of records cannot be applied to the compilation of objects with code free coercions. Objects have been widely studied in languages with higher order types [9, 23, 7, 2, 28, 6]. These proposals significantly differ from Objective ML. Types are not inferred but explicitly given by the user. Type abbreviations are also the user s responsibility. On the contrary, all these proposals allow for implicit subtyping. Our calculus differs significantly from Abadi s and ....

[Article contains additional citation context not shown here]

Kim B. Bruce. Typing in object-oriented languages: Achieving expressiveness and safety. To appear.


A Natural Semantics for Eiffel Dynamic Binding - Attali, Caromel, Ehmety (1995)   (2 citations)  (Correct)

.... languages (Simula, Eioeel, Modula 3) several approaches have been investigated to give inheritance, subtyping, and method specialization a formal semantics [Canning et al. 1989; Cardelli 1988; Mitchell 1990; Mitchell et al. 1993; Wand 1989] and a sound type inference system [Abadi 1994; Bruce 1994; 1997; Cook et al. 1990] Dioeerent models of encoding typed objects into typed records have been proposed in the framework of polymorphic lambda calculus with records [Hense 1994; Pierce and Turner 1994; Wand 1989] or object calculus [Abadi and Cardelli 1994; Abadi et al. 1996] Since we exclusively ....

Bruce, K. B. 1997. Typing in object-oriented languages: Achieving expressibility and safety. ACM Comput. Surv.. To be published.


Typed Operational Semantics for Higher Order Subtyping - Compagnoni, Goguen (1997)   (11 citations)  (Correct)

....9] The feature we study in this paper is bounded abstraction on types, also called bounded operator abstraction. Cardelli and Harper are in favor of including this in ML2000 (private communication) the successor of Standard ML. The constructor is amply motivated by many examples due to Kim Bruce [6], including 1 1 INTRODUCTION 2 the following, which shows how bounded abstraction on types can be used to define the type of binary search trees with comparable elements: Comparable = X : eq : X X Bool; lt : X X Bool; gt : X X Bool] BinTree = X : Y (Comparable X) find : ....

....and subtyping. These follow straightforwardly from the termination of the subtyping algorithm. The details of such a proof should be a simple modification of the proof of decidability of subtyping for F by Compagnoni [17] 8 RELATED AND FUTURE WORK 39 8 Related and Future Work Bruce [6] uses bounded operator abstraction, but does not develop the metatheory. Compagnoni [17] mentions the open problem of studying the metatheory for bounded operator abstraction. Most type systems with subtyping do not have the circularity between type formation and subtyping mentioned in the ....

K. B. Bruce. Typing in object-oriented languages: Achieving expressiveness and safety. Unpublished, June 1996.


Typed Intermediate Representations for Compiling.. - Vanderwaart (1999)   (3 citations)  (Correct)

....It is possible to write a simple program using MyType and this kind of subsumption rule in which a message ends up being sent to an object lacking the corresponding method, resulting in a run time error. For more information on these type safety issues we refer the reader to [BFP97] and [Bru97] for the purposes of this chapter it suffices to say that LOOM abandons the convenience of CHAPTER 2. FEATURES OF LOOM 19 subsumption in favor of the expressiveness of MyType. 2.5 More Advanced Features The LOOM language incorporates several advanced features to allow greater flexibility in ....

Kim B. Bruce. Typing in object-oriented languages: Achieving expressiveness and safety. Technical report, Williams College, 1997.


Rupiah: An extension to Java supporting match-bounded parametric .. - Burstein (1998)   (4 citations)  (Correct)

....Type Systems In this chapter we present a brief and informal overview of type systems for object oriented languages, focusing on the qualities that programmers desire of such systems, and the problems that those desires can cause. A more detailed exploration of these issues can be found in [Bru97c] We assume the reader is already familiar with the basic concepts of object oriented programming and the features that object oriented languages provide to support those concepts, such as encapsulation and inheritance. This chapter is concerned mainly with current problems in object oriented ....

Kim B. Bruce. Typing in object-oriented languages: Achieving expressiveness and safety. Technical report, Williams College, 1997.


Anti-Symmetry of Higher-Order Subtyping - Compagnoni, Goguen (1999)   (2 citations)  (Correct)

....of type checking ensures that this will always be possible, and decidability of subtyping is a crucial step to proving this. This result was proved for our calculus in [14] The subtyping relation has been extensively researched because of its importance in applications to programming languages [27, 1, 6, 21], proof assistants [28, 3, 24] and metatheoretical studies [18, 4, 7, 10, 5, 19, 16, 23, 29, 15, 14] to name a few. However, none of these studies has established the anti symmetry of the subtyping relation for a higher order calculus. In some cases it has been conjectured, as in [34] In other ....

K. B. Bruce. Typing in object-oriented languages: Achieving expressiveness and safety. Unpublished, June 1996.


From Classes to Objects via Subtyping - Rémy (1998)   (14 citations)  (Correct)

....only as a meta notation for simplifying the presentation. It would be interesting to really allow row variables in types. This would probably augment the expressiveness of the language, since it should provide some form of matching that revealed quite useful, especially for binary methods [11, 9, 27]. Actually, it remains to investigate how the presented calculus could be extended to cope with binary methods. Row variables might not be sufficient to express matching, and some new form of matching might have to be found. It is unclear whether the known solutions [10] could be adapted to our ....

Kim B. Bruce. Typing in object-oriented languages: Achieving expressibility and safety. Revised version to appear in Computing Surveys, November 1995.


A Formal Approach to Relationships in the Unified Modeling.. - Overgaard (1998)   (7 citations)  (Correct)

.... in a more restricted form, i.e. the parameter types may be generalized and the return types may be specialized ffl the subclass must provide at least the same set of opposite AssociationEnds and Attributes as the superclass; note that they must not be restricted in the subclass (see e.g. Bru96] for a thorough discussion of this subject) ffl the elements in the namespace of the superclass must also be visible in the namespace of the subclass An Object contains sets of features corresponding to the features declared in its Class and in its superclasses. A straight forward way of ....

K. B. Bruce. Typing in object-oriented languages: Achieving expressiveness and safety. Technical report, Department of Computer Science, Williams College, MA, USA, 1996.


A Controlled Experiment to Assess the Benefits of Procedure.. - Prechelt, Tichy (1998)   (2 citations)  (Correct)

....benefits of type checking are virtually undisputed. In fact, modern programming languages have evolved elaborate type systems and checking rules. In some languages, such as C, the type checking rules were even strengthened in later versions. Furthermore, type theory is an active area of research [3]. However, it seems that the benefits of type checking are largely taken for granted or are based on personal anecdotes. For instance, Wirth states [21] that the type checking facilities of Oberon had been most helpful in evolving the Oberon system. Many programmers can recall instances when type ....

.... buttons = XmCreateRowColumnManagerOCP ( buttons , manager, XmHORIZONTAL, 1, False) FU 3 mw[0] XmCreateTextFieldWidgetW ( aw , square, 100, a ) FU 4 mw[1] XmCreateTextFieldWidgetW ( bw , square, 100, b ) FU 5 mw[2] XmCreateTextFieldWidgetW ( cw , square, 100, c ) FU 6 mw[3] = XmCreateTextFieldWidgetW ( dw , square, 100, d ) FU 7 invert = XmCreatePushButtonL ( invert , buttons, FU 8 XmStringCreateLocalized ( Invert matrix ) quit = XmCreatePushButtonL ( quit , buttons, FU 9 XmStringCreateLocalized ( Quit ) 3. register callback functions ....

[Article contains additional citation context not shown here]

Kim Bruce. Typing in object-oriented languages: Achieving expressibility and safety. ACM Computing Surveys?, .(.):., 1998? to appear, see http://www.cs.williams.edu/~kim/.


On the (un)reality of Virtual Types - Rémy, Vouillon (1998)   (Correct)

....construct so as to avoid the systematic need for the second group definition. Once grouping has been eliminated, this second step becomes easier and should usually be a simple type application. Extending match bounded quantification with recursively defined bounds Match bounded quantification [Bru95] can solve binary methods as easily as row variables do. However, it suffers from the same problem as bounded quantification in its inability to grab the interior of a record type. In the subject observer example bounds would also need to be recursively defined. This difficulty has motivated an ....

Kim B. Bruce. Typing in object-oriented languages: Achieving expressibility and safety. Revised version to appear in Computing Surveys, November 1995.


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

....a non virtual method of the superclass. This use of inheritance, however, is usually considered stylistically bad programming [CL95b] If inheritance does not define a subtype relationship, it can be made more flexible for code reuse purposes in two ways. By introducing the notion of selftype [Bru96] it is possible to override methods covariantly. Furthermore, private inheritance can be used more frequently for code reuse. 29 The type selftype refers to the receiver s class type. If a declaration involving selftype is inherited, selftype is rebound to refer to the subclass. For example, ....

....an interface instead of a class type. 30 When type checking a class C in the presence of selftype, it is not sound to treat selftype as a synonym for C. Instead, the type checker has to use the weaker assumption that selftype matches C, i.e. that selftype could be any subclass of C. Matching [Bru96, AC95] is a formalization of the notion of protocol extension in the presence of subtyping and is the proper mechanism for type checking inheritance and template arguments in the presence of selftype. Match bounded existential quantification could also be used as a substitute for subtyping ....

[Article contains additional citation context not shown here]

Kim B. Bruce. Typing in object-oriented languages: Achieving expressibility and safety. ACM Computing Surveys, 1996. To appear.


Typed Operational Semantics for Higher Order Subtyping - Compagnoni, Goguen (1997)   (11 citations)  (Correct)

....The feature we study in this paper is bounded abstraction on types, also called bounded operator abstraction. Cardelli and Harper are in favor of including this in ML2000 (private communication) the successor of Standard ML. The constructor is amply motivated by many examples due to Kim Bruce [7], including the following, which shows how bounded abstraction on types can be used to define the type of binary search trees with comparable elements: Comparable = X : eq : X X Bool; lt : X X Bool; gt : X X Bool] BinTree = X : Y (Comparable X) find : Y Bool; insert : Y ....

....[33] but clearly the integration of objects into ML is a large project that will require considerable research. Our study does introduce some ideas that could be relevant to studying object oriented programming languages that include bounded operator abstraction, such as ML2000 or PolyTOIL [7]. The focus of this paper is on the metatheoretic treatment of subtyping. We see the contributions of the paper as the following: ffl We give a logical relation style interpretation of subtyping, which allows us to study properties of kinding and subtyping simultaneously. ffl We use this logical ....

[Article contains additional citation context not shown here]

K. B. Bruce. Typing in object-oriented languages: Achieving expressiveness and safety. Unpublished, June 1996.


Operational Semantics and Type System for GNOME on Typed.. - Ravara, Vasconcelos (1996)   (Correct)

.... the calculus [HT91] and the actor model of computation [Agh86, HBS73] Processes are implicitly typed: no type information is present, but it can be inferred by a type system, similar to those of the calculus [Bar92, HS86] those of sequential object oriented programming (as, for example, in [Pie93, Bru95]) or of the calculus [Mil91] The system assigns types to names and sets of name type pairs (called typings) to processes, ensuring a type discipline on the use of channels, unlike the type systems that assign types to terms. Programs (processes) are statically typed. This type system [Vas94b, ....

K. Bruce. Typing in object-oriented languages: Achieving expressibility and safety. Research report, Williams College, U.S.A., 1995.


Decidability of Higher-Order Subtyping via Logical Relations - Compagnoni, Goguen (1997)   (Correct)

....The feature we study in this paper is bounded abstraction on types, also called bounded operator abstraction. Cardelli and Harper are in favor of including this in ML2000 (private communication) the successor of Standard ML. The constructor is amply motivated by examples due to Kim Bruce [4], including the following, which shows how bounded abstraction on types can be used to define the type of binary search trees with comparable elements: Comparable Int = eq : Int Int Bool; lt : Int Int Bool; gt : Int Int Bool ] BinTree = Y Comparable Int : find : Y Bool; ....

K. B. Bruce. Typing in object-oriented languages: Achieving expressiveness and safety. Unpublished, June 1996.


Increasing Java's expressiveness with ThisType and match-bounded.. - Bruce (1997)   (10 citations)  Self-citation (Bruce)   (Correct)

....it) to reinterpret extends as matching rather than subtyping , and to add a form of constrained polymorphism which depends on matching. A more detailed discussion of these constructs and the motivations behind introducing them in typed object oriented languages can be found in the paper [Bru97] A complete language design including these features can be found in [BFP97] 1 Introducing constrained parametric polymorphism There are many circumstances in which type 2 parameters are useful. For example, when one defines an array, stack, queue, or tree, the definitions are written ....

Kim Bruce. Typing in object-oriented languages: Achieving expressiveness and safety. Technical report, Williams College, 1997.


A Comparative Study of Language Support for Generic.. - Garcia, Järvi.. (2003)   (3 citations)  (Correct)

No context found.

K. B. Bruce. Typing in object-oriented languages: Achieving expressibility and safety. Technical report, Williams College, 1996.


Objective ML: A simple object-oriented extension of ML - Remy, Vouillon (1997)   (21 citations)  (Correct)

No context found.

Kim B. Bruce. Typing in object-oriented languages: Achieving expressibility and safety. Revised version to appear in Computing Surveys, November 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