Empowering Union and Intersection Types with Integrated Subtyping
Empowering Union and Intersection Types with Integrated Subtyping Fabian Muehlboeck and Ross Tate
Union Types Intersection Types Algol 68 Coppo, Dezani-Ciancaglini, Sallé, Pottinger, late 1970 s
Unions and Intersections Ceylon Racket
Nullability in Ceylon
Nullability in Ceylon
Nullability in Ceylon filter. Nulls(nstrs);
Nullability in Ceylon filter. Nulls(nstrs);
Nullability in Ceylon filter. Nulls(nstrs); (Disjointness) (Distributivity)
Nullability in Ceylon filter. Nulls(nstrs); (Disjointness) (Distributivity)
Subtyping Extension “Textbook” Subtyping Integrated Subtyping Our Framework
Textbook Subtyping “Literals”
Textbook Subtyping
Textbook Subtyping
Textbook Subtyping • Syntax-Directed • Well-founded
Textbook Subtyping
Textbook Subtyping
“Textbook” Subtyping Decision Procedure Our Framework
Nullability in Ceylon filter. Nulls(nstrs); (Disjointness) (Distributivity)
Distributivity In dnf DNF
Disjunctive Normal Form Promotion
Preserving DNF Still in dnf In dnf
Preserving DNF Not necessarily in dnf In dnf
Integrating DNF into the Subtyping Algorithm Re-Establish dnf
“Textbook” Subtyping Decision +Distributivity Procedure Our Framework
Nullability in Ceylon filter. Nulls(nstrs); (Disjointness) (Distributivity)
Subtyping Extension “Textbook” Subtyping +Distributivity Our Framework
Integrated Subtyping Additional Subtyping Relationships
Integrated Subtyping
Integrated Subtyping
Integrated Subtyping
Integrated Subtyping
Integrated Subtyping
Integrated Subtyping Promotion
Integrated Subtyping Algorithm
Subtyping Extension “Textbook” Subtyping Integrated +Distributivity Subtyping Our Framework
Subtyping Extension “Textbook” Subtyping Our Framework
Composition “Textbook” Subtyping Integrated Subtyping Our Framework
Composition
More Ceylon Extensions Classes with Enumerated Cases Object or Null Principal Instantiations
Extensions for Other Languages
Composition “Textbook” Subtyping Integrated Subtyping Our Framework www. cs. cornell. edu/~ross/empower
- Slides: 41