Advanced Search

Browse by Discipline

Scientific Societies

E-print Alerts

Add E-prints

E-print Network

  Advanced Search  

Dynamic Typing in a Statically Typed Language \Lambda

Summary: Dynamic Typing
in a Statically Typed Language \Lambda
Mart'in Abadi y Luca Cardelli y Benjamin Pierce z Gordon Plotkin x
Statically typed programming languages allow earlier error checking, better en­
forcement of disciplined programming styles, and 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 data
whose 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 including 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.
1 Introduction
Statically typed programming languages allow earlier error checking, better enforcement of


Source: Abadi, Martín - Department of Computer Science, University of California at Santa Cruz
Pierce, Benjamin C. - Department of Computer and Information Science, University of Pennsylvania


Collections: Computer Technologies and Information Sciences