Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La notazione è descritta nella sezione 6,1 standard c.Questa appendice la sintassi mostra le estensioni alla grammatica di base del linguaggio per le direttive e di OpenMP c e C++.
/* in C++ (14882:1998 ISO/IEC */)
rendiconto-seguente:
Istruzione
openmp-direttiva
istruzione rendiconto-seguente
openmp-direttiva rendiconto-seguente
/* in C90 (9899:1990 ISO/IEC */)
rendiconto-elenco:
Istruzione
openmp-direttiva
istruzione dell'rendiconto-elenco
openmp-direttiva dell'rendiconto-elenco
/* in C99 (9899:1999 ISO/IEC */)
blocco-elemento:
dichiarazione
Istruzione
openmp-direttiva
istruzione:
istruzioni standard/* */
openmp-costrutto
openmp-costrutto:
parallelo-costrutto
per-costrutto
sezione-costrutto
singolo-costrutto
parallelo-per-costrutto
parallelo-sezione-costrutto
master-construc
critico-costrutto
atomico-costrutto
ordinare-costrutto
openmp-direttiva:
barriera-direttiva
vampata-direttiva
strutturare-blocco:
Istruzione
parallelo-costrutto:
strutturare-blocco di parallelo-direttiva
parallelo-direttiva:
# parallelo di omp di pragma parallelo-clausolaoptseq nuova riga
parallelo-clausola:
univoco-parallelo-clausola
dati-clausola
univoco-parallelo-clausola:
se ( espressione )
num_threads ( espressione )
per-costrutto:
iterazione-rendiconto di per-direttiva
per-direttiva:
# omp di pragma per* per-clausolaoptseq nuova riga*
per-clausola:
univoco-per-clausola
dati-clausola
nowait
univoco-per-clausola:
ordinato
pianificazione ( pianificazione-tipo )
pianificazione ( pianificazione-tipo , espressione )
pianificazione-tipo:
static
dynamic
guida
runtime
sezione-costrutto:
sezione-ambito di sezione-direttiva
sezione-direttiva:
# sezioni di omp di pragma* sezione-clausolaoptseq nuova riga*
sezione-clausola:
dati-clausola
nowait
sezione-ambito:
{} sezione-sequenza
sezione-sequenza:
sezione-direttivascegliere strutturare-blocco
strutturare-blocco di sezione-direttiva di sezione-sequenza
sezione-direttiva:
# sezione di omp di pragma* nuova riga*
singolo-costrutto:
strutturare-blocco di singolo-direttiva
singolo-direttiva:
# omp di pragma singolo* singolo-clausolaoptseq nuova riga*
singolo-clausola:
dati-clausola
nowait
parallelo-per-costrutto:
iterazione-rendiconto di parallelo-per-direttiva
parallelo-per-direttiva:
# omp di pragma parallelo per* parallelo-per-clausolaoptseq nuova riga*
parallelo-per-clausola:
univoco-parallelo-clausola
univoco-per-clausola
dati-clausola
parallelo-sezione-costrutto:
sezione-ambito di parallelo-sezione-direttiva
parallelo-sezione-direttiva:
# sezioni in parallelo di omp di pragma* parallelo-sezione-clausolaoptseq nuova riga*
parallelo-sezione-clausola:
univoco-parallelo-clausola
dati-clausola
master-costrutto:
strutturare-blocco di master-direttiva
master-direttiva:
# master del omp di pragma* nuova riga*
critico-costrutto:
strutturare-blocco di critico-direttiva
critico-direttiva:
# omp di pragma critico* area-frasescegliere nuova riga*
area-frase:
(identificatore)
barriera-direttiva:
# barriera di omp di pragma* nuova riga*
atomico-costrutto:
espressione-rendiconto di atomico-direttiva
atomico-direttiva:
# omp di pragma atomico* nuova riga*
vampata-direttiva:
# svuotamento del omp di pragma* vampata-varsscegliere nuova riga*
vampata-vars:
(variabile-elenco)
ordinare-costrutto:
strutturare-blocco di ordinare-direttiva
ordinare-direttiva:
# omp di pragma ordinato* nuova riga*
dichiarazione:
dichiarazioni standard/* */
threadprivate-direttiva
threadprivate-direttiva:
**# threadprivate di omp di pragma (variabile-elenco ) nuova riga
dati-clausola:
privato ( variabile-elenco )
copyprivate ( variabile-elenco )
firstprivate ( variabile-elenco )
**lastprivate (**variabile-elenco )
(condivisovariabile-elenco**)**
il valore predefinito (condiviso)
il valore predefinito (nessuno)
riduzione ( riduzione-operatore : variabile-elenco )
copyin ( variabile-elenco )
riduzione-operatore:
uno di: + * - & ^ | && ||
/* */in C#
variabile-elenco:
identificatore
variabile-elenco ,* identificatore*
/* */in C++
variabile-elenco:
ID-espressione
variabile-elenco ,* ID-espressione*