1.2.5. Сценарии
Языки сценариев развивались постепенно в течение последних 30 лет. Программы на этих языках представляют наборы непосредственно выполняемых команд. Первым из таких языков был sh (сокр. от shell – оболочка). Он состоял из небольшого набора команд, интерпретируемых как вызовы системных подпрограмм для выполнения служебных функций (управление файлами, их простую фильтрацию и т.п.). Затем к этой основе были добавлены переменные, операторы управления, функции и другие возможности. В результате получился язык программирования. Один из наиболее мощных и широко известных языков сценариев – ksh, разработанный Д. Корном из компании Bell Laboratories.
Еще один язык сценариев – awk – был разработан сотрудниками компании Bell Laboratories А. Ахо, П. Уайнбергером, Б. Керниганом. Вначале этот язык предназначался лишь для генерации отчетов, но позже стал универсальным. Расширяемый язык подготовки сценариев tcl был разработан в университете штата Калифорния в Беркли Дж. Остераутом. Затем tcl объединили с языком tk, позволяющим создавать приложения в системе X Window.
Разработанный Л. Уоллом язык Perl сначала представлял собой комбинацию языков sh и awk. После этого он получил значительное развитие и сейчас является мощным, хотя и несколько примитивным, языком программирования. С появлением World Wide Web популярность Perl резко возросла, в основном благодаря тому, что он хорошо подходит для программирования интерфейса CGI (Common Gateway Interface – общий шлюзовый интерфейс). Вообще говоря, языки сценариев внесли не очень большой вклад в развитие традиционных языков программирования. Однако язык Perl имеет несколько интересных особенностей.
Можно назвать еще ряд языков сценариев, порожденных Интернет-технологиями – PHP, JavaScript и т.д.
1.2.6. Специализированные задачи
В последние годы появилось множество специализированных языков программирования для решения узких задач. В их число входит язык RPG, используемый для генерации деловых отчетов, язык APT, созданный для управления программируемыми устройствами, и язык GPSS, разработанный для моделирования систем. В нашей стране к таковым можно отнести скриптовые языки подобные пакету «1С-Предприятие».
1.3. Критерии оценки языков программирования
Цель настоящего курса – изучение концепций, лежащих в основе конструкций и возможностей языков программирования. Мы также должны уметь оценивать эти концепции, особенно в плане их влияния на разработку и эксплуатацию ПО. Любой перечень критериев такой оценки будет спорным, поскольку всегда найдутся специалисты по вычислительной технике, имеющие различные точки зрения на относительную ценность того или иного свойства языка. Мы приведем лишь критерии, признанные большинством ученых.
1.3.1. Читабельность
Одним из важнейших показателей языка программирования является легкость чтения и понимания написанных на нем программ. На заре развития разработка ПО в основном сводилась к написанию кода. Однако в 1970-х годах была создана концепция жизненного цикла ПО. Значение собственно кодирования команд снизилось, а основной частью жизненного цикла ПО стали считать его эксплуатацию, особенно с точки зрения стоимости. Поскольку легкость эксплуатации (сопровождения) в основном определяется читабельностью программ, то она стала важной характеристикой качества программ и языков программирования.
Читабельность необходимо рассматривать лишь в контексте определенной прикладной области. Если вычислительная программа была написана на языке, для этого не предназначенном, то она может оказаться неестественной и запутанной, так что читать ее будет крайне трудно.
Далее описываются характеристики, способствующие улучшению читабельности языка программирования.