Введение


Язык системной интеграции

        Языки программирования принято делить на 6 поколений. Однако в эту классификацию не укладывается большая группа так называемых скрипт-языков (СЯ). Программы на СЯ обычно вставляются в исходных текстах в приложения для их гибкой настройки, или, наоборот, служат мощным средством для объединения ПО, написанного на других языках. Но большинство разработчиков считают СЯ только вспомогательным инструментом. Например, JavaScript обычно воспринимается как урезанная Java и используется в основном для создания бегущих строчек в браузере. Программисты иногда даже возмущаются отсутствием в JavaScript типизации, что говорит о полном непонимании предназначения этого языка. Ведь JavaScript обладает уникальными возможностями по интеграции объектов Windows — например, автоматическим управлением Internet Explorer, который является OLE-объектом. При работе с ним использовать переменные конкретных типов неудобно или невозможно.

        Джон Аустираут, создатель скрипт-языка Tcl/Tk, назвал СЯ языками системной интеграции, потому что они ориентированы прежде всего на работу не с элементарными данными, а с объектами операционной среды, что позволяет очень эффективно использовать возможности ОС, интегрируя ее ресурсы с помощью языков, которые на высоком уровне, без написания тысяч строк кода, двумя-тремя командами позволяют легко манипулировать системными объектами и «склеивать» их в одно целое. По мнению Аустираута, принципы ООП не завоевали должной популярности только потому, что их пытаются реализовывать на уровне примитивных операторов языков третьего поколения (3GL) типа Си++, что приводит к громоздкому и неуклюжему коду, а не на уровне свойств и методов самих объектов. В отличие от ЗGL-языков, в современных СЯ парадигма ООП воплощена наиболее полно. Она присутствовала даже в старых СЯ типа командных языков MS DOS или UNIX, которые позволяют довольно эффективно работать с объектами ОС — файлами и программами.

        Практически все СЯ — интерпретируемого типа (в последнее время для ускорения интерпретации все более активно используется компиляция в промежуточный код). Это связано с тем, что для работы с объектами ОС язык должен обладать высокой гибкостью, а процесс выполнения системных программ часто зависит от многих факторов, которые трудно предусмотреть на этапе компиляции. Для повышения гибкости в СЯ обычно отсутствует строгая типизация. Основной элемент данных в этих языках — строка, которую при работе с двоичными объектами нередко надо интерпретировать как последовательность байт. Кроме того, для настройки крупной системы постоянно возникает необходимость быстрого создания или модификации небольших программ, для чего удобнее использовать интерпретаторы. Конечно, СЯ проигрывают компилируемым 3GL-языкам в производительности (оператор Си транслируется в среднем в 3-7 машинных команд, а для выполнения одного оператора СЯ требуются сотни тысяч команд), но позволяют разрабатывать ПО в десятки раз быстрее. К тому же они более легки в изучении, что очень важно при подготовке персонала для сопровождения ОС, сетей и т. д.
Hosted by uCoz