Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТП лекции Разделы 1-3.doc
Скачиваний:
20
Добавлен:
28.09.2019
Размер:
1.95 Mб
Скачать

1.5.4. Выбор средств разработки.

Выбор языка программирования. В большинстве случаев никакой проблемы выбора языка программирования реально не существует. Язык мо­жет быть определен:

  • организацией, ведущей разработку; например, если фирма владеет ли­цензионным вариантом C++ Builder, то она будет вести разработки преимущественно в данной среде;

  • программистом, который по возможности всегда будет использовать хорошо знакомый язык;

  • устоявшимся мнением («все разработки подобного рода должны выполняться на C++ или на Java или на ...») и т. п.

Если же все-таки выбор языка реально возможен, то нужно иметь в ви­ду, что все существующие языки программирования можно разделить на сле­дующие группы:

  • универсальные языки высокого уровня;

  • специализированные языки разработчика программного обеспечения;

  • специализированные языки пользователя;

  • языки низкого уровня.

В группе универсальных языков высокого уровня безусловным лидером на сегодня является язык С (вместе с C++). Действи­тельно различные версии С и C++ имеют целый ряд очень существенных до­стоинств:

  • многоплатформенность - для всех используемых в настоящее время платформ существуют компиляторы с языка С и C++;

  • наличие операторов, реализующих основные структурные алгоритми­ческие конструкции (условную обработку, все виды циклов);

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

  • огромные библиотеки подпрограмм и классов.

Все это сделало С и C++ основными языками, используемыми для со­здания операционных систем, и, в свою очередь, служит для них дополни­тельной рекламой. Однако С и C++ имеют и серьезные недостатки:

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

  • наличие синтаксических неоднозначностей, которые также не позволя­ют компилятору контролировать правильность программы;

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

Альтернативой С и C++ среди универсальных языков программирова­ния, используемых для создания прикладного программного обеспечения, на сегодня является Pascal, компиляторы которого в силу четкого синтаксиса об­наруживают помимо синтаксических и большое количество семантических ошибок. Версия Object Pascal, использованная в среде Delphi, сопровождает­ся профессиональными библиотеками классов, упрощающими ведение боль­ших разработок, в том числе и требующих использования баз данных, что де­лает Delphi достаточно эффективной средой для создания приложений Windows.

Кроме этих языков к группе универсальных принадлежат также Basic, Modula, Ada и некоторые другие. Каждый из указанных языков, так же, как C++ и Pascal, имеет свои особенности и, соотвественно, свою область приме­нения.

Специализированные языки разработчика исполь­зуют для создания конкретных типов программного обеспечения. К ним от­носят:

  • языки баз данных;

  • языки создания сетевых приложений;

  • языки создания систем искусственного интеллекта и т. д.

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

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

В настоящее время языки типа Ассемблера обычно используют:

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

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

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

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

Наиболее часто используемыми являются визуальные среды Delphi, C++ Builder фирмы Borland (Inprise Corporation), Visual C++, Visual Basic фирмы Microsoft, Visual Ada фирмы IBM и др.

Между основными визуальными средами этих фирм Delphi, C++ Builder и Visual C++ имеется существенное различие: визуальные среды фирмы Microsoft обеспечивают более низкий уровень программирования «под Windows». Это является их достоинством и недостатком. Достоинством -так как уменьшается вероятность возникновения «нестандартной» ситуации, т. е. ситуации, не предусмотренной разработчиками библиотеки компо­нентов, а недостатком - так как это существенно загружает программиста «рутинной» работой, от которой избавлен программист, работающий с Delphi или C++ Builder. Много нареканий вызывает также интерфейс Visual C++, также ориентированный на «низкоуровневое» программирование.

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