Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Pelajari tentang aturan tata bahasa dan ekstensi sintaksis di C dan C++ untuk OpenMP, kerangka kerja pemrograman paralel.
Notasi C.1
Aturan tata bahasa terdiri dari nama untuk non-terminal, diikuti oleh titik dua, diikuti oleh alternatif pengganti pada baris terpisah.
Keikutsertaan istilahekspresi sindikat menunjukkan bahwa istilah bersifat opsional dalam penggantian.
Optseq istilahekspresi syntactic setara dengan istilah-seqmemilih dengan aturan tambahan berikut:
term-seq:
istilah
istilah term-seq
istilah term-seq,
Aturan C.2
Notasi dijelaskan dalam bagian 6.1 dari standar C. Lampiran tata bahasa ini menunjukkan ekstensi ke tata bahasa dasar untuk arahan OpenMP C dan C++.
/* dalam C++ (ISO/IEC 14882:1998) */
statement-seq:
pernyataan
openmp-direktif
pernyataan statement-seq
pernyataan-seq openmp-direktif
/* dalam C90 (ISO/IEC 9899:1990) */
daftar-pernyataan:
pernyataan
openmp-direktif
pernyataan daftar pernyataan
pernyataan-daftar openmp-direktif
/* dalam C99 (ISO/IEC 9899:1999) */
block-item:
deklarasi
pernyataan
openmp-direktif
/* pernyataan standar */
Pernyataan:
openmp-construct
openmp-construct:
konstruksi paralel
untuk konstruksi
sections-construct
konstruksi tunggal
paralel-for-construct
konstruksi bagian paralel
konstruksi master
konstruksi kritis
konstruksi atom
konstruksi yang diurutkan
openmp-direktif:
barrier-direktif
flush-direktif
blok terstruktur:
pernyataan
konstruksi paralel:
blok terstruktur paralel-direktif
direktif paralel:
# pragma omp parallel
klausa paraleloptseqbaris baru
klausa paralel:
klausa paralel unik
klausa data
klausa paralel unik:
if (
Ekspresi)
num_threads (
Ekspresi)
untuk konstruksi:
pernyataan iterasi for-directive
untuk direktif:
# pragma omp for
untuk klausuloptseqbaris baru
untuk klausul:
unik-untuk-klausa
klausa data
nowait
unik-untuk-klausa:
ordered
schedule (
jenis jadwal)
schedule (
jenis, jadwal Ekspresi )
jenis jadwal:
static
dynamic
guided
runtime
bagian-konstruksi:
direktif-bagian lingkup-bagian
direktif bagian:
# pragma omp sections
sections-clauseoptseqbaris baru
sections-clause:
klausa data
nowait
cakupan bagian:
{ section-sequence }
seksi-urutan:
bagian-direktifoptblok terstruktur
urutan-seksi direktif-seksi blok-terstruktur
direktif bagian:
# pragma omp section
baris baru
konstruksi tunggal:
blok terstruktur direktif tunggal
direktif tunggal:
# pragma omp single
klausa tunggaloptseqbaris baru
klausa tunggal:
klausa data
nowait
paralel-for-construct:
pernyataan iterasi paralel-untuk-direktif
paralel-untuk-direktif:
# pragma omp parallel for
paralel-for-clauseoptseqbaris baru
paralel-for-clause:
klausa paralel unik
unik-untuk-klausa
klausa data
paralel-sections-construct:
Lingkup bagian paralel-sections-direktif
paralel-sections-direktif:
# pragma omp parallel sections
paralel-sections-clauseoptseqbaris baru
paralel-sections-clause:
klausa paralel unik
klausa data
konstruksi master:
master-direktif blok terstruktur
direktif master:
# pragma omp master
baris baru
konstruksi kritis:
blok terstruktur kritis-direktif
direktif kritis:
# pragma omp critical
frasa wilayahoptnew-line
frasa wilayah:
(pengidentifikasi)
barrier-direktif:
# pragma omp barrier
baris baru
konstruksi atom:
pernyataan ekspresi direktif atom
direktif atom:
# pragma omp atomic
baris baru
direktif flush:
# pragma omp flush
flush-varsmemilihbaris baru
`flush-vars`:
(daftar variabel)
konstruksi yang diurutkan:
blok-terstruktur arahan-terurut
direktif yang diurutkan:
# pragma omp ordered
baris baru
/* deklarasi standar */
deklarasi:
threadprivate-directive
direktif threadprivate:
# pragma omp threadprivate (
daftar) variabel baris baru
klausa data:
private (
daftar variabel)
copyprivate (
daftar variabel)
firstprivate (
daftar variabel)
lastprivate (
daftar variabel)
shared (
daftar variabel)
default ( shared )
default ( none )
reduction (
daftar variabel operator:reduksi)
copyin (
daftar variabel)
operator pengurangan:
Salah satu dari: + \* - & ^ | && ||
/* dalam C */
daftar variabel:
pengidentifikasi
pengidentifikasi daftar,variabel
/* di C++ */
daftar variabel:
id-expression
ekspresi id daftar,variabel