- •3. Объекты данных в языках программирования
- •3.1. Имена
- •3.2. Константы
- •3.3. Переменные
- •4. Механизмы типизации
- •4.1. Статические и динамические типы данных
- •Механизмы типизации
- •4.2. Слабая типизация
- •4.3. Строгая типизация
- •4.4. Производные типы
- •Var temp_weight, sum_weight: integer;
- •I: integer;
- •Var temp_weight, sum_weight: weight;
- •I: index;
- •4.5. Эквивалентность типов
- •4.6. Наследование атрибутов
- •4.7. Ограничения
- •4.8. Подтипы
3. Объекты данных в языках программирования
Язык программирования представляет собой абстрактную модель, в которой объекты данных и операции специфицированы в проблемно-ориентированных терминах.
Объект данных – один или несколько однотипных элементов данных, объединенных в одно целое.
Объект данных называется элементарным, если представляющее его значение является единым целым.
Объект данных называется структурным, если он представляет собой совокупность некоторых других объектов.
3.1. Имена
Имя (идентификатор) – строка символов, используемая для обозначения некоторой сущности в программе.
Пример: переменные, типы, метки, подпрограммы, формальные параметры и др.
Ключевые слова – это имена, имеющие особое значение только в определенном контексте, например, begin, end, if.
Возможность переопределения ключевых слов ухудшает надежность и удобочитаемость языка, усложняет процесс компиляции.
Предопределенные имена – имеют конкретный смысл, но не являются ключевыми словами.
Пример: имена встроенных типов данных и функций.
Предопределенные имена можно переопределять.
3.2. Константы
Константа – объект данных, имя которого связано со значением в течение всего времени жизни.
Виды констант:
Литералы;
Именованные константы.
Литерал – буквальная запись значения константы.
Пример: 25, ‘a’, 34.56
Именованная константа – объект данных, который связывает имя с буквальным значением константы.
3.3. Переменные
Переменная – объект данных, который явным образом определен и именован в программе.
Простая переменная – именованный элементарный объект данных.
Атрибуты переменной:
Имя;
Адрес;
Значение;
Тип;
Время жизни;
Область видимости.
Имя переменной – идентификатор, используемый в программах для ссылки на значение переменной.
Переменная представляет собой абстракцию области памяти – ячейки или совокупности ячеек памяти компьютера.
Адрес переменной – это адрес области памяти, с которой связана данная переменная.
Выделение памяти – для связывания с переменной свободная область памяти соответствующего размера извлекается из пула доступной памяти.
Освобождение памяти – разрыв связи между переменной и областью памяти, которая возвращается обратно в пул доступной памяти.
Выделение и освобождение памяти выполняется специальными программами управления памятью.
Альтернативные переменные (alias-имена) – несколько имен переменных связаны с одной и той же областью памяти.
Пример: FORTRAN – оператор EQUIVALENCE;
C++ – объединения union; Ada, Pascal – записи с вариантами.
Значение переменной – содержимое ячейки или совокупности ячеек памяти (определенная комбинация битов), связанных с данной переменной.
Тип переменной связывает переменную с множеством значений, которые она может принимать.
Время жизни переменной – время, в течение которого переменная связана с определенной областью памяти.
Область видимости переменной – последовательность операторов программы, из которых можно обратиться к этой переменной.
4. Механизмы типизации
Типы могут определяться статически и динамически. При статическом определении типа связывание осуществляется при трансляции программы, при динамическом – во время выполнения программы.