Поделиться через


C.2 Правила

Нотация описана в разделе 6,1 c. Это приложение отображает грамматики расширения в грамматике базового языка для директив OpenMP c и C++.

/* в C++ (14882:1998 ISO/IEC) *

выписка-seq.

Оператор

openmp-директивно

выписка-seq выписка

выписка-seq openmp-директивное

/* в C90 (9899:1990 ISO/IEC) *

statement-list.

Оператор

openmp-директивно

оператор выписка-списка

выписка-список openmp-директивный

/* в C99 (9899:1999 ISO/IEC) *

блок-элемент.

объявление

Оператор

openmp-директивно

выписка.

выписки/* стандартные *

openmp-конструкция

openmp-конструкция.

параллельн-конструкция

для-конструкция

раздел-конструкция

единый-конструкция

параллельн-для-конструкция

параллельн-раздел-конструкция

образец-construc

критическ-конструкция

атомарный-конструкция

приказывать-конструкция

openmp-директивно.

барьер-директивно

запись диск-директивно

составлять-блок.

Оператор

параллельн-конструкция.

параллельн-директивный составлять-блок

параллельн-директивно.

количество параллельно omp прагмы параллельн-предложениеoptseq новая линия

параллельн-предложение.

уникально-параллельн-предложение

данные-предложение

уникально-параллельн-предложение.

если ( Выражение )

(num_threads Выражение )

для-конструкция.

для-директивная итерация-выписка

для-директивно.

# omp pragma для* для-предложениеoptseq новая линия*

для-предложение.

уникально-для-предложение

данные-предложение

nowait

уникально-для-предложение.

Упорядочено

расписание ( расписание-тип )

расписание ( расписание-тип  ") Выражение 

расписание-тип.

static

dynamic

направляется

среда выполнения

раздел-конструкция.

раздел-директивная раздел-область

раздел-директивно.

# разделах omp прагмы* раздел-предложениеoptseq новая линия*

раздел-предложение.

данные-предложение

nowait

раздел-область.

{раздел-последовательность}

раздел-последовательность.

раздел-директивноOpt составлять-блок

составлять-блок раздел-последовательности раздел-директивный

раздел-директивно.

# раздел omp прагмы* новая линия*

единый-конструкция.

единый-директивный составлять-блок

единый-директивно.

# omp pragma отдельное* единый-предложениеoptseq новая линия*

единый-предложение.

данные-предложение

nowait

параллельн-для-конструкция.

параллельн-для-директивная итерация-выписка

параллельн-для-директивно.

# omp pragma для параллельного* параллельн-для-предложениеoptseq новая линия*

параллельн-для-предложение.

уникально-параллельн-предложение

уникально-для-предложение

данные-предложение

параллельн-раздел-конструкция.

параллельн-раздел-директивная раздел-область

параллельн-раздел-директивно.

# разделах параллельных omp прагмы* параллельн-раздел-предложениеoptseq новая линия*

параллельн-раздел-предложение.

уникально-параллельн-предложение

данные-предложение

образец-конструкция.

образец-директивный составлять-блок

образец-директивно.

# образец omp прагмы* новая линия*

критическ-конструкция.

критическ-директивный составлять-блок

критическ-директивно.

# omp pragma критическое* область-фразаOpt новая линия*

область-фраза.

(идентификатор)

барьер-директивно.

# барьера omp прагмы* новая линия*

атомарный-конструкция.

атомарный-директивная выражение-выписка

атомарный-директивно.

# атомарный omp прагмы* новая линия*

запись диск-директивно.

# записи на диск omp прагмы* запись диск-varsOpt новая линия*

запись диск-vars.

(переменная-список)

приказывать-конструкция.

приказывать-директивный составлять-блок

приказывать-директивно.

заказанное количество omp прагмы* новая линия*

объявление.

объявления/* стандартные *

threadprivate-директивно

threadprivate-директивно.

omp pragma (# threadprivateсписок переменных )* новая линия*

данные-предложение.

private ( список переменных )

(copyprivate список переменных )

(firstprivate список переменных )

(lastprivateсписок переменных )

shared (список переменных)

(коллективная) значение по умолчанию

значение по умолчанию (нет)

снижение ( уменьшени-оператор . список переменных )

(copyin список переменных )

уменьшени-оператор.

один из. + * - & " ^ " | && ||

/* в c# *

список переменных.

identifier

список переменных "* Идентификатор*

/* */" в C++

список переменных.

ИД-выражение

список переменных "* ИД-выражение*