Архив за день: Апрель 16, 2015

Лекция 19. Интерфейсы и типы данных (часть 2)

Основное применение систем типов данных в языках программирования — минимизация появления ошибок, связанных с неправильной интерпретацией данных. В «идеальном» языке с точки зрения типобезопасности результат любой операции — корректное значение типа данных, который может быть определен заранее (например, во время компиляции). На практике каждый язык программирования устанавливает свои рамки безопасности типов:

  • Языки со слабой типизацией, такие как C и C++, позволяют интерпретировать данные предельно широко. С одной стороны, это может повысить эффективность работы приложения, с другой — приводит к трудно находимым дефектам.
  • Языки с сильной типизацией накладывают ограничения на потенциально опасные операции, например, неявные преобразования типов. Например, в Python, в отличие от большинства языков программирования, не выполняется автоматического приведения чисел к строкам.

К сожалению, обеспечение абсолютного отсутствия ошибок типов — чрезвычайно трудоемкая задача (фактически, частный случай верификации исходного кода программы), поэтому в современных языках программирования роль системы типов состоит в устранении наиболее тривиальных ошибок; их дальнейший поиск — задача, решаемая в процессе тестирования. В этом плане видна тенденция к увеличению роли человеческого фактора: большинство современных языков программирования (Python, Ruby, JavaScript) обладают динамической типизацией, то есть проверка ошибок типов происходит во время выполнения программы.

Презентация: Лекция 19.

Читать далее Лекция 19. Интерфейсы и типы данных (часть 2)