Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

AlgStr / Библиотека / ЛЕКЦИИ / PZ00 / Крейсман Андрей

.DOC
Скачиваний:
32
Добавлен:
23.03.2015
Размер:
32.26 Кб
Скачать

6. Понятие о типе данных в языках программирования (ЯП).

Понятие о типе данных.

Тип данных понимается как класс переменных, которые могут заменять друг друга в некоторых контекстах.

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

Контроль типов должен обеспечит надежность программ.

Тип данных определяется по существу двумя свойствами:

  • поведением объекта, рассматриваемого типа;

  • структурным описанием,  определяет представление объектов этого типа;

  • (не обязательно) множество объектов рассматриваемого типа;

Под типом объекта понимается:

  • само множество объектов;

  • существенные свойства, т.е. представление объектов этого множества;

  • набор операций обеспечивающий доступ к объектам и позволяющий использовать их свойства;

Тип данных обозначается с помощью некоторой (зависящей от языка) спецификацией типа. Последнюю можно рассматривать как аналог обращения к процедуре периода компиляции, а не выполнения. Это дает:

  • напоминает, что представление типов данных (в период компиляции) извлеченное из спецификации этого типа имеет решающее значение для эффективности (в период компиляции) контроля типов;

  • дает удобную основу для классификации механизмов типов данных в Я.В.У.

Тип данных ::=<множество допустимых значений, набор операций, внутреннее представление>

Встроенные типы данных определяют следующие основные операции:

  • описание переменных;

  • взятие значений и присваивание;

  • сравнение значений;

  • обозначение констант;

  • выбор компонент (для структурированных типов).

Классификация средств определения данных в Я.В.У.

1) Средства структурирования данных (Алгол-60, Фортран);

Типичный набор типов данных включает:

  • cкалярные типы (integer, real, boolean, char, …)

  • структурные (array, record, union, pointer)

В представлении структ. Объектов очевиден их недостаток – поведение неочевидно.

2) Средства определения нового типа (Паскаль, Алгол-68);

Type имя типа = <описание типа>

Преимущества:

- удобное сокращение.

- можно связывать разные типы с одним и тем же представлением.

Недостатки:

- поведение не очевидно

3) Абстрактные типы данных (АТД).

АТД – это, по существу, определение нового понятия в виде класса (одного или более) объектов с некоторыми свойствами и операциями.

(CLU, Modula, Ada)

Эта идея родилась у Morris, B. Liskov.

Выбираем представление объекта и на нем реализуем поведение. Скрываем представление после выполнения реализации выполнения. АТД предусматривает инкапсуляцию – защита представления от несанкционированного доступа.

4) Средства ООП.

ООП – это методология программирования, которая основана на представлении программы в виде совокупности объектов, каждый из которых является реализацией некоторого класса, а классы образуют иерархию на принципах наследуемости.

Элементы ООП:

  • объекты;

  • каждый объект является реализацией некоторого класса;

  • классы организованы иерархически;

Поколения языков программирования.

Первое поколение ЯП: массивы, записи – не имели средств определения новых типов данных (Алгол-60, Фортран);

Второе поколение ЯП: появились средства определения новых типов данных, но не было средств связанных абстрактных типов (Алгол-68, Пасколь);

Третье поколение ЯП: связано с появлением АТД (Симула-67, Concurrent Pascal, CLU, Hephard, Modula);

Четвертое поколение ЯП: появились ООП языки (С++, Object Pascal).