Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Meer informatie over de grammaticaregels en syntaxisextensies in C en C++ voor OpenMP, een parallel programmeerframework.
C.1-notatie
De grammaticaregels bestaan uit de naam van een niet-terminal, gevolgd door een dubbele punt, en vervolgens vervangingsopties op afzonderlijke regels.
De syntactische expressie term opt geeft aan dat de term optioneel is binnen de vervanging.
De syntactische expressietermoptseq is gelijk aan term-seqopt met de volgende aanvullende regels:
term-seq:
term
term-seq
term-seq,term
C.2-regels
De notatie wordt beschreven in sectie 6.1 van de C-standaard. Deze grammaticabijlage toont de extensies voor de basistaal grammatica voor de OpenMP C- en C++-instructies.
/* in C++ (ISO/IEC 14882:1998) */
statement-seq:
verklaring
openmp-directive
statement-seq-instructie
statement-seq openmp-directive
/* in C90 (ISO/IEC 9899:1990) */
verklaringenlijst:
verklaring
openmp-directive
instructie statement-list
statement-list openmp-directive
/* in C99 (ISO/IEC 9899:1999) */
block-item:
verklaring
verklaring
openmp-directive
/* standaardverklaringen */
verklaring:
openmp-construct
openmp-construct:
parallel-construct
for-construct
secties-construct
single construct
parallel-for-construct
parallel-secties-constructie
master-construct
kritieke constructie
atomic-construct
geordende constructie
openmp-directive:
barrière-richtlijn
flush-directive
gestructureerd blok:
verklaring
parallelle constructie:
parallel-richtlijn gestructureerd-blok
parallelle richtlijn:
# pragma omp parallel
parallel-componentoptseqnew-line
parallel-clausule:
unieke-parallelclausule
data-clausule
unieke-parallelle-clausule
if (
uitdrukking)
num_threads (
uitdrukking)
for-construct:
iteratie-instructie for-directive
for-directive:
# pragma omp for
for-clauseoptseqnew-line
for-clausule:
unique-for-clause
data-clausule
nowait
unique-for-clause:
ordered
schedule (
planningstype)
schedule (
planningstype,uitdrukking)
planningstype:
static
dynamic
guided
runtime
secties-opbouw
secties-richtlijn sectie-scope
secties-richtlijn:
# pragma omp sections
sections-clauseoptseqnew-line
sectieclausule:
data-clausule
nowait
sectiebereik:
{ section-sequence }
sectiereeks:
section-directiveoptstructured-block
sectie-sequentie sectie-richtlijn gestructureerd-blok
sectierichtlijn:
# pragma omp section
nieuwe regel
één constructie:
gestructureerd blok met één instructie
één richtlijn:
# pragma omp single
enkelvoudige clausuleoptseqnieuwe regel
enkelvoudige zin:
data-clausule
nowait
parallel-for-construct:
iteratie-instructie parallel-for-directive
parallel-for-directive:
# pragma omp parallel for
parallel-for-clauseoptseqnew-line
parallel-voor-clausule:
unieke-parallelclausule
unique-for-clause
data-clausule
parallel-sections-construct
parallel-secties-richtlijn secties-bereik
parallelsectiesrichtlijn:
# pragma omp parallel sections
parallel-sections-componentoptseqnew-line
parallel-sections-clausule:
unieke-parallelclausule
data-clausule
master-construct:
meester-directive gestructureerd-blok
master-directive:
# pragma omp master
nieuwe regel
kritieke constructie:
kritiek-richtlijn gestructureerd-blok
kritieke richtlijn:
# pragma omp critical
regio-uitdrukkingoptnew-line
regio-uitdrukking:
(identificator)
barrière-richtlijn:
# pragma omp barrier
nieuwe regel
atomic-construct:
atomic-directive expression-statement
atomic-directive:
# pragma omp atomic
nieuwe regel
flush-directive:
# pragma omp flush
flush-varsoptnew-line
flush-vars:
(variabele-lijst)
geordende constructie:
geordende richtlijn gestructureerd blok
opgelegde richtlijn
# pragma omp ordered
nieuwe regel
/* standaarddeclaraties */
declaratie:
threadprivate-richtlijn
threadprivate-directive:
# pragma omp threadprivate (
variabelenlijst)nieuwe regel
gegevensclausule:
private (
variable-list)
copyprivate (
variable-list)
firstprivate (
variable-list)
lastprivate (
variable-list)
shared (
variable-list)
default ( shared )
default ( none )
reduction (
reductieoperator:variabelenlijst)
copyin (
variable-list)
reductieoperator:
Een van de volgende: + \* - & ^ | && ||
/* in C */
variable-list:
identificatie
variable-list,identificator
/* in C++ */
variable-list:
id-expression
variable-list,id-expression