PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
ESOP'92 Symposium proceedings on 4th European symposium on programming
Strongtalk: typechecking Smalltalk in a production environment
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Typechecking and modules for multimethods
ACM Transactions on Programming Languages and Systems (TOPLAS)
Safe polymorphic type inference for a dynamically typed language: translating Scheme to ML
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
A monotonic superclass linearization for Dylan
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A framework for type inference with subtyping
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Types and programming languages
Types and programming languages
A Theory of Objects
Object-Oriented Multi-Methods in Cecil
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
Efficient Compression of Generic Function Dispatch Tables
Efficient Compression of Generic Function Dispatch Tables
Concrete Type Inference: Delivering Object-Oriented Applications
Concrete Type Inference: Delivering Object-Oriented Applications
Practical type inference based on success typings
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
Interlanguage migration: from scripts to programs
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
The design and implementation of typed scheme
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Gradual typing with unification-based inference
DLS '08 Proceedings of the 2008 symposium on Dynamic languages
ECOOP '07 Proceedings of the 21st European conference on ECOOP 2007: Object-Oriented Programming
Integrating Nominal and Structural Subtyping
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Static type inference for Ruby
Proceedings of the 2009 ACM symposium on Applied Computing
Well-Typed Programs Can't Be Blamed
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Practical Variable-Arity Polymorphism
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Threesomes, with and without blame
Proceedings for the 1st workshop on Script to Program Evolution
Extending Dylan's type system for better type inference and error detection
Proceedings of the 2010 international conference on Lisp
Extending Dylan's type system for better type inference and error detection
Proceedings of the 2010 international conference on Lisp
Hi-index | 0.00 |
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.