Path dependent types form a central component of the Scala programming language. Coupled with other expressive type forms, path dependent types provide for a diverse set of concepts and patterns, from nominality to F-bounded polymorphism. Recent years have seen much work aimed at formalising the foundations of path dependent types, most notably a hard won proof of type safety. Unfortunately subtyping remains undecidable, presenting problems for programmers who rely on the results of their tools. One such tool is Dotty, the basis for the upcoming Scala 3. Another is Wyvern, a new programming language that leverages path dependent types to support both first class modules and parametric polymorphism. In this thesis I investigate the issues wi...
AbstractThe need for subtyping in type systems with dependent types has been realized for some years...
A static type system is an important tool in efficiently developing correct software. We describe th...
The essential rationale for subtype polymorphism is adherence to the 'Open/Closed Principle' [12]: t...
A scalable programming language is one in which the same concepts can describe small as well as larg...
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...
Subtyping is used in language design, type checking and program analysis. Mitchell and others have s...
The goal of my thesis is to enable formal reasoning about the Scala programming language. To that en...
Scala's type system unifies aspects of ML modules, object-oriented, and functional programming. The ...
Abstract. Many type inference and program analysis systems include notions of subtyping and parametr...
We present a minimal core calculus that captures interesting constructs of the Scala programming lan...
AbstractPath polymorphism is the ability to define functions that can operate uniformly over arbitra...
Datatype-generic programming involves parametrization by the shape of data, in the form of type cons...
Many type inference and program analysis systems include notions of subtyping and parametric polymor...
Datatype-generic programming involves parametrization by the shape of data, in the form of type cons...
AbstractThe need for subtyping in type systems with dependent types has been realized for some years...
A static type system is an important tool in efficiently developing correct software. We describe th...
The essential rationale for subtype polymorphism is adherence to the 'Open/Closed Principle' [12]: t...
A scalable programming language is one in which the same concepts can describe small as well as larg...
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...
Subtyping is used in language design, type checking and program analysis. Mitchell and others have s...
The goal of my thesis is to enable formal reasoning about the Scala programming language. To that en...
Scala's type system unifies aspects of ML modules, object-oriented, and functional programming. The ...
Abstract. Many type inference and program analysis systems include notions of subtyping and parametr...
We present a minimal core calculus that captures interesting constructs of the Scala programming lan...
AbstractPath polymorphism is the ability to define functions that can operate uniformly over arbitra...
Datatype-generic programming involves parametrization by the shape of data, in the form of type cons...
Many type inference and program analysis systems include notions of subtyping and parametric polymor...
Datatype-generic programming involves parametrization by the shape of data, in the form of type cons...
AbstractThe need for subtyping in type systems with dependent types has been realized for some years...
A static type system is an important tool in efficiently developing correct software. We describe th...
The essential rationale for subtype polymorphism is adherence to the 'Open/Closed Principle' [12]: t...