Comparison of programming languages by type system



This is a comparison of the features of the type systems and type checking of multiple programming languages.
Brief definitions
LanguageType safetyType expressionType compatibility and equivalenceType checking
A+strongdynamic
ActionScript 3.0strongstatic
ABCstrong
ABAPstrongnominalstatic
Adastrongexplicitnominalstatic
Agdastrongnominalstatic
Aldorweakstatic
Alefstrongstatic
ALGOL 58strongexplicitstatic
ALGOL 60strongexplicitstatic
ALGOL 68strongexplicitstructuralstatic & tagged unions
ALGOL Wstrongstatic
Alicestrongstatic
Alma-0static
AmbientTalkstrongdynamic
AMOS BASICstatic
AngelScriptstrongstatic
APLstrongdynamic
AppleScriptweakdynamic
Arcdynamic
Assembly
AutoHotkeytypeless
AutoLISPdynamic
Ateji PXstrongexplicitnominalstatic
AWKweakimplicitdynamic
Btypeless
Ballerinastrongstructuralstatic
Bash
BASICstrongexplicitnominalstatic
BCPLtypeless
BeanShellstrongnominaldynamic
BLISStypeless
Boostrong
Brostrongnominalstatic
Cweakexplicitnominalstatic
C--weakstatic
C++ strongnominal
C*weakexplicitstatic
C#strongnominal
C shell
Camlstrongstatic
Cecil
Cleanstrongimplicitstatic
Ceylonstrongstatic
Chapelstatic
CHILLstrongstatic
ChucKstrong
Cilkweakexplicitstatic
Clairestrong
Cleanstrongstatic and dynamic
Clojurestrongdynamic
CLUstrong
COBOLstrongexplicitnominalstatic
Cobrastrong
CoffeeScriptimplicitdynamic
ColdFusion strongimplicitdynamic
COMALstrong
Common Lispstrongstructural for implicit typing, nominal for explicit typingdynamic, some static checking
Component Pascalstrongstatic
Coolstrongexplicitstatic
CORALstrongstatic
Crystalstructuralstatic
Cuneiformexplicitstatic
Curlstrongnominal
Currystrongstatic
Cythonstrongnominal and structural
Dweakexplicitnominalstatic
Dartstronggradual typingnominal
Dylanstrongdynamic
Eiffelstrongnominalstatic
Elixirstrongimplicitdynamic
Erlangstrongimplicitdynamic
Euphoriastrongexplicit, implicit with objectsnominalstatic, dynamic with objects
F#strongimplicitnominalstatic
Forthtypeless
Fortranstrongexplicitnominalstatic
Gambasstrongexplicitnominal
GLBasicstrongexplicit. Non-explicit declarations available through project optionsnominalstatic
Gleamstrongnominalstatic
Gostrongstructuralstatic
Gosustrongnominal and structuralstatic
Groovystrong
Harbourstrongdynamic
Haskellstrongnominalstatic
Haxestrongnominal and structural
Iostrongimplicitdynamic
iconstrongimplicitdynamic
ISLISPstrongdynamic
Jstrongdynamic
Javastrongexplicitnominalstatic
JavaScriptweakimplicitdynamic
Juliastrongstructural for implicit typing, nominal for explicit typingdynamic
Joystrongdynamic
Kotlinstrongnominalstatic
LabVIEWstrong
Luastrongimplicitdynamic
Maplestrongdynamic
Mercurystrongstatic
Mathematicastrongdynamic
MATLAB M-codestrongdynamic
Modula-2weakexplicitnominalstatic
Modula-3weakexplicitstructuralstatic
MUMPS typeless
Nekodynamic
Nemerlestrongimplicitnominalstatic
NetLogostrongimplicitdynamic
NetRexxstrong
newLispimplicitdynamic
NEWPstrongstatic
Newspeakdynamic
NewtonScriptdynamic
Nialdynamic
Nimstrongstatic
Nicklestrong
Nudynamic
Oberonstrongexplicitnominal
Objective-Cweakexplicitnominal
OCamlstrongnominal for records, structural for objectsstatic
Object Pascalstrongexplicitnominalstatic
Opastrongstructuralstatic
Oxygeneweakimplicitstatic
Oz-Mozartstrongimplicitstructuraldynamic
Pascalweakexplicitnominalstatic
Perl 5implicitdynamic
PHPweaknominaldynamic
Plusstrongexplicitstructural
Prologdynamic
Purestrongdynamic
PureScriptstrongnominalstatic
Pythonstrongnominaldynamic
Rimplicitdynamic
Raku
REBOLstrongimplicitdynamic
Rexxtypeless, implicit wrt numbersstatic+dynamic wrt numbers
RPGweakstatic
Rubystrongimplicitdynamic
Ruststrongmostly nominalstatic
Sdynamic
S-Langstrongimplicitdynamic
Scalastrongnominal and structuralstatic
Schemestrongimplicitdynamic
Seed7strongexplicitnominalstatic
Simulastrong
Smalltalkstrongimplicitdynamic
Swiftstrongnominal and structuralstatic
Standard MLstrongstructuralstatic
Tcldynamic
TypeScriptstrongoptionalstructuralstatic
Uniconstrongimplicitdynamic
Visual Basicstrongnominalstatic
weakexplicitstatic
Visual Prologstrongnominalstatic
Wolfram Languagestrongdynamic
Windows PowerShellstrongimplicitdynamic
XLstrongnominalstatic
Xojostrongexplicitnominalstatic
XPath/XQuerystrongnominal
LanguageType safetyType expressionType compatibility and equivalenceType checking