Posez n’importe quelle question sur les cours, conférences, exercices, recherches, actualités, etc. de l’EPFL ou essayez les exemples de questions ci-dessous.
AVERTISSEMENT : Le chatbot Graph n'est pas programmé pour fournir des réponses explicites ou catégoriques à vos questions. Il transforme plutôt vos questions en demandes API qui sont distribuées aux différents services informatiques officiellement administrés par l'EPFL. Son but est uniquement de collecter et de recommander des références pertinentes à des contenus que vous pouvez explorer pour vous aider à répondre à vos questions.
Over the past decade, the Scala community has shown great interest in using type-level programming to obtain additional type safety. Unfortunately, the lack of support from the Scala compiler has been a barrier to the adoption of that technique, notably due to its negative impact on compilation times. In this thesis, we present three techniques for type-level programming in Scala. First, we explain the status quo, implicits, and show how we can divert them from their intended use to write ad hoc type-level programs. Second, we propose a generalization of Scala's singleton types, which adds the ability to manipulate term-level programs at the type level. Third, we introduce match types, a type-level equivalent of pattern matching, which we implemented in the Scala~3 compiler. Throughout this dissertation, we demonstrate the practicality of our newly introduced techniques, by the means of case studies and examples. Our performance evaluation shows that our new techniques outperform the status quo in terms of binary sizes and compilation times.
Aleksander Slawomir Boruch-Gruszecki
Aleksander Slawomir Boruch-Gruszecki
Martin Odersky, Aleksander Slawomir Boruch-Gruszecki, Yichen Xu