Concept: Type Checking
There is no static type checking in Scheme;
type checking is done at run time.
There is unfortunately little agreement about many of the terms which are
associated with type checking: so I‘ll give you the definitions we‘ll use in
class, while pointing out some of the other interpretations.
- Type safe
- Type safe means that the language guarantees that
one type can‘t be incorrectly used in place of another type, in other
words, that all expressions are guaranteed to be type consistent.
This can be done checked statically, dynamically, or a mixture. Scheme,
Ada, Smalltalk, and Prolog are examples of type safe languages.
Fortran and C are examples of languages that aren‘t type safe.
- Static/Dynamic type checking
- This refers to when type checking occurs. Static type
checking takes place during compilation, dynamic type checking takes place at
run-time. This distinction makes no guarantee about the completeness of the
type checking. Ada is a statically typed, type-safe language, which is to say
that the necessary type checking takes place at compile time. (This was true
at least of the old Ada, Ada 95 appears to support dynamic binding, so I‘m not
certain if it can do all checking statically.) C is also statically typed, but
not type safe. Scheme is dynamically typed and type safe. (Some texts use
statically typed to imply type safe, but I think this is confusing, because we
should be separating out the issues of the completeness of the type checking
(type safety) from the time when the type checking occurs (dynamic vs.
static).)
- Strongly typed
- There are two common definitions for strongly typed (sorry) -- one is
strongly typed = statically typed and type safe; the other is strongly typed =
type safe. I will attempt to use the latter definition. Scheme and Ada are
strongly typed by this definition.
- Weakly typed
- Weakly typed means "not type
safe". Fortran and C are examples of weakly typed languages.
转自:http://courses.cs.washington.edu/courses/cse341/02wi/scheme/basics.html
关于type check的定义,布布扣,bubuko.com
关于type check的定义
原文:http://www.cnblogs.com/youxin/p/3638324.html