P. 1
Bab1 Bahasa Dan Tata Bahasa Formal

Bab1 Bahasa Dan Tata Bahasa Formal

|Views: 344|Likes:
Published by Farhan Nasyid

More info:

Published by: Farhan Nasyid on Mar 22, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

01/16/2015

pdf

text

original

-----------

------

-------

BAHASA DAN TATA BAHASA FORMAL

I
"

1-1 PENDAHULUAN. UNTAI
Untuk menjelaskan mengenui hahasa secara tcoruu, dan formal, buik iah klla lihat terlebih dahulu sebuah kalimat xchan-han dalam bahasa Indonesia, yakni: SI KUCING KECIL MENFNDANG BOLA BESAR

Gambar penguraian kalimat di atas mernbentuk struktur pohon, yang discbut pohon sintaks dari kahmat. Di sim kalimat dibagi-bagi berdasar jerus dan fungsi kata. Dari .pelajaran bahasa Indonesia kita mengetahui bahwa kalunat di alas merupakan kalimat yang telah benar susunannya, atau telah benar tata bahasanya.

MENENDANG

Gambar

1-1

2

Tetapi apakah susunan seperti di atas benar untuk kalimat dalam bahasa Inggris ? Kalau kalimat di atas kita tulis dalam bahasa Inggns, dapat drperolch sebuah sentence :

THE LITTLE

CAT KICKS

A BIG BALL

Pohon

sintaksnya

akan berbeda,

yakni .

Gambar 1-2

3

<OBJEK>. misalnya. Pada contoh kita di atas. <KATA SAN DANG>. Seluruh variabel harus dapat diuraikan/dibagi-bagi. KECIL. atau nonterminal Di sini kita menggunakan tanda < > untuk membedakannya dengan pengertian sehari-hari. bukan arti kalimat (semantik). Sementara itu sr. KUCING.. Kita lihat subpohon <SUBJEK> Gambar 1-3 <PREDIKAT> Kita boleh menuliskan penyajian subpohon tersebut sebagai sebuah produksi: atau <KALIMAT> -t <SUBJEK><PREOIKAT> <KALIMAT>· ::= <SUBJEK><PREDIKAT> yang dapat kita artikan : variabel <KALIMA T> dapat dipecah menjadi untai berurutan variabel <SUBJEK> dan <PREDlKAT>. <KATA KEADAAN> dan <KATA KERJA> disebut Kelas Sintaks. atau variabel. BOLA dan BESAR disebut terminal atau token. Studi mengenai teori bahasa ini dikembangkan oleh banyak tokoh terkemuka. sedangkan terminal tidak dapat diuraikan lagi. Dalam pembicaraan ini. Hal ini terutama untuk kebutuhan bahasa pernrogramanan komputer. di antarnya NOAM CHOMSKY. PETER NAUR dan lain-lain lagi. Tentunya salah. Sekarang pembahasan kita lakukan dengan lebih formal. Dengan demikian aturan penguraian kalimat pada contoh dapat dirangkum dalam sebuah himpunan produksi sebagai berikut': 1. Di sini <KALIMAT>. bila kita rnenulis SI KECIL KUCING MENENDANG BOLA BESAR. <SUBJEK> -t<KATA SANDANG><KATA BENDA><KATA KEADAAN> 4 . Dalam pohon sintaks. <KATA BENDA>. <PREDIKAT>. variabel disajikan sebagai simpul bukan daun. JOHN BACKUS. pembahasan kita tekankan pada sintaks kalimat suatu bahasa.---------------------------------- - - Di sini tampak bahwa sintaks kalimat dalam bahasa Indonesia dibandingkan an bahasa Inggris agak berbeda. <KALIMAT> -t<SUBJEK><PREDIKAT> 2. sedangkan terminal disajikan sebagai simpul daun. MENENDANG. <SUBJEK>. simpul bukan daun digambarkan dengan lingkaranl elips sedangkan daun dengan persegi panjang.

6. SIKUCING KECIL MENENDANG BOLA BESAR. Biasanya telah ditentukan apa yang disebut simbol Start (simbol awal). dan <KATA BENDA> ----7 KUCING untuk <KATA BENDA> kedua. <KATASANDANG><KATA BENDA> <KAT A KEADAAN><PREDIKA 1> ===> <KATA SANDANG><KATA BENDA><KATA KEADAAN> <KATAKERJA><OBJEK> ===> <KATASANDANG><KATABENDA><KAT A KEADAAN> <KAT AKERJ A> <KAT A BENDA> <KATA KEADAAN> ===> SIKUCING KECIL MENENDANG BOLA BESAR menggunakan produksi (Catatan: simbol ===> diderivasi atau diuraikan sebanyak k). berupa salah satu dari variabel yang ada. Untuk untai ketiga. Tentu saja kalimat (untai terminal) yang terbentuk tidak tunggal. Pada contoh kita. dan lain-lain lagi. 7. 8. 5. berkebalikan dengan untai pertama. <KALIMA 1> merupakan simbol Start. 4. Derivasi untai pert ama di atas adalah : <KALIMAT> ===> <SUBJEK><PREDIKAT> ===>. Kita harus selalu memulai barisan produksi. kiranya dengan mudah dapat pembaca pahami 5 . ataupun SI KUCING BESAR MENENDANG BOhA KECIL. SI BOLA KECIL MENENDANG KUCING BESAR. <PREDIKAT> ----7<KATAKERJA><OBJEK> <OBJEK>----7<KAT A BENDA><KA TA KEADAAN> <KATA SANDANG> ----7 SI <KAT A BENDA> ----7 KUCING I BOLA <KATA KEADAAN> ----7 KECIL I BESAR <KATA KERJA> ----7 MEMANDANG (Catatan : simbol I berarti atau) Apabila kita memiliki suatu himpunan produksi kita dapat membentuk untai terminal.3. Untai kedua dapat terjadi karena kita menggunakan produksi (6) : <KATA BENDA> ----7 BOLA untuk <KATA BENDA> yang di muka. Proses ini disebut derivasi. Sebagai contoh kita dapat membentuk untai terminal. dari simbol Start. dengan melakukan sederetan produksi menggunakan produksi yang ada. atau singkatnya untai.

serta buat pula derivasi serta pohon sintaksnya.. Contoh kedua berikut ini adalah contoh bagaimana membangun operand yang absah dalam suatu bahasa pemrograman.---------- derivasinya. Sebagai latihan. Sekarang kita bentuk operand berupa INTEGER <OPERAND> ===> ===> ===> ===> ===> ===> ===> ===> ===> <INTEGER> <SIGN><DIGIT><DIT> -<DIGIT><DIT> -2<DIT> -2<DIGIT><DIT> -29<DIT> -29<DIGIT><DIT> -294<DIT> -294/\ atau -294 6 . Kita definisikan himpunan 8 produksi dengan simbol Start adalah <OPERAND> sebagai berikut : (I) <OPERAND> (2) (3) (4) (5) (6) (7) (8) ~ <ID> 1<INTEGER> <ID> ~ <LETTER><LIST> <LEITER> ~ x 1y 1z <LIST> ~ <LETTER><LIST> 1<DIGIT><LIST> <DIGIT> ~ 0 1 I 12 1 3 14 15 1 6 17 1 8 19 <INTEGER> ~ <SIGN><DIGIT><DIT> <SIGN> ~ + i <DIT> ~ <DIGIT><DIT> 1/\ 1/\ (Catatan: /\ adalah terminal/token hampa) Sebagai contoh kita lakukan derivasi <OPERAND> ===> ===> ===> ===> ===> ===> <ID> <LETTER><LIST> y<LIST> y<DIGIT><LIST> y7<LIST> y7/\ atau y7 Di sini kita dapat membentuk sebuah operand yang absah yakni y7. Operand ini tergolong IDENTIFIER. silakan pembaca bentuk untai lain yang mungkin.

dengan simbol Start adalah <EKSPRESI>. x-y+2. Berikut ini kita definisikan himpunan produksi. 3 serta z adalah operand yang dapat dibentuk seperti contoh kedua yang lalu) 7 . -21x. kiranya pembaca menjadi jelas bagaimana bentuk operand yang dihasilkan oleh himpunan 8 produksi tersebut. sebagai berikut : (I) <EKSPRESI> ~ <EKSPRESI><ASOP><SUKU> I <SUKU> (2) <SUKU> ~ <SUKU><MOOP><FAKTOR> (3) <FAKTOR> ~ «EKSPRESI» (4) <ASOP> ~ + I (5) <MOOP> ~ I operand kFAKTOR> * I div Kita dapat memeriksa. tentukan derivasinya (atau pohon derivasinya): 4xy2.Dengan kedua contoh derivasi tadi. y. Kita tahu bahwa dalam notasi infix. Silakan anda tentukan apakah untai terminal berikut ini absah sebagai operand bahasa pemrograman kita tersebut. misalnya « x . xlx2x3x. x123. xxxyyy Contoh ketiga adalah contoh bagaimana suatu ekspresi aritmetika adalah absah dalam notasi infix.25 ) div y) + 3 * z merupakan ekspresi yang absah (di sini x. xx~ +1230. 25. kalau absah. x2y. operator berada di antara dua operand.

Berikut ini pohon derivasinya : <EKSPRESI> <EKSPRESI> <ASOP> <SUKU> + <SUKU> /1~ <MOOP> <SUKU> <FAKTOR> ( /~ <FAKTOR> I <FAKTOR> I I * z I <EKSPRESI> ) 3 I <SUKU> (MOOP) <FAKTOR> I div I (~) <EKSPRESI> <SUKU> I <ASOP> <SUKU> <FAKTOR> I <FAKTOR> I I x 25 I Gambar 1--4 8 .

9 . Dalam pembahasan secara umum notas < > pada variabel tidak kita pakai. yaitu label dari simpul daun berurutan dari kiri ke kanan (pada gambar diberi tanda lingkaran). Variabel bias any a dinyatakan dengan huruf besar A. kita dapat menuliskan produksi : (1) S (2) A (3) B (4) G (5) C (6) D (7) E (8) F -7 -7 -7 -7 -7 -7 -7 -7 AB CDE FG DE a b Ic die f sebagai pengganti produksi untuk contoh pertama kita (S menggantikan <KALIMAT>. Sebagai latihan. pertama-tama kita perhatikan operasi penjumlahan pada bilangan cacah. baik itu berupa kalimat ataupun kata.y) = x + y. Namun bila token berupa huruf. 1.(z + 32) div y) * (3 + z). B. sarna halnya seperti sifatsifat menarik pada operasi aritmetika terhadap bilangan cacah. Sedangkan terminal atau token dinyatakan dengan huruf kecil a. Operasi ini dapat disajikan secara umum oleh fungsi dengan dua variabel : f(x.25) div y) + 3 * z pada frontier dari pohon. c dan sebagainya atau dengan digit 0. 2 dan sebagainya. b. Jadi sebagai contoh. Untuk pengenalan awal. C. S dan sebagainya.- ---- -- ----- -- -- Anda dapat membaca ekspresi «x . silakan dibuat pohon derivasi untuk ekspresi «x + 2 * y) . Di sini banyak terdapat sifat menarik yang diakibatkan oleh operasi terhadap untai. Oleh karena itulah mungkin bisa terjadi kesalah pengertian antara kalimat dan kata. Sekarang kita akan menekankan pembicaraan pada sifat elementer dari untai ter-rninal. A menggantikan <SUBJEK> dan seterusnya). untai token merupakan kata. Kalimat adalah untai token dengan masing-masing token merupakan kata. dengan x dan y bilangan cacah.

terdapat sebuah bilangan i. seperti sifat distributif dan komutatif. Sifat tertutup ini . Tertutup adalah sifat yang perlu bagi suatu sistem. V. Simbol. Banyak sifat penting yang lain. Sifat ketiga. Sebagai contoh adalah himpunan dan operasi pada himpunan tersebut.. 'bbb'. Kita juga diperbolehkan untuk menulis 'ab' . Operasi concatenation juga dapat dilaksankan terhadap barisan karakter. dan { a. Untuk mengerjakan hal itu. yang subalphabet dari alfabet Yunani.ca'.V. anggota dari alfabet dinamakan huruf atau karakter atau token. ~. Menurut sifat tersebut penjumlahan adalah bersifat asosiatif. sedangkan V. Sebagai contoh.V . Secara umum. berlaku x + i = x. IRIS AN. sedemikian sehingga untuk setiap bilangan cacah x. .b. Sifat yang kedua adalah bahwa (x + y) + Z = x + (y + z) = x + y + z. SELISIH. ()} adalah 4 karakter alfabet.. Selanjutnya. V = V" adalah himpunan yang terdiri dari untai dengan panjang n atas V. dan sebagainya..V = V2 adalah himpunan yang terdiri dari untai dengan panjang 2 atas V. dan sebagainya. Yang pertama adalah bahwa jumlah dua bilangan cacah masih merupakan bilangan cacah. . dengan mendefinisikan untai tersebut secara formal.. (Sebagai catatan. membentuk deratan karakter. Himpunan V = {a. kita biasanya menggunakan tanda petik tunggal. ditulis V+. dan operasi penyambungan. untuk menyatakan karakter atau barisan karakter alfabet. sebuah alfabet V adalah himpunan hingga yang tidak kosong (harnpa) dari simbol.z} adalah contoh alfabet yang telah biasa kita kenal. Secara sederhana.V = V2. merupakan sifat yang menjadi ciri sistem aljabar. dengan x..c} adalah ' a'.V = V3 adalah himpunan yang terdiri dari untai dengan panjang 3 atas V. didefinisikan sebagai: 10 1 ~ C5 ~I OJ c m z lJ Gli ~I ~ -j o ~ . Concatenation dari dua karakter alfabet.b. kita harus memperkenalkan lebih dahulu apa yang disebut alfabet atau abjad. 'a' dan 'b'. y dan z bilangan cacah. yakni operasi GABUNGAN. Sebagai contoh : 'ab' concate 'ab' menghasilkan 'abab'. y. dan disebut elemen satuan atau identitas untuk penjurnlahan. yakni 'ab'. terdapat ketika operasi aritmetika seperti penjumlahan dan perkalian dikerjakan terhadap himpunan bilangan cacah.ccba'. Kita mulai pembicarakan tentang untai secara formal. di kiri dan kanannya). yang dimaksud dengan penutup atau closure dari V.V. atau concatenation atau produk. Kita acapkali menggunakan simbol dot (titik) untuk menyatakan operasi concatenation. Sifat ini dinamakan sifat tertutup (closure). .c..I Sistem ini memperlihatkan sifat yang menarik. Pandang bahwa V. untai atas alfabet V = {a.. 'a' sebagai 'aba'. Bilangan i ini adalah bilangan nol. Sebuah Untai (kata atau kalimat) atas alfabet V adalah huruf dari alfabet V atau barisan huruf yang diturunkan dari concatenation terhadap nol atau lebih huruf alfabet V.

'yxxx' .'yxyx' . yakni : x.'xxxy' .. yang sering ditulis sebagai atau 1\..'xy'. (Notasi U adalah GABUNGAN) Untuk melengkapi.y). untuk setiap untai x anggota Y·.'yyxy' .z = x.'xxyy' .'yxx' . 11 .'yyxx' . termasuk untai hampa.'yyyx' . z anggota V'.' xxy".(y. Untai hampa ini sering digabungkan dengan V+.'yyyy'} dan sebagainya.. didefinisikan untai hampa atau nol atau untai epsilon. Untai hampa ini disebut elemen identitas dalam sistem yang dibentuk oleh himpunan Y'.y). Di sini V· adalah hirnpunan semua untai yang dapat dibentuk dari huruf dalam V. untuk setiap untai x.' xyx'.y. V· = {I\} U V U V2 U V3 U .'yxxy' .(' kurung buka ')' kurung tutup . Sifat asosiatif juga dipenuhi oleh sistem. Sebagai contoh yang lain adalah bahasa BASIC. dengan operasi concatenation.'xyxy' .'yxyy' .1\ = I\.'yy'} y3 = {' xxx'. Sistem ini membentuk suatu sistem aljabar berupa semigrup. Beberapa subhimpunan dari V· adalah: y2 = {'xx'. yang disebut semigrup bebas. Alfabet BASIC terdiri dari 26 huruf besar dan 26 huruf kecil. yakni (x.. Sebagai contoh.'xyyy'.'xyxx' .'yyy' } y4 = {'xxxx' .z) = x.'xxyx' . Jadi. :' titik dua '+' plus '=' sarna dengan dan sebagainya. Untai hampa mempunyai sifat elernen identitas.x = x.'yxy' .'yyx' . y. membentuk penutup Kleene atau Kleene's star V· dari V.z. perhatikan himpunan untai V· yang dapat dibentuk dari huruf dalam alfabet V = {x.'yx'. seperti .Y+ = Y U y2 U V' U .'xyyx' . = {I\} U V+. 10 digit dan hirnpunan karakter khusus.' xyy' .

Bahasa yang terdiri dari semua anggota V· secara khusus tidak menarik untuk dibicarakan. akan digunakan dalam pembahasan tentang Grammar dan bahasa berikut ini. y. Arti dari semua program yang secara sintaks benar. Dalam bagian ini kita akan mengkonsentrasikan diri pada dua hal yang berhubungan dengan spesifikasi bahasa pemrograman. yakni alfabet. Oleh karenanya. 3. Spesifikasi yang layak dari bahasa pemrograman meliputi pendefinisian berikut : 1. dan y disebut suffix atau tail dari z dan jika x tidak sarna dengan epsilon. Sebuah bahasa L dapat dipandang sebagai sebuah subhimpunan dari penutup Kleene V· (termasuk untai hampa) dari sebuah alfabet V. apostrof ' . Definisi kita mengenai bahasa L adalah himpunan dari untai atau kalimat atas sebuah alfabet hingga VT' oleh karenanya L adalah Subhimpunan dari V T·' Bagaimana cara menyajikan sebuah bahasa? Bahasa merupakan himpunan hingga ataupun tidak hingga dari kalimat. maka y disebut proper suffix atau proper tail dari untai z. adanya kompilator (compiler) yang khusus. karena terlalu luas. sebuah program dapat dipandang sebagai concatenation dari karakter atas sebuah alfabet. Secara yang sarna. akhirnya membentuk definisi yang tepat dari bahasa itu. 2. 1-2 TATA BAHASA (GRAMMAR) Bahasa pemrograman harus didefinisikan secara tepat. Misalkan x. Beberapa konsep yang telah diperkenalkan di sini tadi. Untai x disebut prefix atau head dari z. Bahasa hingga dapat disajikan dengan menyebut anggotanya satu per satu. Himpunan dari semua program yang secara sintaks benar. untuk menyatakan untai terminal sering kita hapus. dan z merupakan untai atas sebuah alfabet dengan z = xy. Himpunan sirnbol. untuk menghasilkan suatu untai dengan panjang sembarang. Untuk beberapa bahasa pemrograman yang mula-mula sekali diciptakan. maka x disebut proper prefix atau proper head. Jika y bukan untai hampa. yang dapat digunakan untuk menyusun program yang benar. penyebutan seperti 12 .Hanya karakter ini yang digunakan untuk penulisan program bahasa BASIC. Untuk bahasa tak hingga. Catatan: Pada pembahasan berikutnya.

Sebuah kaliamat dalam bahasa Inggris merupakan sebuah struktur yang dinyatakan dalam subjectphrase. dan sebagai suatu alat untuk memberikan beberapa struktur. dan sebagainya. karen a sintaks dari bahasa pemrograman ALGOL 60 telah menggunakan konsep Grammar formal ini. Kata seperti "the" dan "cat" adalah simbol dasar atau simbol primitive dari bahasa ( atau token). kita ulangi sedikit. kita menekankan pembahasan Grammar sebagai suatu sistem mate-rnatika untuk mendefinisikan bahasa. Studi ini disebut Teori Bahasa Formal. digunakan untuk menentukan apakah suatu kalimat tertentu. Pada tahun 1960 konsep Grammar menjadi penting sekali dalam bidang pemrograman. noun. yang menspesifikasikan sintaks dari bahasa. pembahasan pendahuluan pada bagian 1-1. Pandang kalimat "the cat ate a mouse. kita selalu dapat menyajakan suatu bahasa secara hingga. Salah satu cara penyajian hingga tersebut di atas adalah tata bahasa atau Grammar. Di sini berarti juga. Grammar menentukan kalimat pada bahasa. dan terhadap relasi arrtara satu bagian kalimat dengan bagian yang lain. Studi tentang Grammar merupakan subbidang yang penting dalam Ilmu komputer. yang bersangkutan dengan studinya dalam bahasa natural (natural language). Struktur gramatik dari sebuah kalimat biasanya dipelajari dengan cara melakukan anal isis terhadap berbagai bag ian dari kalimat. Grammar merupakan pembentuk atau pengatur struktur dari kalimat pada suatu bahasa. dan sebagainya. Metode kedua untuk spesifikasi bahasa adalah menggunakan konsep mesin abstrak. predicate phrase. Bidang ini pada tahun 1950-an sangat ditekuni oleh Noam Chomsky yang memberikan model matematika untuk Grammar. Untuk lebih jelasnya.itu tidak mungkin. Diagram dari uraian kalimat ini menunjukkan sintaks dari kalimat. yang kiranya berguna bagi kalimat dalam bahasa. terlihat pada Gambar 1-5. Seperti disebutkan terdahulu. l 13 . Jadi Grammar adalah suatu sistem matematik untuk mendefinisikan bahasa dan alat untuk membentuk suatu struktur pada kalimat bahasa. Meskipun demikian. Struktur gramatik dari bahasa ini. ekspresi. Dalam bag ian ini." Struktur atau urainnya (parse). struktur yang diberikan adalah berupa prosedur. Untuk sebuah program komputer. berupa pohon sintaks atau pohon derivasi. yang disebut akseptor (acceptor) atau penerima. yang disebut sebagai struktur gramatik. termasuk atau tidak sebagai kalimat yang benar dalam bahasa. atau sintaks kalimat. Akseptor ini akan menentukan apakah suatu untai (kalimat atau kata) termasuk bahasa. Grammar terdiri dari himpunan hingga yang tak hampa dari aturan atau produksi. Masing-masing simpul merepresentasikan phrase(bagian) dari sintaks. statement.

adalah dengan menyusun "subject phrase" diikuti oleh "verb phrase.V p dapat didefinisikan sebagai "sentence" tersusun dari "subject phrase" diikuti 14 . Struktur bahasa dinyatakan dengan menggunakan simbol "sentence.Sebagai contoh. struktur alternatif ini disebut produksi atau aturan sitnaks. dapat dinyatakan dengan menggunakan simbol berikut : S V 0 A Sp N Vp Np = = = = = = = sentence verb object article subject phrase noun verb phrase noun phrase dengan aturan sebagai berikut: S Sp A A N N N N N Vp V V 0 Np ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ SpVp AN "a' "the' "monkey' "banana' "cat' "mouse' "tree' VO "ate' "climbs' Np AN Aturan pembuatan kalimat di sini. dan masingmasing struktur terdiri dari himpunan terurut dari primitif ataupun kelas sintaks." dan sebagainya. Setiap kelas sintaks terdiri dari sejumlah struktur alternatif." Sedangkan "subject phrase" tersusun dari "verb" diikuti oleh "object." "verb. Seperti telah disebutkan terdahulu. produksi S ~ S." dan "verb phrase" yang disebut kelas sintaks atau kategori sintaks. Sebagai contoh. sintaks dari suatu subhimpunan dari bahasa Inggris. ataupun aturan pergantian." "subject phrase.

Di sini kita terutama menekankan pembahasan tentang sintaks dari bahasa. adalah bahasa Inggris. metalanguage bahasa Inggris adalah bahasa Inggris. tetapi tidak menyatakan arti atau semantiknya. kompilator 15 _ _j . noun verb object noun phrase the cat ate a / article /~ noun mouse Gambar 1.5. kita dapat memproduksikan atau menurunkan atau membentuk sebuah kalimat dalam bahasa. Metalanguage yang digunakan untuk mengajarkan bahasa Jerman di hampir semua univeristas. Sentence Subject phrase Verb phrase article /~ . Diagram dari penguraian kalimat (parse) dari sebuah kalimat menyatakan sintaksnya. Sementara itu.oleh "verb phrase. Sebuah sistem atau bahasa yang menerangkan bahasa yag lain dikenal sebagai metalanguage. yakni membahas tentang Grammar." Simbol ~ memisahkan kelas sintaks. Pohon sintaks suatu kalimat Dengan menggunakan aturan gramatikal untuk contoh kita yang lalu. Sedangkan. dan membahas alat untuk mendefinisikan bahasa dengan sintaks yang telah terdefinisi. Seorang pemrogram komputer pada hakikatnya bertugas menghasilkan program yang sesuai dengan aturan produksi dari bahasa. Kelas sintaks bersama dengan simbol panah dapat kita gunakan untuk menyatakan suatu bahasa.

" Di sini S merupakan simbol Start. kita dapatkan untai the NV p' Proses enumerasi ini diteruskan sampai diperoleh kalimat yang diinginkan." 16 . Jika sintaks benar. . Contoh kalimat lain yang dapat dibentuk menggunakan Grammar di atas." adalah sebagai berikut: S ====> SpVr====> ANVp ====> the NV p ====> the cat Vp ====> the cat VO ====> the cat ate 0 ====> the cat ate N. hendak diproduksi kalimat "the cat ate a mouse." ataupun the banana ate a cat. maka kompilator menghasilkan kode obyek. Temyata dua buah produksi ditemukan. . Misalnya. the cat ate a banana. Aplikasi hal ini hanya mungkin menghasilkan untai ANV p' Berikutnya kita cari produksi dengan mas kiri A. Dapat kita tulis : S ~ S." a monkey climbs the tree.dari bahasa pemrograman dihadapkan dengan masalah untuk menentukan apakah suatu kalimat yang diberikan (program sumber) adalah secara sintaks benar berbasis pada aturan grammatikal yang diberikan. ====> the cat ate AN ====> the cat ate a N ====> the cat ate a mouse Simbol ====> mengartikan penurunan atau derivasi.V p dan kita cari produksi yang mas kirinya adalah Sp' Kemudian ganti S. Dengan memilih produksi A ~ "the" dan mensubstitusikannya ke untai ANV p (di ruas kanan). dengan ruas kanan produksi tersebut. Kita ambil untai S." the monkey climbs a tree. Secara lengkap derivasi atau urutan pembentukan kalimat "the cat ate a mouse. Kita mulai memproduksi S dari mas kiri tanda panah. yakni bahwa untai di sebelah kanan didapat dari pemakaian salah satu produksi terhadap subuntai nonterminal di ruas kiri. adalah misalnya kalimat : " " " " -.Vp' Kita ganti S dengan komposisi yang memungkinkan.

dan I. Banyak program FORTRAN dan PASCAL yang benar tetapi tidak memberikan arti. I I I I I ~ ~ ~ ~ ~ L ID IL a b z 0 1 9 I~ 0~ 0~ 0~ Mudah dilihat bahwa I mendefinisikan sebuah himpunan untai atau nama. Untuk keperluan ini. Misalnya statement untuk melakukan pembagian. Metalanguage yang digunakan untuk menurunkan untai dalam bahasa. atau sebuah huruf diikuti oleh satu atau lebih huruf atau digit. Situasi ini kerapkali diperbolehkan dalam spesifikasi bahasa. Gabungan V N U V T' yakni himpunan yang terdiri dari simbol nonterminal dan 17 . menggunakan Grammar. dan I > IL. himpunan V N dan V T diasumsikan adalah saling lepas. Marilah sekarang kita formalkan gagasan mengenai Grammar dan bagaimana cara menggunakannya. baik pada ruas kiri maupun ruas kanan dari produksi tertentu. meskipun secara gramatikal benar. karena kelas sintaks I adalah muncul. Mata saya mendengar suara merdu" adalah kalimat yang mengandung kesalahan semantik. (alfabet terminal): Anggota V T disebut simbol terminal. Jadi. Elemen V N digunakan untuk mendefinsikan sintaks atau struktur dari bahasa. yang disebut simbol nonterminal. kita misalkan VT adalah himpunan hingga yang tak hampa dari simbol. Di sini.O. Lebih lanjut.Untuk kalimat terakhir ini. Himpunan simbol nonterminal dinyatakan sebagai V N. namun sama sekali tidak memberikan arti (semantiknya). Selain itu contoh lain kalimat bahasa Indonesia. kalimat adalah benar secara sintaks bahasa Indonesia. tak hingga banyaknya. di sini L adalah huruf. Pandang simbol L. 0 adalahdigit. diasumsikan mengandung sebuah himpunan kelas sitnaks atau variabel. dan I adalah identifier. Masing-masing nama terdiri dari sebuah huruf. Himpunan ini terjadi sebagai akibat dari penggunaan secara rekursif terhadap produksi I ~ 10. namun pembaginya adalah nol (division by zero). Produksi yang berikut adalah rekursif dan menghasilkan himpunan tak hingga nama. memang rekursif adalah dasar dari pendefinisian bahasa tidak hingga.

d. I ~ IL. dengan VN = VT = S {I.z.L. D --7 9} z.5.h.. atau secara umum. L --7 Z.7.g. B. Definisi 1-1 Sebuah Grammar didefinisikan sebagai 4-tupel G di sini VT dan VN adalah himpunan simbol terminal dan himpunan nonterminal (kelas sintaks). D --7 1. dan {I ~ L. u. y. X.c. yakni a.n.k. . Panjang dari untai alpha dinyatakan dengan notasi lal.p.VT. dan sebagainya. 0. f.. Q = = 18 .4. D --7 0. kita dapat menulis Grammar berikut : G]={VN.S.D } {a... Biasanya.i. sebuah elemen (a. w.q.1.. kita menggunakan huruf kapital atau besar A.9} I. Simbol terminal dinyatakan dengan huruf kecil x..8. Sebagai contoh dalam mendefinisikan identifier. S suatu elernen ertentu dari VN' yang disebut simbol Start. VT.e. .r.2. L ---7 a.y.o .terminal disebut vocabulary.Z untuk menyatakan simbol nonterminal. S.x. dan menggunakan SI' S2'''' untuk menyatakan anggota vocabulary..j .Q}. L ---7 b..y. s.. . .B. m.C.. l. Q merupakan subhimpunan hingga yang tidak kosong dari relasi (VT U VNr ke (VT U VNr.3.6. dan disebut produksi atau rewriting rule. ditulis sebagai simbol = (V N . t.Y. b. Sementara itu untai dari vocabulary dinyatakan dengan huruf Yunani.. Q). I ~ ID. v. ~) dari Q.

jika ada untai vocabulary U VT)'.S. ditulis sebagai v ==*==> w.Q) adalah Grammar. tidak secara langsung. Jika v ===> W. 19 . Untai v menghasilkan w (w tereduksi dari v. sedemikian sehingga v adalah produksi dari Grammar atau derivasi langsung dari v. dapat dilihat pada tabel 1-1 beberapa ilustrasi dari derivasi langsung. Tabel 1-1 PRODuKsI I LL LDL LDDL L Lx LlL L2DL I~ L L~x D~l D~2 Q1 f\ Q1f f\ f\ L L L L DL Definisi 1-3 G = (V N'VT. anggota (V N U VTr. jika ada untai vocabulary Qo' QI"'" Qn (n > 0). Konsep ini dapat diperluas pada produksi untai w. Untuk Grammar G1 pada contoh. tetapi dalam sejumlah langkah produksi terhadap untai v. sedemikian sehingga ===> Q1 ===> Q2 ===> Qn = w Relasi ==*==> adalah penutup transitif (transitive closure) dari relasi ===>.Definisi 1-2 Untai w disebut penurunan ~ w. atau w adalah diturunkan dari v). ditulis sebagai v Q1 dan Q2 (termasuk untai hampa) anggota (V N = Q1 a Q2' dan w = Q1 13 Q2' dengan a ~ 13 G. maka kita boleh mengatakan bahwa v memproduksi langsung w atau w lang sung diperoleh dari v.

Atau dengan perkataan lain : L(G) = {w I S =='==> w. simbol nonterminal di dalam untai dapat kita produksikan menjadi untai baru (diasumsikan bahwa tidak terdapat aturan A ~ A).Kembali ke Grammar G" kita lihat untai al3 adalah derivasi dari I dengan deretan derivasi sebagai berikut : I ===> ID ===> I1)D ===> LDD ===> aDD ===> aID ===> al3 Catatan: Sebagaimana kita ketahui. Jika 20 . Jika telah didapatkan untai yang terdiri hanya dari simbol terminal. w anggota VT·}. Metavaribel atau kelas sintaks ditulis dengan diapit simbol < dan >. dan selesai. yang adalah sedikit berbeda dari metalanguage yang telah kita gunakan barusan. Bahasa L yang dibentuk oleh Grammar G adalah himpunan semua bentuk sentensial yang semua simbolnya adalah simbol terminal. Definisi 1-4 Bentuk sentensial adalah untai yang dihasilkan melalui derivasi yang berawal dari simbol nonterminal S. Dari situ. kita tidak dapat lagi menghasilkan untai yang lain. Karenanya. maka derivasi itu dikatakan telah lengkap. pada hakikatnya bahasa adalah himpunan bagian dari himpunan semua untai terminal (kalimat) dari V T' 1-3 BENTUK BACKUS-NAUR Pada bagian ini kita bahas bentuk Backus-Naur (BNF) dari metalanguage. Di sini.

dan untai ~. adalah Grammar dengan pembatasan di dalam produksi.kita menggunakan notasi ini. Kelompok kedua. dan I dipakai untuk memisahkan 2 produksi di ruas kanan sebagai hasil produksi ruas kiri yang sarna. yang disebut Grammar Context-sensitive. Simbol ::= dan I berturut-turut dapat diartikan sebagai "didefinisikan sebagai" dan "atau. Bahasa pemrograman populer yang menggunakan deskripsi BNF adalah ALGOL." 1-4 KLASIFIKASI GRAMMAR Di dalam bagian ini. 21 . Grammar ini disebut juga Grammar jenis atau tipe ke-nol. Chomsky mengelompokkan Grammar atas 4 kelompok berdasarkan pembatasan pada produksi.Di sini lui dan I~I berturut-turut menunjukkan panjang untai alpha. dibahas klasifikasi Grammar secara Chomsky. dengan lui <= 1~1. yang didefinisikan sebagai berikut : Definisi 1-5 Grammar Context-sensitive. pendefinisian sebuah identifier di dalam BNF adalah sebagai berikut : <identifier> <letter> <digit> ::= <letter>lidentifier><letter>kidentifier><digit> ::= alblcl Iylz ::= 011121 1819 Catatan : Simbol ::= dapat digunakan sebagai pengganti simbol ~ di dalam Grammar. hanya terdiri dari produksi berbentuk u ~ ~ . atau Grammar tipe pertama. Sebagai contoh. Kelompok pertama adalah Grammar yang mempunyai aturan produksi yang tidak terbatasi. maka simbol <sentence> adalah anggota dari V N sedangkan simbol "sentence" adalah element dari VT Dengan cara ini kita tidak ragu-ragu melihat apakah suatu simbol merupakan anggota V N' ataukah anggota VT• BNF secara intensif telah banyak digunakan dalam pendefinisian secara formal berbagai bahasa pemrograman.

AQ2 dan ~ = Q. Kedua bentuk aturan di atas adalah ekivalen. CB ~ BC 6. BC ~ be 5. bB ~ bb 4. Grammar konteks-sensitif membentuk Bahasa Context-sensitive. S ~ abC 3. cC ~ cc Berikut ini adalah derivasi untuk untai aabbcc S ====> aSBC ====> aabCBC ====> aabBCC melalui produksi melalui produksi 2 melalui produksi 5 22 . Language atau bahasa L(G2)= {anbncnln >= I} adalah contoh bahasa Contextsensitive. maupun Q2 ataupun keduanya adalah hampa) di sini 'Y haruslah tidak hampa.c} S. dan Q2. {a. Jadi suatu Grammar berbentuk : adalah Context-sensitive. adalah pendefinisian dengan cara berikut ini: a dan ~ dalam produksi a ~ ~. S ~ aSBC 2. dalam arti bahasa yang dapat terdefinisikan oleh Grammar yang mempunyai aturan dalam bentuk pertama adalah selalu dapat terdefmisi pula oleh beberapa (mungkin berbeda) Grammar yang mempunyai aturan dalam bentuk kedua.C}. Altematif yang ekivalen dengan pendefinisian Grammar Context-sensitive di atas. jika semua produksinya Ini berarti bahwa nonterminal A digantikan dengan gamma dalam konteks antara Q. Ia dibentuk oleh Grammar G2 sebagai berikut : G2 = ({ S.b. disajikan sebagai a = Q.Di sini. bentuk dari pembatasan di dalam sebuah produksi adalah mencegah ~ menjadi untai hampa.B.rQ2 (adalah mungkinbahwa baik Q.Q) dengan himpunan produksi Q terdiri dari produksi 1.

yakni satu simbol nonterminal. dalam sederetan stetement dari sebuah program sumber.I I ====> aabbCC ====> aabbcC ====> aabbcc melalui produksi 3 melalui produksi 4 melalui produksi 6 Sekarang.b }. Meskipun demikian. Ini berarti Grammar Context-free seluruh produksinya bersifat bahwa ruas kiri hanya terdiri dari satu simbol. atau Grammar tipe ke-2. dan a anggota dari VN (simbol nonterminal).C}. sehingga diperoleh Grammar Context-free. Definisi 1-6 Grammar Context-free. ketika ia digunakan dalam suatu ekspresi. Contoh lain dari Grammar Context-free adalah Grammar untuk membentuk bahasa L(G3) = {a"ba"1n >= I} di sini G3 = ({ S. Grammar G I dari bagian 1-2 adalah contoh dari sebuah Grammar Context-free. {a. dengan lal <== IPI. kita tambahkan pembatasan yang lebih lanjut terhadap produksi dari Grammar Context-sensitive. Grammar Context-free merupakan pembentuk Bahasa Context-free. hanya terdiri dari produksi berbentuk: a ~ p. Grammar Context-free tidak mempunyai kemampuan untuk menspesifikasi (menentukan) bahwa sebuah variabel tertentu telah dideklarasikan. Grammar ini dapat merumuskan sebagian besar sintaks dari bahasa pemrograman.S.Q). dengan Q adalah produksi : S ~ aCa C ~ aCa C~b Derifasi untuk a3ba3 atau aaabaaa. terdiri dari langkah sebagai berikut : S ===> ===> ===> ===> aCa aaCaa aaaCaaa aaabaaa 23 .

b}'S.A.Pembatasan kita yang terakhir nanti akan membawa kita kepada definisi Grammar Regular. hanya terdiri dari produksi berbentuk : a ~ ~.sensitive. Jika L(Ti) koleksi dari bahasa yang dibentuk oleh Grammar Ti. TI . mempunyai derivasi sebagai berikut : S ===> ===> ===> ===> ===> ===> as aaS aaaB aaabC aaabaC aaabaa Keempat tipe Grammar. yakni tipe dengan produksi tidak terbatas. maka L(T3) merupakan himpunan bagian dari L(T2). dengan a anggota V T dan B anggota V N" Bahasa yang dibentuk oleh Grammar seperti ini disebut Bahasa Regular.T2 dan T3. dengan lal <= I~II. tipe Context.a anggota dari VN' dan ~ mempunyai bentuk aB atau a. dengan G4 = ({S. Dengan kata lain.Q) dan produksi adalah : S S B C C ~ as ~ aB -s sc ~ aC ~a Kalimat a3ba2 atau aaabaa. Contoh dari Grammar Regular adalah berikut ini.B. Context-free dan Regular.m >= I}. yang membentuk bah asa : L(G4) = {a'ba=ln. berturut-turu dapat kita sebut sebagai Grammar TO. ke 4 kelas Grammar tersebut membentuk sebuah hirarki. Difinisi 1-7 Grammar Regular atau Grammar tire ke-3. 24 .C}. L(T2) merupakan himpunan bagian dari L(TI).{a. dan L(Tl) merupakan himpunan bagian d~ri L(TO).

marilah kita kembali kepada masalah apakah L(T. Bicarakan bahasa L={anbmanbmln. Kita membahas model akseptor pada Bab yang akan datang. Sebuah bahasa pemrograman yang masalah keputusannya adalah fully decidable disebut rekursif. Untuk menunjukkan L(T. karena Chomsky menemukan suatu Grammar Context-sensitive untuk 25 . yang mula-mula diformulasikan oleh Chomsky (1959) adalah Contextsensitive. Dengan kata lain sebuah Grammar yang tidak dibatasi mempunyai kemampuan pembentukan seperti Mesin Turing.m >=1}. ini bukanlah definisi secara matematis bagi bahasa recursive maupun bahasa recursively enumerable. bila x bukan anggota L.) subset L(To) mengandung perumusan algoritma yang decidable penuh untuk suatu bahasa T" yakni perumusan algoritma yang akan menentukan. jika terdapat sebuah algoritma yang dapat mengatakan ya dalarn waktu yang hingga. bila x anggota L. anggota L(G) atau bukan. Definisi kita di atas dapat secara formal digantikan oleh definisi Turing Mesin. apakah untai x yang diberikan.) subset L(To)' Ini dapat dilihat (Dapat ditunjukkan bahwa "Sebuah himpunan adalah recursively enumerable jika ia merupakan sebuah bahasa '}'O. Masalah keputusan yang bersangkutan dengan bahasa disebut fully decidable jika terdapat sebuah algoritma yang akan menjawab pertanyaan ini dalam waktu yang hingga. Untuk menunjukkan bahwa UTI) adalah himpunan bagian dari L(TO) perIu dilibatkan pengertian dari sebuah problema keputusan yang bersangkutan dengan bahasa. Diberikan sebuah bahasa L dan beberapa elemen (untai) x. Bahasa pemrograman yang masalah keputusannya adalah semidecidable disebut recursively enumerable. Untuk menunjukkan L(T) subset L(T.Bersangkutan dengan rnasing-masing kelas Grzrnmar. Algoritma semacam itu dapat ditemukan pada buku karangan Hopcroft dan Ullman (1969). tetapi mungkin tidak mampu mengatakan tidak. Kita ingat lagi. terdapat kelas mesin abstrak atau akseptor (acceptor) yang akan menerima kelas bahasa yang dibentuk Grammar pembentuknya masing-rnasing. atau L(T.) mengandung pemilihan suatu bahasa Context-sensitive yang khusus yang tidak Context-free. bahwa masalah desision yang berhubungan dengan suatu himpunan recursively enmerable adalah semidecidable.) termuat dalam L(TII) . Jelas. Bahasa ini. masalah keputusan yang bersangkutan dengan himpunan L ini adalah untuk menentukan apakah x termasuk atau tidak dalam L. Seakrang. Masalah keputusan drsebut semidecidable. untuk suatu Context-sensitive Grammar G.

= {a~ban I n >= I}. = {anba m I n.>.bahasa ini. Suatu derivasi dalam sebuah Grammar Regular mempunyai sejumlah karakteristik. Asumsikan bahwa kita mempunyai suatu derivasi untuk untai a'ba". kita sebelum ini. setiap sentential form di dalam derivasi terdiri paling banyak satu nonterminal yang muncul di akhir kanan dari bentuk sentential. namun bukan bahasa I 2 Teorema 1-2 Terdapat Bahasa Context-free yang bukan merupakan bahasa Regular.m >= I}. 0: . bahwa bahasa L. c z -c c rr Q ):> z Z ~ ::0 ):> C -I 26 o os: » ~ . Sebuah Grammar Context-free untuk L. Hal ini terdapat pada teorema berikut. Kedua. adalah Context-dree Regular. Ia juga rnembuktikan bahwa tidak ada satupun Grammar Contextfree dapat membentuk bahasa di atas.. Pertama. Bukti Kita asumsikan bahwa terdapat suatu Grammar Regular yang membentuk bahasa L..semacam itu haruslah secara langsung diproduksi oleh sentensial form anban-1Y. Perhatikan bahasa L. salah satunya adalah dengan himpunan produksi: S ~ as S ~ aB B ~ bC C ~ aC C~ a Dapat terlihat. Pada akhir bagian ini. terdiri dari aturan sebagai berikut: S ~ aAa A ~ aAa A~b Sebuah Grammar Regular bagi bahasa L2 mudah sekali diperolch. Untai terminal. GrammarRegular dan Context-free didiskusikan secara panjang lehar pada hagian akhir dari bab ini. dan L. panjang dari masing-masing bentuk sentential yang berurutan (kecuali yang terakhir) bertambah dengan 1. kita tunjukkan hahwa L() subset L(T2).

Dapat dicatat bahwa sebagian derivasi dapat dihapus atau diulang bila perlu. karena n > q. maka haruslah terminal beberapa simbol nonterminal yang terulang dalam derivasi. derivasi mengandung 2n + 1 langkah. Karena hanya satu dapat ditambahkan ke setiap sentential form pada setiap langkah (kecuali pada langkah pertama). 27 .Misalkan q menyatakan banyaknya nonterminal dari Grammar dan ambil n >q. sesudah pembentukan anb pada bagian kiri. karena tepat satu nonterminal muncul pada rnasing-rnasign langkah (kecuali untk langkah terakhir). karena ia dapat dipergunakan untuk menspesifikasikan sebagian besar konstruksi bahasa pernrograman pacta bahasa pemrograman masa ini. Akibatnya. Kelas Grammar Context-free nanti akan dibicarakan sangat mendalam. Bahasa yagn dihasilkan adalah L. LJ tidak Regular dan L(T) subset L(T). Kita telah secara informal mendiskusikan Klasifikasi Chomsky. Fenomena ini harus terjadi. Juga. Hasilnya adalah derivasi seperti di bawah ini a'b X a'b X a'ba" dengan nonterminal X telah terulang pada beberapa sentential form. Grammar tidak dapat dipakai untuk membentuk tepat an pada bagian kanan. Karenanya.

dan pembagian (I). T.-. himpunan integer nonnegatif yang ganjil himpunan integer nonnegatif yang genap tanpa diperbolehkannya muncul di depan nol 1-4. VT = {i. 1-3. VN = {E. untuk melakukan derivasi dari kalimat berikut : 1. dengan himpunan simbol terminal {a. Simboli diartikan sebagai suatu nama variabel atau identifier. 2.)}. S = E Dengan produksi : F --7 i F --7 (E) T --7 TIP E--7T 28 . yakni Grammar Bahasa Inggris yang umum. 1-2. 3.SOAL LAT/HAN 1-1. pengurangan (-). perkalian (*). Fl. Pakailah contoh Grammar dalam pembicaraan kita yang lalu. b.1. Tulis Grammar dari bahasa sebagai berikut : a. the monkey ate a banana the cat climbs a tree a cat ate the monkey Diketahui Grammar.+.(.*. Diberikan sebuah Grammar yang menyajikan operasi aritmetika sederhana meliputi penambahan (+).b} dan produksi sebagai berikut (huruf kecil menyatakan simbol terminal) S--7a S --7 Sa S--7b S --7 bS Jelaskan bagaimana bentuk umum dari untai yang dibentuk oleh Grammar tersebut.

serta c yang sama. Tunjukkan bahwa kedua definisi adalah ekivalen.. bahwa FORTRAN Himpunan komcntar dalam PLII. serta karakter khusus yang menyatakan blank}. T E- Bcrikan dcrivasi untuk ckspresi sebagai berikut : i--i. I. Contohnya. . anggota {a.. dengan x = x. tetapi CB tidak memenuhi yang lainnya.B. i*i+i 1-5. n ' 1-7.. 1-6. untuk Bahasa 1-8. l. Tentukan sebuah Grammar Context-sensitive (am I m>= I).. Produksi seperti BC ____. b. *.c }*-(/\)} dengan w mengadung banyak a.b} untuk semua I <= i <= n. Bentuk sebuah Grammar Context-sensitive untuk Bahasa ( w I wanggota {a... i-i/i. -. +.b. a) b) Himpunan nama-nama FORTRAN. 9. i*(i+i). Ingat mcngandung tidak Icbih dari 6 karakter. #. Z. Tcntukan sebuah Grammar Context-sensitiveyang akan menghasilkan bah as a L = {xx. E+T E ____. 1-9. . I. maka abab adalah anggota bahasa L. 0. memenuhi definisi yang satu. 29 .x2 ••• x dan x. 1-10. jika x = ab.E ____.C. Dua Definisi yang ekivalen dari Grammar Context-sensitive telah kita berikan. Tuliskan Grammar untuk bahasa berikut. Himpunan dari simbol terminal adalah {A. Berikan sebuah Grammar yang membentuk bahasa L = {w I w berisi untai yang mempunyai sejumlah sama a dan b}.

1-11. Tentukan sebuah Grammar Context-sensitiveyang I p adalah bilangan prima}. membentuk bah as a [a'' 30 . 1-14. yang bersifat bahwa banyaknya () serta banyaknya I adalah ganjil 1-13. Tentukan sebuah Grammar dari Bahasa L =(0'1) I i <> j. Bentuk sebuah Grammar Context-free yang menghasilkan L = {wlw berisi untai yang banyaknya () adalah dua kali banyaknya I}.j > O}. 1-12. dan i. Tentukan Grammar Regular yang membentuk semua untai yang tcrdiri dari 0 dan 1.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->