Affiliation:
1. Department of Computer Science and Engineering, University of Washington, Box 352350, Seattle, Washington
Abstract
We present a static type system for object-oriented languages which strives to provide static typechecking without resorting to dynamic "type casts," restricting what code the programmer can write, or being too verbose or difficult to use in practice. The type system supports bounded parametric polymorphism where the bounds on type variables can be expressed using general recursive subtype or signature constraints, with F-bounded polymorphism and covariant type parameters being special cases.We implemented this type system in the Cecil language and used it to successfully typecheck a 100,000-line Cecil program, the Vortex optimizing compiler. Our experience was very good: dynamically-typed code needed very little rewriting. We also observed several common programming situations that presented a challenge for our type system. We discuss these situations and ways to typecheck them statically.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Julia: dynamism and performance reconciled by design;Proceedings of the ACM on Programming Languages;2018-10-24
2. Julia subtyping: a rational reconstruction;Proceedings of the ACM on Programming Languages;2018-10-24
3. MultiJava;ACM Transactions on Programming Languages and Systems;2006-05
4. Family Polymorphism;ECOOP 2001 — Object-Oriented Programming;2001