A scalable programming language is one in which the same concepts can describe small as well as large parts. Towards this goal, Scala unifies concepts from object and module systems. An essential ingredient of this unification is the concept of objects with type members, which can be referenced through path-dependent types. Unfortunately, path-dependent types are not well-understood, and have been a roadblock in grounding the Scala type system on firm theory. We study several calculi for path-dependent types. We present mu DOT which captures the essence - DOT stands for Dependent Object Types. We explore the design space bottom-up, teasing apart inherent from accidental complexities, while fully mechanizing our models at each step. Even in ...
Reference mutability is a type-based technique for controlling mutation that has been thoroughly stu...
Datatype-generic programming involves parametrization by the shape of data, in the form of type cons...
Abstract. We design and study νObj, a calculus and dependent type system for objects and classes whi...
This is the artifact for our OOPSLA'19 paper that presents pDOT, a generalization of the Dependent O...
Focusing on path-dependent types, the paper develops foundations for Scala from first principles. St...
The goal of my thesis is to enable formal reasoning about the Scala programming language. To that en...
Path dependent types form a central component of the Scala programming language. Coupled with other ...
The Dependent Object Type (DOT) calculus was designed to put Scala on a sound basis, but while DOT r...
Scala's type system unifies aspects of ML modules, object-oriented, and functional programming. The ...
We present a minimal core calculus that captures interesting constructs of the Scala programming lan...
Scala is a functional and object-oriented programming language which unifies concepts from object an...
Much recent work in the design of object-oriented programming languages has been focusing on identif...
Abstract: The metatheory of Scala’s core type system — the Dependent Object Types (DOT) calculus — i...
We design and study #Obj, a calculus and dependent type system for objects and classes which can hav...
Much recent work in the design of object-oriented programming languages has been focusing on identif...
Reference mutability is a type-based technique for controlling mutation that has been thoroughly stu...
Datatype-generic programming involves parametrization by the shape of data, in the form of type cons...
Abstract. We design and study νObj, a calculus and dependent type system for objects and classes whi...
This is the artifact for our OOPSLA'19 paper that presents pDOT, a generalization of the Dependent O...
Focusing on path-dependent types, the paper develops foundations for Scala from first principles. St...
The goal of my thesis is to enable formal reasoning about the Scala programming language. To that en...
Path dependent types form a central component of the Scala programming language. Coupled with other ...
The Dependent Object Type (DOT) calculus was designed to put Scala on a sound basis, but while DOT r...
Scala's type system unifies aspects of ML modules, object-oriented, and functional programming. The ...
We present a minimal core calculus that captures interesting constructs of the Scala programming lan...
Scala is a functional and object-oriented programming language which unifies concepts from object an...
Much recent work in the design of object-oriented programming languages has been focusing on identif...
Abstract: The metatheory of Scala’s core type system — the Dependent Object Types (DOT) calculus — i...
We design and study #Obj, a calculus and dependent type system for objects and classes which can hav...
Much recent work in the design of object-oriented programming languages has been focusing on identif...
Reference mutability is a type-based technique for controlling mutation that has been thoroughly stu...
Datatype-generic programming involves parametrization by the shape of data, in the form of type cons...
Abstract. We design and study νObj, a calculus and dependent type system for objects and classes whi...