C. OpenMP C ve C++ dil bilgisi

Paralel bir programlama çerçevesi olan OpenMP için C ve C++ dil bilgisi kuralları ve söz dizimi uzantıları hakkında bilgi edinin.

C.1 gösterimi

Dil bilgisi kuralları, terminal olmayan bir ad, ardından iki nokta ve ardından ayrı satırlardaki değiştirme alternatiflerini içerir.

Sözdizimsel ifade terimiopt, değiştirme içinde terimin isteğe bağlı olduğunu gösterir.

sözdizimsel ifade terimoptseq, aşağıdaki ek kurallarla term-seqopt ile eşdeğerdir:

term-seq:
terim
terim-seqterim
terim-seq,terimi

C.2 kuralları

Gösterimi C standardının 6.1. bölümünde açıklanmıştır. Bu dil bilgisi eki, OpenMP C ve C++ yönergeleri için temel dil dil bilgisi uzantılarını gösterir.

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

statement-seq:
beyanat
openmp-yönergesi
statement-seq ifadesi
statement-seq openmp-yönergesi

/* C90'da (ISO/IEC 9899:1990) */

deyim-listesi:
beyanat
openmp-yönergesi
statement-list ifadesi
statement-list OpenMP yönergesi

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

block-item:
beyanname
beyanat
openmp-yönergesi

/* standart ifadeler */

deyimi:
openmp-construct

openmp-construct:
paralel yapı
for-construct
sections-construct
tekil yapı
yapı için paralel
paralel-bölümler-yapısı
master-construct
kritik yapı
atomik yapı
sıralı yapı

openmp-yönergesi:
barrier-yönergesi
flush-yönergesi

yapılandırılmış blok:
beyanat

parallel-construct:
paralel yönergeli yapılandırılmış blok

parallel-direktif
# pragma omp parallel parallel-clauseoptseqnew-line

paralel yan cümle:
Eşsiz-paralel yan tümcesi
data-ifadesi

unique-parallel-yan tümcesi:
if ( ifade)
num_threads ( ifade)

for-construct:
for yönergesi yineleme deyimi

for-directive:
# pragma omp for for-clauseoptseqyeni satır

for-clause:
unique-for-clause
data-ifadesi
nowait

unique-for-clause:
ordered
schedule ( zamanlama türü)
schedule ( zamanlama türü,ifade )

program türü:
static
dynamic
guided
runtime

sections-construct:
bölümler-yönergesi bölüm-kapsamı

bölümler-yönergesi:
# pragma omp sections sections-yan tümcesioptseqnew-line

sections-yan tümcesi:
veri yan tümcesi
nowait

bölüm kapsamı:
{ section-sequence }

bölüm dizisi:
bölüm-yönergeseçenekyapılandırılmış blok
bölüm-dizisi bölüm-yönergesi yapılandırılmış-blok

section-yönergesi:
# pragma omp section yeni satır

tek yapı:
tek yönergeli yapılandırılmış blok

tekli direktif
# pragma omp single tek yan tümcesioptseqyeni satır

tek bir yan tümcesi:
data-cümlesi
nowait

yapı için paralel:
parallel-for-directive yineleme-deyimi

parallel-for-yönergesi:
# pragma omp parallel for parallel-for-yan tümcesioptseqyeni-satır

parallel-for-yan tümcesi:
benzersiz-paralel-kural
unique-for-clause
data-yan tümcesi

paralel-bölümler-konstrüksiyonu:
paralel-bölümler-yönergesi bölüm-kapsamı

parallel-sections-yönergesi:
# pragma omp parallel sections parallel-sections-yan tümcesioptseqyeni-satır

parallel-sections-clause:
Eşsiz-paralel yan tümcesi
data-ifadesi

master-construct:
ana-yönerge yapılandırılmış-blok

ana-yönerge:
# pragma omp master yeni satır

critical-construct:
kritik yönergeli yapılandırılmış blok

kritik yönerge:
# pragma omp critical bölge tümceciğiyeni satırı seç

bölge ifadesi:
(tanımlayıcı)

barrier-directive:
# pragma omp barrier yeni satır

atomic-construct:
atomik-direktif ifade-ifadesi

atomic-yönergesi:
# pragma omp atomic yeni satır

flush-yönergesi:
# pragma omp flush flush-varsyeni satırı seç

flush-vars:
(değişken listesi)

ordered-construct:
siparişli-talimât yapılandırılmış-blok

sıralı-yönerge:
# pragma omp ordered yeni satır

/* standart bildirimler */

bildirim:
threadprivate-yönergesi

threadprivate-yönergesi:
# pragma omp threadprivate ( değişken listesi)yeni satır

data-clause:
private ( değişken listesi)
copyprivate ( değişken listesi)
firstprivate ( değişken listesi)
lastprivate ( değişken listesi)
shared ( değişken listesi)
default ( shared )
default ( none )
reduction ( azaltma işleci:değişken listesi)
copyin ( değişken listesi)

azaltma işleci:
 Bunlardan biri: + \* - & ^ | && ||

/* in C */

değişken listesi:
tanımlayıcı
değişken listesi,tanımlayıcısı

C++ içinde /* */

değişken listesi:
id-ifadesi
değişken-listesi,id ifadesi