Это сравнение характеристик систем типов и проверка нескольких языков программирования.
Краткие определения
Язык | Безопасность типов | Выражение типа | Совместимость типов и эквивалентность | Проверка типов |
---|---|---|---|---|
ActionScript 3.0 | strong | неявный с необязательной явной типизацией | static | |
Ada | Strong | явный | номинальный | статический |
Алдор | слабый | неявный | статический | |
АЛГОЛ 58 | сильный | явный | статический | |
АЛГОЛ 60 | сильный | явный | статический | |
АЛГОЛ 68 | сильный | явный | структурный | статические и помеченные объединения |
APL | strong | динамический | ||
AutoHotkey | без типа | н / д | н / д | н / д |
Ateji PX | strong | явный | номинальный | статический |
Bash | ? | ? | ? | ? |
BASIC | strong | явный | номинальный | статический |
BLISS | без типа | н / д | н / п | н / д |
BeanShell | strong | номинальный | динамический | |
Boo | strong | неявный с необязательной явной типизацией | статический с необязательной динамической типизацией | |
Bro | strong | неявный с необязательным явным типом | номинальный | статический |
C | слабый | явный | номинальный | статический |
C ++ (ISO / IEC 14882 ) | weak | явный с необязательной неявной типизацией (с использованием auto в C ++ 11) | номинальный | статический |
C# | слабый | неявный с необязательной явной типизацией | номинальный | статический |
чистый | сильный | неявный | статический | |
Clojure | strong | неявный с необязательной явной типизацией | динамический | |
COBOL | strong | явный | номинальный | статический |
ColdFusion (CFML) | сильный | неявный | динамический | |
Common Lisp | сильный | неявный с необязательным явным типизация | структурная для неявной типизации, номинальная для явной типизации | динамический, некоторая статическая проверка (в зависимости от реализации) |
Curl | strong | номинальный | ||
Cython | strong | неявный с необязательной явной типизацией | номинальный (типы расширения) и структурный (Python) | динамический с необязательной статической типизацией |
D | слабый | явный | номинальный | статический |
Дилан | сильный | динамический | ||
Эйфель | сильный | номинальный | статический | |
Эликсир | сильный | неявный | динамический | |
Erlang | strong | неявный | динамический | |
Euphoria | strong | явный, неявный с объектами | номинальный | статический, динамический с объектами |
F# | сильный | неявный | номинальный | статический |
Форт | без типа | н / д | н / п | н / п |
Fortran | strong | explicit | номинальный | статический |
Gambas | strong | явный | номинальный | |
GLBasic | строгий | явный. Неявные объявления, доступные через параметры проекта | номинальный | статический |
Go | строгий | неявный с необязательным явным типом | структурный | статический |
Gosu | strong | частично неявный (вывод локального типа) | номинальный (подклассы) и структурный | static |
Groovy | strong | неявный с необязательным явным типом | динамический с необязательным статическим типом | |
Harbor | strong | неявный с необязательным явным типом | динамический | |
Haskell | strong | неявный с необязательной явной типизацией | номинальный | статический |
Haxe | strong | неявный с необязательным явным типом | номинальный (подклассы) и структурные | статические с необязательной динамической типизацией |
Io | сильная | неявная | динамическая | |
ISLISP | сильная | динамическая | ||
J | сильная | динамический | ||
Java | Strong | явный | номинальный | статический |
JavaScript | w eak | неявный | н / д | динамический |
Julia | strong | неявный с необязательной явной типизацией | структурный для неявной типизации, номинально для явной типизации | динамический |
Joy | strong | динамический | ||
Kotlin | strong | частично неявный (вывод локального типа) | номинальный | статический |
LabVIEW | strong | |||
Lua | strong | неявный | динамический | |
Maple | strong | dynamic | ||
Mathematica | strong | dynamic | ||
MATLAB M-code | strong | dynamic | ||
Modula-2 | weak | явный | номинальный | статический |
Modula-3 | weak | явный | структурный | статический |
MUMPS (M) | без типа | н / д | н / д | н / п |
Оберон | сильный | явный | номинальный | статический и частично динамический |
Objective-C | сильный | явный | номинальный | динамический с дополнительным статическим типом ng |
OCaml | strong | неявный с необязательной явной типизацией | номинальный для записей, структурный для объектов | static |
Object Pascal | strong | явный | номинальный | статический |
Opa | строгий | неявный с необязательным явным типом | структурный | статический |
кислородный | слабый | неявный | статический | |
Оз-Моцарт | сильный | неявный | структурный | динамический |
Pascal | weak | явный | номинальный | статический |
Perl 5 | неявный | динамический | ||
PHP | неявный с необязательной явной типизацией | номинальный | динамический | |
Плюс | сильный | явный | структурный | статический, динамический (необязательно) |
Пролог | динамический | |||
Чистый | динамический | |||
Python | сильный | неявный (с необязательной явной типизацией начиная с 3.5) | н / д | динамический |
Raku | частично неявный | динамический с дополнительным статическим типом g | ||
REBOL | strong | implicit | dynamic | |
Rexx | typeless | n / a, неявный по числам | n / a | статический + динамический по отношению к числам |
RPG | слабый | статический | ||
Ruby | сильный | неявный | н / д | динамический |
Rust | strong | явный с необязательной неявной типизацией | в основном номинальный | статический |
S | динамический | |||
S-Lang | strong | неявный | динамический | |
Scala | strong | частично неявный (вывод локального типа) | номинальный (подклассы) и структурный | статическая |
Схема | сильная | неявная | динамическая (скрытая ) | |
Seed7 | сильная | явная | номинальная | static |
Simula | strong | static | ||
Smalltalk | strong | implicit | dynamic | |
Swift | strong | частично неявный (вывод локального типа) | номинальный (подкласс) и структурный | статический |
Стандартный ML | сильный | импл. icit с необязательной явной типизацией | структурный | статический |
Tcl | динамический | |||
TypeScript | ? | необязательный | структурный | статический |
Visual Basic | сильный | неявный с необязательной явной типизацией | номинальный | статический |
Visual Basic.NET | слабый | явный | статический | |
Visual Prolog | strong | частично неявный | номинальный | статический |
Wolfram Language | strong | динамический | ||
Windows PowerShell | сильный | неявный | динамический | |
XL | сильный | номинальный | статический | |
Xojo | сильный | явный | номинальный | статический |
XPath / XQuery | strong | частично неявный | номинальный | динамический с дополнительным статическим набором |
Дарт | сильный | постепенный набор | номинальный | статический с дополнительным динамическим набором |
Язык | Тип безопасность | Выражение типа | Совместимость типов между композитами ites | Проверка типов |