Extending Dylan's type system for better type inference and error detection
- Hannes Mehnert
Research Output:
Conference Article in Proceeding or Book/Report chapter
Article in proceedings
Peer-reviewOpen access
Publication Information
Output type
Research Output:
Conference Article in Proceeding or Book/Report chapter
Article in proceedings
Peer-reviewOriginal language
EnglishPages from-to (Number of pages)
Pages 1-10 (10 pages)Publication milestones
- Published - 2010
Publication status
Published - 2010
Place of publication
Reno/Tahoe, Nevada, USAPublisher
Association for Computing Machinery, United StatesISBN (Print)
978-1-4503-0470-2Publication IDs
- Scopus: 78650091040
Host publication title
ILC '10 Proceedings of the 2010 international conference on LispAbstract
Whereas dynamic typing enables rapid prototyping and easy experimentation, static typing provides early error detection and better compile time optimization. Gradual typing [26] provides the best of both worlds. This paper shows how to define and implement gradual typing in Dylan, traditionally a dynamically typed language. Dylan poses several special challenges for gradual typing, such as multiple return values, variable-arity methods and generic functions (multiple dispatch).
In this paper Dylan is extended with function types and parametric polymorphism. We implemented the type system and aunification-based type inference algorithm in the mainstream Dylan compiler. As case study we use the Dylan standard library (roughly 32000 lines of code), which witnesses that the implementation generates faster code with fewer errors. Some previously undiscovered errors in the Dylan library were revealed.
In this paper Dylan is extended with function types and parametric polymorphism. We implemented the type system and aunification-based type inference algorithm in the mainstream Dylan compiler. As case study we use the Dylan standard library (roughly 32000 lines of code), which witnesses that the implementation generates faster code with fewer errors. Some previously undiscovered errors in the Dylan library were revealed.
Publication metrics
PlumX, opens in new tab
Citations
3
Captures
9
Access to documents
Final published version, 529.43 KB
