Repository logo

Infoscience

  • English
  • French
Log In
Logo EPFL, École polytechnique fédérale de Lausanne

Infoscience

  • English
  • French
Log In
  1. Home
  2. Academic and Research Output
  3. Journal articles
  4. Foundations of Path-Dependent Types
 
research article

Foundations of Path-Dependent Types

Amin, Nada  
•
Rompf, Tiark  
•
Odersky, Martin  
2014
Acm Sigplan Notices

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 this simple setting, many interesting patterns arise from the interaction of structural and nominal features. Whereas our simple calculus enjoys many desirable and intuitive properties, we demonstrate that the theory gets much more complicated once we add another Scala feature, type refinement, or extend the subtyping relation to a lattice. We discuss possible remedies and trade-offs in modeling type systems for Scala-like languages.

  • Details
  • Metrics
Type
research article
DOI
10.1145/2660193.2660216
Web of Science ID

WOS:000348907400014

Author(s)
Amin, Nada  
Rompf, Tiark  
Odersky, Martin  
Date Issued

2014

Publisher

Assoc Computing Machinery

Published in
Acm Sigplan Notices
Volume

49

Issue

10

Start page

233

End page

249

Subjects

Languages

•

Theory

•

calculus

•

objects

•

dependent types

Editorial or Peer reviewed

REVIEWED

Written at

EPFL

EPFL units
LAMP1  
Available on Infoscience
April 13, 2015
Use this identifier to reference this record
https://infoscience.epfl.ch/handle/20.500.14299/113118
Logo EPFL, École polytechnique fédérale de Lausanne
  • Contact
  • infoscience@epfl.ch

  • Follow us on Facebook
  • Follow us on Instagram
  • Follow us on LinkedIn
  • Follow us on X
  • Follow us on Youtube
AccessibilityLegal noticePrivacy policyCookie settingsEnd User AgreementGet helpFeedback

Infoscience is a service managed and provided by the Library and IT Services of EPFL. © EPFL, tous droits réservés