Dynamic typing for distributed programming in polymorphic languages
- 1 January 1999
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 21 (1) , 11-45
- https://doi.org/10.1145/314602.314604
Abstract
While static typing is widely accepted as being necessary for secure program execution, dynamic typing is also viewed as being essential in some applications, particularly for distributed programming environments. Dynamics have been proposed as a language construct for dynamic typing, based on experience with languages such as CLU, Cedar/Mesa, and Modula-3. However proposals for incorporating dynamic typing into languages with parametric polymorphism have serious shortcomings. A new approach is presented to extending polymorphic lnanguages with dynamic typing. At the heart of the approach is the use of dynamic type dispatch, where polymorphic functions may analyze the structure of their type arguments. This approach solves several open problems with the traditional approach to adding dynamic typing to polymorphic languages. An explicity typed language XML dyn is presented; this language uses refinement kinds to ensure that dynamic type dispatch does not fail at run-time. Safe dynamics are a new form of dynamics that use refinement kinds to statically check the use of run-time dynamic typing. Run-time errors are isolated to a separate construct for performing run-time type checksKeywords
This publication has 34 references indexed in Scilit:
- Type classes in HaskellACM Transactions on Programming Languages and Systems, 1996
- Polymorphism and type inference in database programmingACM Transactions on Database Systems, 1996
- A paradigmatic object-oriented programming language: Design, static typing and semanticsJournal of Functional Programming, 1994
- Simple type-theoretic foundations for object-oriented programmingJournal of Functional Programming, 1994
- On the type structure of standard MLACM Transactions on Programming Languages and Systems, 1993
- Report on the programming language HaskellACM SIGPLAN Notices, 1992
- An ad hoc approach to the implementation of polymorphismACM Transactions on Programming Languages and Systems, 1991
- Allocation without lockingSoftware: Practice and Experience, 1989
- Abstract types have existential typeACM Transactions on Programming Languages and Systems, 1988
- Rationale for the design of the Ada programming languageACM SIGPLAN Notices, 1979