Common LISP: the language
Dynamic typing in a statically typed language
ACM Transactions on Programming Languages and Systems (TOPLAS)
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
The Python compiler for CMU Common Lisp
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Strongtalk: typechecking Smalltalk in a production environment
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Soft typing with conditional types
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The mythical man-month (anniversary ed.)
The mythical man-month (anniversary ed.)
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 practical soft type system for scheme
ACM Transactions on Programming Languages and Systems (TOPLAS)
A practical subtyping system for Erlang
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Contraint-based polymorphism in Cecil: towards a practical and static type system
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Componential set-based analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Java Virtual Machine Specification
Java Virtual Machine Specification
Test Driven Development: By Example
Test Driven Development: By Example
Contracts for higher-order functions
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Proceedings of the 5th ACM Conference on Functional Programming Languages and Computer Architecture
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
Modular set-based analysis from contracts
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Relationally-parametric polymorphic contracts
Proceedings of the 2007 symposium on Dynamic languages
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
Safe Cross-Language Inheritance
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
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
Understanding the dynamics of JavaScript
Proceedings for the 1st workshop on Script to Program Evolution
Cycles without pollution: a gradual typing poem
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
Threesomes, with and without blame
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Integrating typed and untyped code in a scripting language
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Adding types to untyped languages
Proceedings of the 5th ACM SIGPLAN workshop on Types in language design and implementation
Extending Dylan's type system for better type inference and error detection
Proceedings of the 2010 international conference on Lisp
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Contract-driven testing of javascript code
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 32nd ACM SIGPLAN conference on Programming language design and implementation
The impact of optional type information on jit compilation of dynamically typed languages
Proceedings of the 7th symposium on Dynamic languages
Space-efficient gradual typing
Higher-Order and Symbolic Computation
Stateful contracts for affine types
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Type systems directed programming language evolution: overview and research trends
Proceedings of the 50th Annual Southeast Regional Conference
A compilation technique to increase X3D performance and safety
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Complete monitors for behavioral contracts
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Equality proofs and deferred type errors: a compiler pearl
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Object-oriented programming with gradual abstraction
Proceedings of the 8th symposium on Dynamic languages
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
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Constraining delimited control with contracts
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Calculating threesomes, with blame
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Hi-index | 0.00 |
As scripts grow into full-fledged applications, programmers should want to port portions of their programs from scripting languages to languages with sound and rich type systems. This form of interlanguage migration ensures type-safety and provides minimal guarantees for reuse in other applications, too.In this paper, we present a framework for expressing this form of interlanguage migration. Given a program that consists of modules in the untyped lambda calculus, we prove that rewriting one of them in a simply typed lambda calculus produces an equivalent program and adds the expected amount of type safety, i.e., code in typed modules can't go wrong. To ensure these guarantees, the migration process infers constraints from the statically typed module and imposes them on the dynamically typed modules in the form of behavioral contracts.