Andreas Rossberg schrieb: > > Luca Cardelli has given the most convincing one in his seminal tutorial > "Type Systems", where he identifies "typed" and "safe" as two orthogonal > dimensions and gives the following matrix: > > | typed | untyped > -------+-------+---------- > safe | ML | Lisp > unsafe | C | Assembler > > Now, jargon "dynamically typed" is simply untyped safe, while "weakly > typed" is typed unsafe.
Here's a matrix how most people that I know would fill in with terminology: | Statically | Not | | typed | statically | | | typed | ---------+--------------+-------------+ typesafe | "strongly | Dynamically | | typed" | typed | | (ML, Pascal) | (Lisp) | ---------+--------------+-------------+ not | (no common | "untyped" | typesafe | terminology) | | | (C) | (Assembly) | ---------+--------------+-------------+ (Terms in quotes are challenged on a regular basis, or rarely if ever applied.) With the above terminology, it becomes clear that the opposite if "(statically) typed" isn't "statically untyped", but "not statically typed". "Statically typed" and "dynamically typed" aren't even opposites, they just don't overlap. Another observation: type safeness is more of a spectrum than a clearcut distinction. Even ML and Pascal have ways to circumvent the type system, and even C is typesafe unless you use unsafe constructs. IOW from a type-theoretic point of view, there is no real difference between their typesafe and not typesafe languages in the "statically typed" column; the difference is in the amount of unsafe construct usage in practial programs. Regards, Jo -- http://mail.python.org/mailman/listinfo/python-list