Dynamic typing in a statically-typed language
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Inheritance as implicit coercion
Information and Computation
Soft typing with conditional types
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Dynamic typing: syntax and proof theory
ESOP'92 Selected papers of the symposium on Fourth European symposium on programming
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Featherweight Java: a minimal core calculus for Java and GJ
ACM Transactions on Programming Languages and Systems (TOPLAS)
Types and programming languages
Types and programming languages
Formalization of generics for the .NET common language runtime
Proceedings of the 31st 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
Lost in translation: formalizing proposed extensions to c#
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
The design and implementation of typed scheme
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ECOOP '07 Proceedings of the 21st European conference on ECOOP 2007: Object-Oriented Programming
The c# programming language, third edition
The c# programming language, third edition
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
Integrating typed and untyped code in a scripting language
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 25th European conference on Object-oriented programming
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
Pause 'n' play: formalizing asynchronous C#
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Object-oriented programming with gradual abstraction
Proceedings of the 8th symposium on Dynamic languages
Gradual typing for first-class classes
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Efficient support of dynamic inheritance for class- and prototype-based languages
Journal of Systems and Software
Gradual typing embedded securely in JavaScript
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
A hybrid class- and prototype-based object model to support language-neutral structural intercession
Information and Software Technology
Hi-index | 0.00 |
Developers using statically typed languages such as C≠ and Java are increasingly having to interoperate with APIs and object models defined in dynamic languages. This impedance mismatch results in code that is difficult to understand, awkward to analyze, and expensive to maintain. In this paper we describe new features in C≠4.0 that support the safe combination of dynamically and statically typed code by deferring type checking of program fragments with static type dynamic until runtime.When executed, these dynamic code fragments are type-checked and resolved using the same rules as statically typed code. We formalize these features in a core fragment of C≠ and prove important safety properties. In particular, we show that subtyping remains transitive.