Языки программирования - концепции и принципы

Реализуйте пакеты на языке Ada


15.7. Упражнения

 

1. Реализуйте пакеты на языке Ada 95 и классы на языке C++ для работы с множествами.

2. Может ли абстрактный тип в языке Ada 95 или абстрактный класс в язы­ке C++ иметь компоненты-данные? Если так, для чего они могли бы ис­пользоваться?

type Item is abstract tagged

Ada

    record

        I: Integer;



     end record;

3. Напишите программу для неоднородной очереди, основываясь на абст­рактном классе.

4. Реализуйте пакеты/классы для множеств с родовым типом элемента, а не только для целочисленных элементов.

5. Подробно изучите множественное наследование в языке Eiffel и сравни­те его с множественным наследованием в языке C++.

6. Стандартный пример множественного наследования в языке Eiffel -спи­сок фиксированного размера, реализованный с помощью наследова­ния, как от списка, так и от массива. Как бы вы написали такие ADT (аб­страктные типы данных) на языке Ada 95, в котором нет множественно­го наследования?

7. Чем опасно определение защищенных (protected) данных в языке C++? Относится ли это также к пакетам-детям в языке Ada 95?

7.             Изучите структуру стандартной библиотеки в языке Ada 95, в котором широко используются пакеты-дети. Сравните ее со структурой стандар­тных классов ввода-вывода в языке C++.

9. Изучите пакет Finalization в языке Ada 95, который может использовать­ся для написания конструкторов и деструкторов. Сравните его с конст­рукциями языка C++.

10. Какова связь между операторами присваивания и конструкторами/де структорами?

11. Дайте примеры использования CW-объектов.

5Непроцедурные

      языки

      программирования

 

 

 

Глава 16

Функциональное программирование

 

 

16.1. Почему именно функциональное программирование?

 

    В разделе 1.8 мы упоминали, что и Черч и Тьюринг предложили модели для вычислений задолго до того, как появились первые компьютеры.

Содержание раздела