White Paper
Языки программирования, компиляторы, языковые процессоры: подход компании Интерстрон
Заключительный раздел посвящен исследованиям, связанным с семантическим представлением - ядром продуктов и технологий компании. Несмотря на весьма удачную в целом внутреннюю структуру СП, обеспечивающую достаточную для многих приложений функциональность, мы не полностью удовлетворены текущим состоянием СП. Основная проблема связана с двоичной и, как следствие, закрытой структурой СП. Это означает, что единственная возможность получить доступ к СП - воспользоваться специально разработанным для него программным интерфейсом (API).
Вообще говоря, программный интерфейс - принципиально универсальный способ доступа, с помошью которого можно реализовать любую требуемую функциональность, и для разрабатываемых в настоящее время проблемно-ориентированных языковых процессоров использование API является оптимальным решением. Однако в перспективе, по мере появления новых видов потребностей, программного доступа к семантическому представлению может оказаться недостаточно. Реализация некоторого нового языкового процессора на основе API предолагает разработку полноценной (и, как правило, нетривиальной) программы на языке Си++, что в ряде случаев может оказаться для клиента невозможным и неприемлемым - либо в силу недостаточной квалификации, либо с точки зрения временных затрат, либо по другим причинам. Кроме того, в принципе невозможно предугадать спектр потребностей клиентов, желающих использовать СП для извлечения необходимой им информации о программе; вполне возможно, что для этого удобнее использовать иные, более простые и прямые пути, нежели разработка программы, основанной на API.
Коротко, существо решения, снимающего потенциальные проблемы с СП, можно сформулировать следующим образом: сделать формат СП открытым.
Такое решение дает ряд существенных преимуществ. Во-первых, открытый формат предполагает наличие стандартных и общедоступных средств доступа. Во-вторых, эти средства доступа (в случае достаточно распространенных и популярных форматов) имеются для различных платформ, что автоматически делает решения, основанные на них, переносимыми. В-третьих, для открытого формата, как правило, имеется целый спектр средств доступа различного характера: от обычного API до высокоуровневых специализированных пакетов. Кроме того, для открытого формата можно создать собственные интерфейсы, если имеющихся возможностей недостаточно для конкретных целей.
Наконец, немаловажное обстоятельство заключается в том, что все перечисленные возможности поддерживаются независимыми организациями (зачастую, эти форматы представляют собой просто международные или отраслевые стандарты), что делает решения, основанные на них, жизнеспособными в долговременной перспективе.
Возвращаясь к формату семантического представления, генерируемому компилятором компании Интерстрон, можно утверждать, что наиболее привлекательным открытым форматом для СП является формат XML. Все перечисленные выше достоинства открытых форматов в полной мере применимы к XML. В самом деле, в настоящее время XML представляет собой промышленный стандарт де-факто, признаваемый и поддерживаемый всеми без исключения ведущими мировыми производителями ПО, а также сотнями небольших компаний. Для доступа к XML-документам имеется целый спектр средств доступа (большинство из которых, в свою очередь, стандартизовано) - от традиционных API (на основе спецификаций DOM и SAX) до мощных специализированных технологий преобразования (XSLT) и языков запросов (XQuery).
Принципиальная схема, иллюстрирующая использование XML как основы семантического представления, показана на рис. 6.
 Рис. 7 Архитектура доступа к XML-представлению
В заключение отметим, что принципиально важным является то обстоятельство, что язык XML как таковой, в силу своего иерархической структуры, универсальности и расширяемости, удивительно хорошо подходит для представления всех видов информации, относящейся к ПО,- от синтаксической структуры до разнообразных семантических связей между элементами программы. Более того, способность XML и технологий, основанных на нем, представлять и эффективно обрабатывать слабоструктурированную и неструктурированную информацию (в случае использования для ПП это комментарии, спецификации, выраженные в виде неформальных текстов, информация о версиях и вариантах, задания на компиляцию и сборку и многое другое) делает этот формат очень мощным и потенциально единственным средством представления не только программ как таковых, но и всей информации, относящейся к программному проекту.
В настоящее время компания запускает экспериментальный проект, направленный на создание и апробирование открытого формата для семантического представления программ Си++.
< пред.
|