Affiliation:
1. Digital Equipment Corp.
2. Carnegie-Mellon Univ., Pittsburgh, PA
3. Univ. of Edinburgh, Edinburgh, Scotland, UK
Abstract
Statically typed programming languages allow earlier error checking, better enforcement of diciplined programming styles, and the generation of more efficient object code than languages where all type consistency checks are performed at run time. However, even in statically typed languages, there is often the need to deal with datawhose type cannot be determined at compile time. To handle such situations safely, we propose to add a type
Dynamic
whose values are pairs of a value
v
and a type tag
T
where
v
has the type denoted by
T
. Instances of
Dynamic
are built with an explicit tagging construct and inspected with a type safe
typecase
construct.
This paper explores the syntax, operational semantics, and denotational semantics of a simple language that includes the type
Dynamic
. We give examples of how dynamically typed values can be used in programming. Then we discuss an operational semantics for our language and obtain a soundness theorem. We present two formulations of the denotational semantics of this language and relate them to the operational semantics. Finally, we consider the implications of polymorphism and some implementation issues.
Publisher
Association for Computing Machinery (ACM)
Reference30 articles.
1. Types and persistence in database programming languages
2. Implementing remote procedure calls
3. BmTWISTLE G. M. DAHL 0. J. MYHRHAUG B. AND NYGAARD K. S~mula Begin. Studentlitteratur Lund Sweden 1979. BmTWISTLE G. M. DAHL 0. J. MYHRHAUG B. AND NYGAARD K. S~mula Begin. Studentlitteratur Lund Sweden 1979.
Cited by
149 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Gradual System F;Journal of the ACM;2022-10-28
2. Two Parametricities Versus Three Universal Types;ACM Transactions on Programming Languages and Systems;2022-09-21
3. Type-level programming with match types;Proceedings of the ACM on Programming Languages;2022-01-12
4. Deep Embedding with Class;Lecture Notes in Computer Science;2022
5. A multiparty session typing discipline for fault-tolerant event-driven distributed programming;Proceedings of the ACM on Programming Languages;2021-10-20