This is an old revision of this page, as edited by Ruud Koot (talk | contribs) at 23:26, 10 December 2012 (fmt). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Revision as of 23:26, 10 December 2012 by Ruud Koot (talk | contribs) (fmt)(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)Programming language | static / dynamic | strong / weak | safety | nominative / structural |
---|---|---|---|---|
Ada | static | strong | safe | nominative |
Assembly language | none | strong | unsafe | structural |
APL | dynamic | weak | safe | nominative |
BASIC | static | weak | safe | nominative |
C | static | weak | unsafe | nominative |
C++ | static | strong | unsafe | nominative |
C# | static | strong | both | nominative |
Cayenne | dependent | strong | safe | structural |
Centura | static | weak | safe | nominative |
Clipper | dynamic | weak | safe | duck |
D | static | strong | both | nominative |
Delphi | static | strong | safe | nominative |
E | dynamic | strong | safe | nominative + duck |
Eiffel | static | strong | safe | nominative |
Erlang | dynamic | strong | safe | nominative |
Fortran | static | strong | safe | nominative |
Groovy | dynamic | strong | safe | duck |
Haskell | static | strong | safe | nominative |
Io | dynamic | strong | safe | duck |
Java | static | strong | safe | nominative |
JavaScript | dynamic | weak | safe | duck |
Lisp | dynamic | strong | safe | structural |
Lua | dynamic | weak | safe | structural |
ML | static | strong | safe | structural |
Objective-C | dynamic | strong | unsafe | duck |
Pascal | static | strong | safe | nominative |
Perl 1-5 | dynamic | weak | safe | nominative |
Perl 6 | hybrid | hybrid | safe | duck |
PHP | dynamic | weak | safe | ? |
Pike | static+dynamic | strong | safe | structural |
Python | dynamic | strong | safe | duck |
Ruby | dynamic | strong | safe | duck |
Scala | static | strong | safe | nominative |
Scheme | dynamic | strong | safe | nominative |
Smalltalk | dynamic | strong | safe | duck |
Visual Basic | hybrid | hybrid | safe | nominative |
Windows PowerShell | hybrid | hybrid | safe | duck |
xHarbour | dynamic | weak | safe | duck |
- The C basis is unchanged. 3.0 has hybrid typing with Anonymous Types. Can be both unsafe and safe with use of 'unsafe' functions and code blocks.
- D's philosophy is: safe by default with unsafe "backdoors". D also supports @safe functions that provably can't corrupt memory at the cost of disabling some of the unsafe language constructs.
- Variables can change type with the use of metatables.
- Applies to the Objective-C extension only.
- Not yet released.