Термин «сильно типизированных» уже не согласованное определение
Это делает «большой» аргумент в flamewar, потому что всякий раз, когда кто-то оказывается ошибочным, они могут просто переопределить его, чтобы означать то, что они хотят, чтобы это означало. Кроме того, этот термин не служит реальной цели.
Лучше просто не использовать этот термин, или, если вы используйте его, строго определите его первым. Если вы видите, что кто-то еще его использует, попросите его определить термин.
У каждого свое определение. Некоторые, которые я видел, являются:
- сильно типизированных = статически типизированных
- сильно типизированных = явно набрали
- сильно типизированных = номинально типизированных
- сильно типизированных = напечатал
- сильно типизированных = не имеет неявный typecasts, только явно
- строго типизировано = вообще не имеет типов
- строго типизировано = что я понимаю/слабо типизировано = что я не понимаю
- сильно типизированных = C++/слабо типизированный = все остальное
- сильно типизированных = Java/слабо типизированный = все остальное
- сильно типизированных = .NET/слабо типизированный = все остальное
- сильно типизированных = мой язык программирования/слабо типизированный = ваш язык программирования
В Тип теории существует понятие одной системы типа будучи сильнее чем другой. В частности, если существует выражение e1
такое, что оно принимается системой типов T1
, но отклонено системой типа T2
, то T2
считается более сильным, чем T1
. Есть две важных вещи, чтобы отметить здесь:
- это сравнительный, не является абсолютным: нет сильного или слабого, только сильнее и слабее
- нет никакого значения, подразумеваемого по термину; сильнее не означает лучше
Возможно, разница будет отвечать на ваш вопрос http://stackoverflow.com/questions/2690544/what-is-the-difference-between-a-strongly-typed-language-and-a-statically-typed – akashchandrakar 2014-11-30 13:05:20