Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!wuarchive!udel!haven!ni.umd.edu!uc780.umd.edu!cs450a03 From: cs450a03@uc780.umd.edu Newsgroups: comp.lang.misc Subject: RE: Dynamic typing (part 3) Message-ID: <3APR91.00020019@uc780.umd.edu> Date: 3 Apr 91 00:02:00 GMT References: <1991Apr1.010526.26781@neon.Stanford.EDU> <1APR91.23564447@uc780.umd.edu> <28673@dime.cs.umass.edu> Sender: usenet@ni.umd.edu (USENET News System) Organization: The University of Maryland University College Lines: 31 Nntp-Posting-Host: uc780.umd.edu Victor Yodaiken > Me >> >>static language implentations have an efficiency advantage (as they >>better model things like machine limits) while dynamic language >>implementations have an efficiency advantage (they better model >>human thought mechanisms as exemplified by thousands of years of >>mathematical development). >People keep saying this, but it just ain't so. Type declarations are >an integral part of mathematics. Abbreviations and conventions, which >make declarations implicit are used extensively, but that's not the >same as no type declarations. Did I say no type declarations? I said dynamic typing. The advantage of dynamic typing is not "no type declarations", the advantage is that redundant type declarations can be eliminated. [Actually, this property is not unique to dynamically typed languages. But DTLs are more consistent in this regard than are STLs.] For example, if F(x) is defined as G(h(q(x))), and the domain of q is balogna sandwiches, then the domain of F is balogna sandwiches, and x can only take on values that are balogna sandwiches. Using q in this manner is sufficient to declare the type of F. Another advantage of dynamic typing is that you get a defined behavior when a function gets a value which is out of its domain (e.g. divide by zero, or array index with index too large). Again, this is not unique to DTLs -- and again, DTLs are more consistent about this than STLs. Raul Rockwell