Здравствуйте, Temoto, Вы писали:
T>Привет.
T>Расскажите, пожалуйста, зачем нужны системы типов. Какие задачи они решают?
T>Например, очевидно, что типы позволяют производить проверки корректности кода, диспатчить полиморфизмы типа оператора сложения (хотя здесь я не уверен).
Полиморфизмы можно и без типов сделать
Ну, вообще говоря они позволяют использовать код повторно при наследовании (доопределение методов и полей, полиморфизм), приводить типы вверх по дереву и унифицированно обращаться с ними, дают компилятору информацию о том как именно хранить и что хранить в объекте (иначе каждый объект должен быть словарём переменных), ограничивать область видимости методов (икапсуляция, абстрагирование), предоставлять стандартные интерфейсы без реализации