Abstract
It is impossible to examine any kind of programming language without a discussion of types. Even languages such as Scheme, LISP, Smalltalk, or even Basic, which are considered by many to be “typeless”, must admit of a typed account. One reason for this is that the untyped (type-free) A-calculus has no consistent models, thus demonstrating that untyped languages produce unpredictable results (normalization cannot be guaranteed). A second reason is that the operations in such languages, say that of addition, are typed: for the addition function to be correctly applied, its arguments must be numbers. Addition has to be redefined if an addition operator is to be applied to, say, strings; such a redefinition would result in a concatenation function. Thus, it makes no sense to say that LISP, Scheme, Basic, and so on, are “typeless” or “untyped”, for they are more correctly described as being dynamically typed (or, more strictly, their variables, parameters and function returns are more correctly described as being dynamically typed). The reason for this is that types play an essential role in the evaluation of the expressions of such languages, but the type of an arbitrary expression is determined dynamically at runtime rather than statically at compile time.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Rights and permissions
Copyright information
© 2002 Springer-Verlag London
About this chapter
Cite this chapter
Craig, I. (2002). Types I: Types and Objects. In: The Interpretation of Object-Oriented Programming Languages. Springer, London. https://doi.org/10.1007/978-1-4471-0199-4_6
Download citation
DOI: https://doi.org/10.1007/978-1-4471-0199-4_6
Publisher Name: Springer, London
Print ISBN: 978-1-85233-547-2
Online ISBN: 978-1-4471-0199-4
eBook Packages: Springer Book Archive