Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
[ Монахов ] Объектно-ориентированное программир...doc
Скачиваний:
5
Добавлен:
28.09.2019
Размер:
497.66 Кб
Скачать
  1. "Структурные типы" — хрошо;

  2. "Инкапсуляция кода” —удовлетворительно: отсутствуют модули (в стандарте языка) и пакеты; Turbo Pascal лучше удовлетворяет "4)", хоть и имеет не очень продуманные интерфейсы и правила видимости между модулями;

  3. "Инкапсуляция времени выполнения" — полное отсутствие.

Object Pascal (начиная с Delphi 2.0) (без явного применения объектов):

Имеется объектная модель, расширяющая 1), 2), 3), 4). Кроме того, начиная с Delphi 3.0 появились пакеты.

5)"Инкапсуляция времени выполнения" —

а) наличие обработки исключительных ситуаций (exceptions);

b) работа с подпроцессами (threads).

Java:

  1. "Читаемость" — удовлетворительно. Недостатки: переусложненность ряда простых в принципе действий из-за чрезмерного увлечения объектным подходом (например, при действиях с файлами и строками); "рецидивы", ведущие происхождение от С (операнды типа y+=x, функции for,?: и т.п. Зато макросы отсутствуют!). Наличие большого числа маленьких подпрограмм (классов) без возможности их объединения в единое целое.

  1. "Отлаживаемость" —отлично, за исключением правил автоматического приведения типов (указатели ликвидированы!);

  1. "Структурные типы" —хорошо;

  2. "Инкапсуляция кода" —хорошо. Сложность: отсутствие вложенных программ. В некоторой степени решено, начиная с Java 1.1 – вложенные классы;

  3. "Инкапсуляция во время выполнения" — хорошо. Имеются:

  1. обработка исключительных ситуаций;

  2. работа с подпроцессами (threads).

JavaScript/Jscript

1)”Читаемость” – удовлетворительно ( С-образен);

2)”Отлаживаемость” – неудовлетворительно (свободная типизация и при этом слабая типизация), крайне плохая диагностика ошибок;

3)”Структурные типы” – хорошо (благодаря объектной модели);

4)”Инкапсуляция кода” – удовлетворительно (нет модулей, пакетов; вложенные функции появились только в JavaScript 1.2);

5)”Инкапсуляция времени выполнения” – удовлетворительно для JS в IE4 и последующих (есть обработка исключений), неудолетворительно – для других бразеров.

1.2. Основные задачи структурного программирования

Структурное программирование предназначено для решения трех основных задач:

  1. Повышение эффективности разработки программ: а) увеличение скорости написания программ; б) увеличение качества их сопровождения (внесения усовершенствований, исправления ошибок); в) уменьшение стоимости разработки; г) обеспечение возможности групповой работы с проектом; д) обеспечение возможности проектирования ПО (software engineering).

  2. Повышение надежности работы программ. Никому не нужна дешевая, мгновенно написанная и занимающая мало ресурсов программа, которая работает очень быстро, но с ошибками. Из программистского фольклора: “Беремся написать вам ПО : 1. Бысро 2.дешево 3.надежно. – Два из трех.

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

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