Дипломная работа: Автоматическое распараллеливание программ для распределенных систем. Статическое построение расширенного графа управления

SgStatement *declaredInStmt() - оператор объявления;

SgSymbol *next() - указатель на следующий элемент таблицы.

После выяснения тэга подлежащего анализу идентификатора можно при помощи соответствующей ему глобальной функции получить указатель на объект класса-наследника SgSymbol, содержащего специфические для этого идентификатора данные. Примерами таких производных классов могут служить:

SgVariableSymb – переменная программы;

SgConstantSymb - константа;

SgFunctionSymb - процедура, функция или главная программа.

С каждым идентификатором и выражением соотнесен его тип – скалярный или сложный, представленный объектом класса SgType или одного из его наследников:

int variant() - тэг типа, соответствующий либо скалярному типу, либо классу-наследнику;

int id() - уникальный номер типа в таблице типов;

SgType *baseType() - указатель на базовый тип для сложных типов;

SgType *next() – указатель на следующий элемент таблицы типов.

Пример производного от SgType класса – SgArrayType, объект которого создается для каждого определенного в программе массива. Основные члены этого класса:

int dimension() - размерность массива;

SgExpression *sizeInDim(int i) - выражение, характеризующее длину по i-му измерению.

Каждый файл программы разбит на операторы, для представления которых используется класс SgStatement и его производные:

int variant() - тэг оператора;

int id() - уникальный номер оператора;

int lineNumber() - номер строки в исходном тексте;

SgExpression *expr(int i) - i-е выражение, входящее в оператор (i = 0,1,2);

SgStatement *lexNext() - следующий в лексическом порядке оператор;

SgStatement *lexPrev() - предыдущий в лексическом порядке оператор;

SgStatement *controlParent() - охватывающий управляющий оператор;

SgStatement *lastNodeOfStmt() – для операторов, не являющихся листом дерева разбора, возвращает указатель на последний оператор поддерева.

Аналогично другим классам Sage++ тэг объекта SgStatement позволяет определить класс-потомок SgStatement, соответствующий рассматриваемому оператору. В каждом из них существуют данные и методы, специфические для представляемого этим классом оператора. Эти классы объединены в несколько семейств:

· заголовочные операторы;

· операторы объявления;

· управляющие операторы;

· исполняемые и другие операторы.

Примеры классов, относящихся к этим семействам.

К-во Просмотров: 209
Бесплатно скачать Дипломная работа: Автоматическое распараллеливание программ для распределенных систем. Статическое построение расширенного графа управления