Structural subtyping and the notion of power type
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Strongtalk: typechecking Smalltalk in a production environment
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Smalltalk: best practice patterns
Smalltalk: best practice patterns
Featherweight Java: a minimal core calculus for Java and GJ
ACM Transactions on Programming Languages and Systems (TOPLAS)
Contracts for higher-order functions
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
A soft-typing system for Erlang
Proceedings of the 2003 ACM SIGPLAN workshop on Erlang
Fine-grained interoperability through mirrors and contracts
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
Static type inference for Ruby
Proceedings of the 2009 ACM symposium on Applied Computing
Proceedings for the 1st workshop on Script to Program Evolution
Threesomes, with and without blame
Proceedings for the 1st workshop on Script to Program Evolution
Thorn: robust, concurrent, extensible scripting on the JVM
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Evaluating the dynamic behaviour of Python applications
ACSC '09 Proceedings of the Thirty-Second Australasian Conference on Computer Science - Volume 91
Logical types for untyped languages
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Always-available static and dynamic feedback
Proceedings of the 33rd International Conference on Software Engineering
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Application optimization when using gradual typing
Proceedings of the 6th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems
Implementing a Language with Flow-Sensitive and Structural Typing on the JVM
Electronic Notes in Theoretical Computer Science (ENTCS)
The ins and outs of gradual type inference
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
PLPV '12 Proceedings of the sixth workshop on Programming languages meets program verification
Core FOBS: A hybrid functional and object-oriented language
Computer Languages, Systems and Structures
Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software
Gradual typing for first-class classes
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Cast insertion strategies for gradually-typed objects
Proceedings of the 9th symposium on Dynamic languages
Tackling the efficiency problem of gradual typing
Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity
Hi-index | 0.00 |
Many large software systems originate from untyped scripting language code. While good for initial development, the lack of static type annotations can impact code-quality and performance in the long run. We present an approach for integrating untyped code and typed code in the same system to allow an initial prototype to smoothly evolve into an efficient and robust program. We introduce like types , a novel intermediate point between dynamic and static typing. Occurrences of like types variables are checked statically within their scope but, as they may be bound to dynamic values, their usage is checked dynamically. Thus like types provide some of the benefits of static typing without decreasing the expressiveness of the language. We provide a formal account of like types in a core object calculus and evaluate their applicability in the context of a new scripting language.