Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ismerje meg az OpenMP-hez készült C és C++ nyelvhelyességi szabályokat és szintaxiskiterjesztéseket, egy párhuzamos programozási keretrendszert.
C.1 jelölés
A nyelvhelyességi szabályok a nem terminálok nevét, majd kettőspontot, majd helyettesítő alternatívákat tartalmaznak külön sorokban.
A szintaktikai kifejezésopt azt jelzi, hogy a kifejezés nem kötelező a helyettesítés során.
Az optseq szintaktikai kifejezés egyenértékű a term-seqopt kifejezéssel a következő további szabályokkal:
term-seq:
kifejezés
term-seqkifejezés
term-seq,kifejezés
C.2 szabályok
A jelölést a C szabvány 6.1. szakasza ismerteti. Ez a nyelvhelyességi függelék az OpenMP C és C++ direktívák alapnyelvi nyelvhelyességi bővítményeit mutatja be.
/* C++ nyelven (ISO/IEC 14882:1998) */
statement-seq:
állítás
openmp-direktíva
statement-seq utasítássorozat
kifejezés-sorozat openmp-utasítás
/* C90-ben (ISO/IEC 9899:1990) */
utasításlista:
állítás
openmp-direktíva
kifejezés-lista kifejezés
utasításlista openmp-direktívája
/* a C99 szabványban (ISO/IEC 9899:1999) */
blokkelem:
nyilatkozat
állítás
openmp-direktíva
/* standard kijelentések */
utasítás:
openmp-construct
openmp-construct:
párhuzamos szerkezet
for-construct
szakaszok felépítése
egyetlen szerkezet
párhuzamos for ciklus
párhuzamos szakaszok-szerkezet
master-construct
kritikus szerkezet
atomszerkezet
rendezett szerkezet
openmp-direktíva:
akadály-irányelv
öblítési direktíva
strukturált blokk:
állítás
párhuzamos szerkezet:
párhuzamos direktíva strukturált blokk
párhuzamos irányelv:
# pragma omp parallel
parallel-clauseoptseqnew-line
párhuzamos záradék:
egyedi-párhuzamos-záradék
data-clause
egyedi-párhuzamos-záradék:
if (
kifejezés)
num_threads (
kifejezés)
for-construct:
for-irányelv iterációs utasítás
irányelv esetében:
# pragma omp for
for-clauseoptseqnew-line
for-clause:
unique-for-clause
data-clause
nowait
unique-for-clause:
ordered
schedule (
ütemezési típus)
schedule (
ütemezési típus,kifejezés)
ütemezési típus:
static
dynamic
guided
runtime
szakasz-szerkezet:
szakaszokra vonatkozó irányelv szakasz hatóköre
szakaszokra vonatkozó irányelv:
# pragma omp sections
sections-clauseoptseqnew-line
szakaszok záradéka:
data-clause
nowait
szakasz hatóköre:
{ szakaszütemezés }
szakasz-sorozat:
section-directiveoptstructured-block
szakaszsorozat szakaszirányelv strukturált blokk
szakasz-irányelv:
# pragma omp section
új sor
egyszerkezetes:
egyirányelmű strukturált blokk
egyetlen irányelv:
# pragma omp single
egymondatosoptseqnew-line
egy záradék:
data-clause
nowait
parallel-for-konstrukció:
párhuzamos irányelv szerinti iteráció-utasítás
párhuzamos irányelv:
# pragma omp parallel for
parallel-for-clauseoptseqnew-line
parallel-for-clause:
egyedi-párhuzamos-záradék
unique-for-clause
data-clause
párhuzamos szakaszok felépítése:
párhuzamos szakaszokra vonatkozó irányelv szakasz hatóköre
párhuzamos szakaszokra vonatkozó irányelv:
# pragma omp parallel sections
parallel-sections-clauseoptseqnew-line
párhuzamos szakaszok záradéka:
egyedi-párhuzamos-záradék
data-clause
master-construct:
mester-irányelv strukturált blokk
fő irányelv:
# pragma omp master
új sor
kritikus szerkezet:
kritikus irányelv strukturált blokkja
kritikus irányelv:
# pragma omp critical
region-phraseoptnew-line
regionális kifejezés:
(azonosító)
akadály-irányelv:
# pragma omp barrier
új sor
atomszerkezet:
atomi direktíva kifejezés-utasítás
atomi direktíva:
# pragma omp atomic
új sor
öblítési irányelv:
# pragma omp flush
flush-varsoptnew-line
flush-vars:
(változólista)
ordered-construct:
rendezett utasítás strukturált blokk
előírt irányelv:
# pragma omp ordered
új sor
/* standard deklarációk */
deklaráció:
threadprivate-direktíva
szálprivát direktíva
# pragma omp threadprivate (
változólista)új sor
data-clause:
private (
változólista)
copyprivate (
változólista)
firstprivate (
változólista)
lastprivate (
változólista)
shared (
változólista)
default ( shared )
default ( none )
reduction (
csökkentési operátor:változólista)
copyin (
változólista)
csökkentési operátor:
Az alábbiak egyike: + \* - & ^ | && ||
/* C-ben */
változólista:
azonosító
változólista,azonosító
/* C++ */
változólista:
id-expression
változólista,id-expression