В поисках разъяснений о явных противоречиях в отношении слабо типизированных языков

я думаю, что понялсильная типизация, но каждый раз, когда я ищу примеры слабой типизации, я в конечном итоге нахожу примеры языков программирования, которые просто приводят / конвертируют типы автоматически.

Например, в этой статьеВвод: сильный против слабого, статический против динамического говорит, что Python строго типизирован, потому что вы получите исключение, если попытаетесь:

питон

1 + "1"
Traceback (most recent call last):
File "", line 1, in ? 
TypeError: unsupported operand type(s) for +: 'int' and 'str'

Однако такое возможно в Java и в C #, и мы не считаем их слабо типизированными только для этого.

Ява

  int a = 10;
  String b = "b";
  String result = a + b;
  System.out.println(result);

C #

int a = 10;
string b = "b";
string c = a + b;
Console.WriteLine(c);

В этой другой статье под названиемЯзыки слабого типа Автор говорит, что Perl слабо типизирован просто потому, что я могу объединить строку в число и наоборот без какого-либо явного преобразования.

Perl

$a=10;
$b="a";
$c=$a.$b;
print $c; #10a

Так что тот же пример делает Perl слабо типизированным, но не Java и C #?

Ну и дела, это сбивает с толку

Авторы, похоже, подразумевают, что язык, который предотвращает применение определенных операций над значениями разных типов, строго типизирован, а наоборот означает слабо типизированный.

Поэтому в какой-то момент я почувствовал, что мне кажется, что если язык предоставляет много автоматических преобразований или принуждение между типами (как perl), может оказаться слабо типизированным, тогда как другие языки, которые обеспечивают только несколько преобразований, могут оказаться считается строго типизированным.

Я склонен полагать, однако, что я, должно быть, ошибаюсь в этой интерпретации, я просто не знаю, почему или как это объяснить.

Итак, мои вопросы:

Что на самом деле означает, что язык действительно слабо типизирован?Не могли бы вы упомянуть хорошие примеры слабой типизации, которые не связаны с автоматическим преобразованием / автоматическим принуждением, выполняемым языком?Может ли язык быть типизирован слабо и одновременно строго типизирован?

Ответы на вопрос(9)

Ваш ответ на вопрос