Существующая ныне система стандартизации языков программирования не способствует выполнению этой задачи. Главная проблема состоит в том, что при описании стандарта семантическая составляющая не отделена от синтаксиса и лексики. Кроме того, при модернизации стандартов комитеты ISO/ANSI предпочитают скорее добавлять в язык новые возможности, чем исключать редко используемые, что приводит к неоправданному синтаксическому расширению языков.

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

Области пересечения и объединения языков программирования

Рис. 6.8. Области пересечения и объединения языков программирования Как видно из приведенной схемы, существует общая для всех современных языков семантическая зона, в которую входят конструкции, принадлежащие всем (или большинству) языков программирования. Таким образом, семантику каждого языка программирования можно условно поделить на "область пересечения" (общие для всех языков конструкции) и "область объединения" (специфические для данного языка конструкции). Создание входного языка для многоязыкового компилятора можно произвести двумя различными способами:

1. Использовать только общие конструкции (область пересечения), отбросив все "особенные" конструкции языков, как необязательные. Это приведет к усечению всех участвующих в работе языков программирования.

2. Использовать все имеющиеся в языках конструкции (область объединения). В этом случае каждый из языков должен быть дополнен конструкциями, имеющимися в других языках программирования. Этот подход чреват чрезмерным расширением семантической базы.

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

Стремительное развитие компьютерной индустрии не может не поставить перед создателями "средств производства" программ (компиляторов) новые задачи. Компиляторы должны стать более "адекватными" эпохе визуального программирования и Интернета. Последнее время высока популярность VWVW-программирования. Языки \ЛЛЛЛЛ/-программирования обладают рядом свойств, которые позволяют использовать их на платформе, специализированной для работы в качестве сервера. Чаще всего это интерпретатору (такие, как Perl, PHP), позволяющие использовать их на сторону сервера, или языки, поддерживаемые клиентом (браузеры) -HTML., ХМ С; Java, JavaScript, или специальные модули (plug-in), расширяющие клиента - Flash, Унификация языков программирования и создание общепринятой семантической базы - необходимые условия продолжения прогресса в этой области программного обеспечения, и, в конечном итоге, всей компьютерной индустрии.

Основы информатики и вычислительной техники-стр.46 | Основы информатики и вычислительной техники | Основы информатики и вычислительной техники-стр.48