Типизация данных

Назначение языка и уровень абстракции.

Большинство современных ЯП универсальны. На каждом из ни можно создать программы. Кроме этого, существуют узкоспециализированные языки, обладать применения которых ограниченно. Например, один из первых ЯП., ASSEMBLER, позволяет создавать максимально быстрые программы, но сейчас используется в основном для создания драйверов.

ASSEMBLER является представителем низкоуровневых языков. Программы на нем содержат инструкции для центрального процессора. Современные ЯП содержат команды, ориентированные на область практического применения. За одной командой ЯП он будет скрываться десятками команд для центрального процессора. Разработчик даже не обязан знать какие команды поддерживает процессор. Достаточно изучить ЯП и на нем создавать программы для разных архитектур, действуя на более высокий уровень абстракции.

Современные ЯП являются высокоуровневыми.

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

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

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

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

ПРИМЕР: Чтобы сохранить натуральное двузначное число, нужно меньше памяти, чем сохранить вещественное (составное) число с десятью знаками после запятой.

Зная эти данные, программа может запретить операции над ними.

ПРИМЕР: Строки текста можно объединить, но нельзя умножать/делить друг на друга.

Фиксироваться в программе типы данных могут по-разному:

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

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

Именно такая типизация используется в Java.

Статическая типизация данных обеспечивает больший контроль за элементами программ со стороны разработчика.

2. Существует также динамическая типизация данных. В ее рамках тип данных для каждого элемента определяется автоматически в процессе работы программы: как только элемент получил некоторое значение, выбирается подходящий тип данных для элемента и далее к нему могут применяться только допустимые этому типу операции. Если элемент получит новое значение, то его тип снова будет пересмотрен.

При динамической типизации данных во время выполнения программы тратятся дополнительные ресурсы на переопределение типов.

Примерами языков с динамической типизацией данных: РНР и Python


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: