Лекция № 9. Алгоритмические языки и предъявляемые к ним требования

Содержание лекции: алгоритмические языки и предъявляемые к ним требования.

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

Одной из проблем, возникающих на начальных этапах разработки программного продукта, является выбор языка программирования, который в свою очередь влияет на выбор среды программирования. Существует масса факторов, влияющих на выбор языка. Однако прежде чем принять решение в пользу того или иного языка программирования, следует иметь представление об их классификации и особенностях. Все существующие языки программирования разделяются на сле­дующие группы [1]:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

а) язык должен быть удобен для программиста;

б) язык должен быть пригоден для данного компьютера;

в) язык должен быть пригоден для решения данной задачи.

Дополнительную информацию по теме можно получить в [1, 2, 3, 7, 17].



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: