| R. M. Amadio and L. Cardelli. Subtyping recursive types. ACM TOPLAS, 15(4):575--631, 1993. |
....it is their least upper bound. Recursive types are used for typing migrating recursive processes. A type # generated from the grammar in Table 2 is such that any recursive type ##:# # occurring in # does not contain # on the left of ##. This is a simpli#cation of the notion of positive type of [5]. The fact that we only deal with a restricted form of types will be essential in the de#nition of subtyping. A consequence of our requirement that each process variable=identi#er in process de#nitions be guarded (i.e. occurs within the scope of a blocking in=read pre#x) is the fact that we only ....
....(ax#) ax#) and (eq) have priority over the other rules. The proof of decidability, that explicitly de#nes the algorithm, can be found in Section 8. Theorem 3.8. The subtyping relation 4 is decidable. A more general discussion about equality and subtyping of recursive types can be found in [5]. Moreover, an e#cient algorithm for deciding subtyping in the presence of recursive types has been proposed in [27] In our context, decidability of subtyping involves both union types and recursive types. However, in any type, and then in its canonical forms, recursive types can only occur in ....
R. Amadio, L. Cardelli, Subtyping recursive types, ACM Trans. Programm. Languages Systems 15(4) (1993) 575-- 631.
....objects, the typically interreferential nature of their types (as defined by interface and class definitions) can lead to an infinite sequence of definition look ups. These become serious issues when it comes to subtyping, and a terminating algorithm requires a careful approach. In the style of [AC91], we introduce a notion of type tree and using an algorithm based on [PS93] we can deal with types not involving definitions. We deal with the issue of definitions by defining a function, similar to one in [AC91] which can remove the dependency of types on definitions. Our subtype algorithm is ....
....subtyping, and a terminating algorithm requires a careful approach. In the style of [AC91] we introduce a notion of type tree and using an algorithm based on [PS93] we can deal with types not involving definitions. We deal with the issue of definitions by defining a function, similar to one in [AC91], which can remove the dependency of types on definitions. Our subtype algorithm is shown to be terminating and both complete and sound relative to a tree semantics. As regards Oompa, the important result is that an Oompa expression which passes our type safety system never commits a type ....
[Article contains additional citation context not shown here]
Roberto M. Amadio and Luca Cardelli. Subtyping recursive types. In ACM-SIGPLAN ACM-SIGACT, editor, Conference Record of the 18th Annual ACM Symposium on Principles of Programming Languages (POPL '91), pages 104--118, Orlando, FL, USA, January 1991. ACM Press.
....x(y:T ) is well sorted if S x T , where x: S x ) and I is either b or r. The subsort relation is formalized in Section 2 using a notion of simulation of regular trees and treated using techniques similar to those developed by Amadio and Cardelli for calculi with subtyping and recursive types [AC91]. Section 3 proves the soundness of the resulting type system. The greater precision of our type discipline yields stronger versions of some standard theorems about the calculus. For example, in Sections 4 and 5 we obtain the validity of fi reduction for the more efficient of Milner s encodings ....
Roberto M. Amadio and Luca Cardelli. Subtyping recursive types. In Proceedings of the Eighteenth ACM Symposium on Principles of Programming Languages, pages 104--118, Orlando, FL, January 1991. Also available as DEC Systems Research Center Research Report number 62, August 1990. To appear in TOPLAS.
.... studied by Mitchell [51, 53] and subsequently many others, including Fuh and Mishra [28, 29] Struc tural recursive subtyping arises as a natural generalization and has been studied by, among others, Tiuryn and Wand [72] Non structural recursive subtyping was introduced by Amadio and Cardelli [5, 6], and its finite version corresponds to Thatte s partial types [69, 70] type inference with non structural subtyping has been investigated in a series of papers authored (in various combinations) by Kozen, O Keefe, Palsberg, Schwartzbach and Wand [45, 44, 57, 56, 58] 2.3 Basic concepts and ....
....morphic qualified type schemes of the form VG.F r C. This notion of subsumption is closely related to the second order polymorphic subsumption relation introduced by Mitchell [52] Trifonov and Smith considered sub sumption in the model of infinite trees equipped with the Amadio Cardelli order [5]. However, the relation makes sense for other models as well, and we consider here a version appropriate for the present setting of simple subtypes over a partial order of ground types. A combination of a simple type and a constraint set C, written C, will be called a qualified type. The set ....
R. Amadio and L. Cardelli. Subtyping recursive types. In Proc. 18th Annual A CM Symposium on Principles of Programming Languages (POPL), Orlando, Florida, pages 104-118. ACM Press, January 1991.
....shared variables (i.e. passing environments as com types) will also be useful in this setting. More Type Constructors. We believe that it will be relatively straightforward to extend our set of types with many of the standard constructs from the literature; these include recursive types [4, 46, 37], record types [14, 45] polymorphic types [7, 38] and dynamic types [2, 40] A particularly useful extension would be linear affine types, as in the p calculus and the linear l calculus [30, 6, 19, 49] For example, in the higher order input process in (4) of Section 1, if a is a linear name, ....
Amadio, R. and Cardelli, L., Subtyping Recursive Types, TOPLAS, 15(4), pp.575--631, 1993.
....the plumbing of a program, and recent work has uncovered deep connections between them. For example, Palsberg and O Keefe [PO95] demonstrated an equivalence between determining flow safety in the monovariant 0 CFA flow analysis and typability in a system with recursive types and subtyping [AC93] Heintze showed equivalences between four restrictions of 0 CFA and four type systems parameterized by (1) subtyping and (2) recursive types [Hei95] Because they merge flow information for all calls to a function, monovariant analyses are imprecise. Greater precision can be obtained via ....
....: # ( t y = # ( 3 : u # y # u z ) u y = # (q y : t y ) u xy = # (q x : t x , q y : t y ) Figure 8: Typing the program P 2.2 from Example 2.2. 3. 5 Embedding the Amadio Cardelli Type System In this section we investigate the relationship to the Amadio Cardelli (AC) type system [AC93] We show (Prop. 3.10) that AC can be embedded into the Mono part of our system, where a typing T belongs to Mono if it 1. is monovariant, that is IT T is a singleton . 18 [var] AC B # z l : s if B(z) # AC s [fun] AC B[f ## s 0 ] x ## s 1 ] # e : s 2 B # f.# l x.e : s ....
R. Amadio and L. Cardelli. Subtyping recursive types. ACM Trans. on Prog. Langs. & Systs., 15(4):575--631, 1993.
....[77, 80, 82, 83] Slide 52 References on the methodological aspects of inheritance are too numerous to cite. An example of the Scandinavian school is [54] the use of undisciplined code reuse is critizised in [35] Slide 56 59 The problems of inheritance, subtyping, and recursion are exposed in [33, 14, 15, 5]. The separation of subtyping and inheritance is made clear in [32] Slide 58 Emerald is described in [6, 50, 7, 87] Trellis Owl in [95] Slide 60 62 Definitions of class based inheritance are given in [57, 49, 110, 46, 63, 96, 9, 93] Annotated Bibliography 103 Slide 63 66 The soundness of ....
.... problem is made clear in [12] Mutable types are from [18] Simpler, specialized subtyping systems are presented in [109, 88, 70, 68, 71, 2, 1, 52] Minimal calculi are proposed in [40, 92, 16] A speciale case of the update problem is tackled in [20] Recursion and inheritance is analyzed in [33, 14, 15, 5]. A calculus with covariant specialization is proposed in [41, 22, 23] Undecidability of bounded polymorphism is shown in [84] Abstract data types are employed in [86, 85] their relation to classes is discussed earlier in [31] Large languages are presented in [13, 11] Slide 86 Type inference ....
Roberto M. Amadio and Luca Cardelli. Subtyping recursive types. In Eighteenth Symposium on Principles of Programming Languages, pages 104--118. ACM Press, January 1991. To appear in ACM TOPLAS, Transactions on Programming Languages and Systems.
.... regular interchangeably. There are many, in fact infinitely many, finite representations for the same regular tree. Therefore, we need to define a relation by which two recursive types are equated iff they represent the same regular tree. The formalization of this relation is based on that in [AC93] we 101 will assume without proof that the main results from that report hold in our system as well. 1 As a first attempt, let us define the relation # over elements of DExpTypeUR as a congruence based on the following axiom: X) # # # X : X) # (FoldUnfold) This congruence relates ....
....(X) # X and # # (X) # X (both of which can be infintely unfolded as # # # ) because by (Fold Unfold) we have (i) X) # X # # (X) # X and (ii) # (X) # X # # # (X) # X , which implies that the former must be congruent to the latter by transitivity. Unfortunately, as explained in [AC93] this way of defining the congruence # results in a relation that is sound but not complete. It is sound because it only relates recursive types that represent the same regular tree, but incomplete because there are types that represent same regular tree that are not related. For example, ....
[Article contains additional citation context not shown here]
R. Amadio and L. Cardelli. Subtyping recursive types. ACM Trans. on Prog. Langs. & Systs., 15(4):575--631, 1993.
....in the superclass. 2 Every class in a class hierarchy has an underlying type, which describes the structure of the class, i.e. the structure of the objects in its extensions (cf. TM FM [3, 4] Informally, the underlying type of a class is an aggregation of its attributes, where recursive types [2] are used to cope with attributes that refer to classes. Definition 3. First, postulate a new type oid , whose extension is an enumerable set of object identifiers. Let H be a class hierarchy satisfying the first constraint, C be a class in H , and c be the name of C. The underlying type of ....
.... element type is a subtype of the second element type, and a recursive type is a subtype of another recursive type if from the assumption that the first type variable is a subtype of the second type variable it follows that the body of the first type is a subtype of the body of the second type [7, 2]: B B if B 2 finteger; rational; stringg, fAEg fAE 0 g if AE AE 0 , t:ff t 0 :ff 0 if t t 0 ) ff ff 0 . 2 For example, A is a subtype of S . Attribute specialisation is a form of attribute redefinition, where an inherited attribute a : T , defined in class C, is replaced ....
R. Amadio and L. Cardelli. Subtyping recursive types. In Proc. Int. Symp. on Principles of Programming Languages, pages 104--118, 1991.
....type, i.e. a type that describes the structure of the objects in its extensions (cf. TM FM [4, 5] Since a class can refer to other classes, its underlying type depends on the class hierarchy as a whole. The underlying type of a class is an aggregation of its attributes, where recursive types [3] are used to cope with attributes that refer to classes. Definition 4 (Underlying types) First, we postulate a new type oid , whose extension is an enumerable set of object identifiers. Let H be an acyclic class hierarchy, such that classes have a unique name and only refer to classes in the ....
.... , subtrees struc(e 1 ) Delta Delta Delta ; struc(e n ) and arrows, labeled l i , one for each i 2 f1; Delta Delta Delta ; ng, from the root labeled to the root of struc(e i ) ffl struc(x:e) struc(e[x n x:e] 2 A natural subtype relation for underlying types is the following [3, 8]: t:ff is a subtype of t 0 :ff 0 if from the assumption that t is a subtype of t 0 it follows that for every field a : AE 0 in ff 0 there is a field a : AE in ff, such that AE is a subtype of AE 0 . Definition 8 (Subtyping) Let underlying types and 0 be given by: t: l i : ....
R. Amadio and L. Cardelli. Subtyping recursive types. In Proc. Int. Symp. on Principles of Programming Languages, pages 104--118, 1991.
....equivalence in Algol68 ( 7] where types are represented by infinite trees. Furthermore, we define extensional type equivalence, reducible type equivalence, and derivable type equivalence, which induces an algorithm, similar to the algorithm in [7] In fact, our approach resembles the approach of [2], where structural type equivalence resembles = T , extensional type equivalence resembles =M , reducible type equivalence resembles =R , and derivable type equivalence =A . However, there is an important difference. Since we have no functional types, but only basic, set, and recursive record ....
....is sound and complete w.r.t. both structural and extensional type equivalence. In Section 4, we introduce derivable subtyping using a set of subtyping rules, structural subtyping using trees, and extensional subtyping using extensions. These subtyping relations resemble A , T , and M from [2], respectively. Again, we have a stronger result: derivable subtyping is sound and complete w.r.t. both structural and extensional subtyping. In Section 5, we introduce type transformations: renaming operations and aggregation operations. We show that this set of type transformations is sound and ....
[Article contains additional citation context not shown here]
R. Amadio and L. Cardelli. Subtyping recursive types. In Proc. Int. Symp. on Principles of Programming Languages, pages 104--118, 1991.
No context found.
R. M. Amadio and L. Cardelli. Subtyping recursive types. ACM TOPLAS, 15(4):575--631, 1993.
No context found.
R.M. Amadio, L. Cardelli, "Subtyping recursive types". In proceedings POPL'91, appeared in ACM, pp 104-118, 1991.
No context found.
Amadio, R. M. and Cardelli, L. 1993. Subtyping recursive types. ACM Transactions on Programming Languages and Systems 15, 4, 575-631. Preliminary version in POPL '91 (pp. 104{ 118); also DEC Systems Research Center Research Report number 62, August 1990.
No context found.
Amadio, R. and Cardelli, L., Subtyping Recursive Types, TOPLAS, 15(4), pp.575--631, 1993.
No context found.
Amadio, Roberto, & Cardelli, Luca. (1993). Subtyping recursive types. Acm trans. on prog. langs. and systs., 15(4), 575-631.
No context found.
R. Amadio and L. Cardelli. Subtyping recursive types. ACM Trans. on Prog. Langs. & Systs., 15(4):575--631, 1993.
No context found.
R. Amadio and L. Cardelli. Subtyping recursive types. ACM Trans. on Prog. Langs. and Systs., 15(4):575--631, 1993.
No context found.
R. Amadio and L. Cardelli. Subtyping recursive types. ACM Trans. on Prog. Langs. and Systs., 15(4):575-631, 1993.
No context found.
R. Amadio and L. Cardelli. Subtyping recursive types. ACM Trans. on Prog. Langs. and Systs., 15(4):575--631, 1993.
No context found.
R. M. Amadio and L. Cardelli. Subtyping recursive types. ACM TOPLAS, 15(4):575-631, 1993.
No context found.
R. Amadio and L. Cardelli. Subtyping recursive types. In Proceedings of the 18th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 104--118, 1991.
No context found.
R. M. Amadio and L. Cardelli. Subtyping recursive types. In Proceedings of the ACM Conference on Principles of Programming Languages, 1991.
No context found.
R.M. Amadio and L. Cardelli. Subtyping recursivetypes. In Proc. ACM Symp. Principles of Programming Languages, pages104--= 1991.
No context found.
Roberto M. Amadio and Luca Cardelli, `Subtyping recursive types', ACM Transactions on Programming Languages and Systems, 15, (4), 575--631 (1993).
First 50 documents Next 50
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