Sintaksis
Sintaksis suatu bahasa program menguraikan struktur program tanpa pertimbangan [dari;ttg] maksud/arti mereka.
Kata kunci dan ungkapan: Ungkapan reguler, tatabahasa reguler, context-free tatabahasa, menguraikan(kalimat) pohon, kerancuan, BNF, kepekaan konteks, tatabahasa atribut, menerima warisan dan manyatukan atribut, penyaring gambar tv, analisa berhubungan dengan kamus, parser, ilmu semantik statis.
Sintaksis mempunyai kaitan dengan struktur tataruang dan program dengan penampilan mereka. unsur-unsur [yang] Yang syntactic suatu bahasa program *apakah ditentukan oleh perhitungan model dan perhatian pragmatis. Ada dengan baik dikembangkan perkakas ( reguler, context-free dan tatabahasa atribut) untuk/karena uraian [menyangkut] sintaksis bahasa program. Tatabahasa *apakah sedang menulis ulang aturan dan mungkin (adalah) digunakan untuk generasi dan pengenalan kedua-duanya program. Tatabahasa adalah tidak terikat pada computational model dan adalah bermanfaat untuk uraian [menyangkut] struktur bahasa secara umum.
Context-Free tatabahasa *apakah digunakan untuk menguraikan curah [menyangkut] struktur bahasa; ungkapan reguler *apakah digunakan untuk menguraikan unit yang berhubungan dengan kamus ( tanda); tatabahasa atribut *apakah digunakan untuk menguraikan konteks bagian [yang] sensitip [menyangkut] bahasa [itu]. atribut Tatabahasa *apakah diuraikan di (dalam) suatu bab kemudiannya.
dan Abjad Bahasa
Suatu bahasa secara formal digambarkan oleh kata-kata nya dan struktur [kalimat;hukuman] nya. Di (dalam) bagian ini, kita kembang;kan barang kelontong dasar [kalimat;hukuman] dan kata-kata sebagai dawai-dawai kata-kata. Koleksi kata-kata dari [kalimat;hukuman] yang *apakah dibangun [disebut/dipanggil] suatu abjad dan suatu bahasa adalah suatu koleksi dawai-dawai membentuk dari unsur-unsur [menyangkut] abjad [itu]. Suatu dawai dengan tidak ada kata-kata dari abjad [memanggil/hubungi] dawai yang kosong dan ditandai oleh lamda. Definisi 2.1 menyusun barang kelontong ini.
Definisi 2.1: dan Abjad Bahasa
S
Suatu abjad adalah suatu nonempty, [yang] terbatas satuan lambang.
L
Suatu bahasa L (di) atas suatu abjad adalah suatu koleksi dawai-dawai unsur-unsur. mengosongkan dawai. adalah suatu dawai dengan tidak ada lambang sama sekali.
S* Satuan dari semua dawai-dawai unsur-unsur [yang] terbatas mungkin ditandai oleh*.. adalah suatu unsur*.
Suatu dawai adalah suatu urutan lambang [yang] terbatas dari suatu abjad, Sigma. Penggabungan dua dawai-dawai v dan w adalah dawai [itu] wv yang diperoleh dengan menambahkan catatan dawai w di sebelah kanan dawai v.
Bahasa program memerlukan dua tingkatan uraian, tingkatan yang paling rendah adalah sebagai suatu tanda. Tanda suatu bahasa program adalah kata kunci, identifiers, tetap dan lain lambang yang muncul di (dalam) bahasa [itu]. Di (dalam) kekosongan program utama()
printf("Hello World\N");
tanda adalah kekosongan, utama,(,),{, printf,(, " Salam World\N",),;,}
Abjad untuk bahasa [menyangkut] tanda yang berhubungan dengan kamus adalah karakter menetapkan [selagi/sedang] abjad untuk suatu bahasa program adalah satuan tanda berhubungan dengan kamus; Suatu dawai di (dalam) suatu bahasa L [disebut/dipanggil] suatu [kalimat;hukuman] dan adalah suatu unsur Sigma*. [Dengan] begitu suatu bahasa L adalah suatu subset Sigma*. Sigma+ adalah satuan dari semua nonempty dawai-dawai Sigma mungkin, maka Sigma+= Sigma*-{ lamda}. Suatu tanda adalah suatu [kalimat;hukuman] di (dalam) bahasa untuk tanda dan suatu program adalah suatu [kalimat;hukuman] di (dalam) bahasa program.
Jika L0 dan L1 adalah bahasa, kemudian L0L1 menandakan bahasa [itu] { xy| x adalah di (dalam) L0, dan y adalah di (dalam) L1}. Itu adalah L0L1 terdiri dari dari semua penggabungan [yang] mungkin suatu dawai dari L0 yang diikuti oleh suatu dawai dari L1.
dan Tatabahasa Bahasa
Pemesanan lambang di dalam suatu tanda *apakah diuraikan oleh ungkapan reguler. Pemesanan lambang di dalam suatu program *apakah diuraikan oleh context-free tatabahasa. Di (dalam) bagian ini, kita menguraikan context-free tatabahasa. Suatu bagian kemudiannya menguraikan ungkapan reguler. Context-Free tatabahasa menguraikan bagaimana unit berhubungan dengan kamus ( tanda) dikelompokkan ke dalam struktur penuh arti. Abjad ( satuan unit berhubungan dengan kamus) terdiri dari [menyangkut] kata kunci, identifiers, tetap, pemberian tanda baca lambang, dan berbagai operator. [Selagi/Sedang] context-free tatabahasa adalah cukup untuk menguraikan kebanyakan bahasa program membangun, mereka tidak bisa menetapkan context-sensitive aspek suatu bahasa seperti kebutuhan yang suatu nama harus diumumkan [sebelum/di depan] [itu] disesuaikan, [order/ pesanan] dan jumlah parameter nyata di (dalam) suatu panggilan prosedur harus memenuhi [order/ pesanan] dan jumlah argumentasi formal di (dalam) suatu deklarasi prosedur, dan jenis itu harus dapat dipertukarkan timbal balik dari suatu operator tugas.
Suatu tatabahasa terdiri dari suatu koleksi [yang] terbatas [dari;ttg] kategori bersifat tatabahasa ( e.g. kata benda ungkapan, ungkapan katakerja, artikel, kata benda, katakerja dll), kata-kata individu ( unsur-unsur [menyangkut] abjad), [atur/perintah] untuk gambarkan [order/ pesanan] di mana unsur-unsur [menyangkut] kategori yang bersifat tatabahasa harus nampak dan di sana harus suatu kategori bersifat tatabahasa paling umum. Gambar 2.1 berisi suatu context-free tatabahasa untuk suatu fragmen Bahasa Inggris.
Gambar 2.1:G0 suatu tatabahasa untuk suatu fragmen Bahasa Inggris
kategori Yang bersifat tatabahasa adalah: S, NP, VP, D, N, V.
Kata-Kata adalah: a,, kucing, tikus, peluru/bola, anak laki-laki, anak perempuan, [berlari/ menjalankan], memantul, menangkap.
tatabahasa Aturan adalah:
S--> NP VPNP--> NNP--> D NVP--> VVP--> V NPV--> [berlari/ menjalankan]| yang dipantulkan| caughtD--> a| theN--> kucing| tikus| peluru/bola| anak laki-laki| anak perempuan [Adalah] kategori [yang] yang paling umum (adalah), suatu [kalimat;hukuman].
Di (dalam) suatu context-free tatabahasa, kategori yang bersifat tatabahasa *apakah [disebut/dipanggil] variabel, kata-kata ( tanda) [disebut/dipanggil] terminal, aturan tatabahasa *apakah sedang menulis ulang aturan [memanggil/hubungi] produksi, dan kategori bersifat tatabahasa yang paling umum [memanggil/hubungi] lambang start. Istilah ini diulangi di (dalam) Definisi 2.2.
definisi 2.2:Context-Free tatabahasa Context-Free tatabahasa G adalah suatu mengalikan dengan empat
G= ( V, T, P, S)
[di mana/jika]
V adalah suatu [yang] terbatas satuan lambang variabel,
T adalah suatu [yang] terbatas satuan lambang terminal memisah dari V,
P adalah suatu [yang] terbatas satuan dalam menulis ulang aturan ( produksi) tentang format
A--> w [di mana/jika] Suatu di (dalam) V, w di (dalam) ( V perserikatan/pipa sambung T)*
S adalah suatu unsur V [memanggil/hubungi] lambang start.
Tatabahasa mungkin (adalah) digunakan untuk menghasilkan [kalimat;hukuman] suatu bahasa. Dengan suatu dawai wof [adalah] format w= uxv [adalah] produksi x--> yis dapat digunakan untuk dawai ini [karena;sejak] xappears di (dalam) dawai [itu]. Produksi mengijinkan [kita/kami] untuk menggantikan xwith yobtaining dawai z z= uyv dan kata[kan itu wderives z. Ini adalah [di]tertulis dasar [ketika;seperti] w==> z
Jika
w1==> w2==>...==> wn [yang] kita kata[kan w1 itu memperoleh wn dan tulis w1==>* wn
Satuan [kalimat;hukuman] suatu bahasa *apakah diperoleh dari lambang start [menyangkut] tatabahasa [itu]. Definisi 2.3 menyusun gagasan ini.
definisi 2.3:Generation suatu Bahasa dari Tatabahasa
Yang dibiarkan G (adalah) suatu tatabahasa. Kemudian L(G yang di-set)= { w di (dalam) T*| S==>* w} adalah bahasa yang dihasilkan oleh G. Suatu bahasa L adalah context-free iff ada suatu context-free tatabahasa G . seperti (itu) bahwa L= L(G). Jika w di (dalam) L(G), kemudian urutan [itu]==> w1==> w2==>...==> wn==> w adalah suatu asal usul [menyangkut] [kalimat;hukuman] w dan wi *apakah [disebut/dipanggil] sentential format.
Gunakan tatabahasa [itu] G0 [adalah] [kalimat;hukuman] [adalah] kucing menangkap tikus dapat dihasilkan sebagai berikut:
S==> NP VP
==> D N VP
==> N VP
==> kucing VP
==> kucing V NP
==> kucing menangkap NP
==> kucing menangkap D N
==> kucing menangkap N
==> kucing menangkap tikus
Asal usul ini dilakukan di (dalam) suatu leftmost cara. Itu adalah, pada setiap langkah [adalah] leftmost variabel di (dalam) sentential format digantikan.
Kadang-Kadang suatu asal usul jadilah lebih menarik jika [itu] dipertunjukkan dalam wujud suatu asal usul pohon.
S / \ NP VP / \ / \
D N V NP / / / \ [adalah] kucing menangkap \ / \ D N
http://cs.wwc.edu/~aabyan/PLBook/HTML/Syntax.html ( 5 25)8/10/2006 8:26:10 PM
\ \
tikus
Dugaan suatu pohon mendasarkan asal usul disusun di (dalam) Definisi 2.5.
Definisi 2.5: Asal usul Pohon
Yang dibiarkan G= ( V, T, P, S) (adalah) suatu context-free tatabahasa. Suatu asal usul pohon mempunyai kekayaan yang berikut [itu].
1.Akar diberi label.
2.Tiap-Tiap bagian dalam/pedalaman puncak mempunyai suatu label dari V.
3.Jika suatu puncak mempunyai label [Adalah] suatu di (dalam) V, dan anak-anak nya *apakah diberi label ( dari kiri ke kanan) a1,...,
suatu, kemudian P harus berisi suatu produksi [menyangkut] format A--> a1...an
4.Tiap-Tiap daun mempunyai suatu label dari T perserikatan/pipa sambung { lamda}.
Di (dalam) contoh generasi [yang] kita memilih untuk menulis kembali left-most nonterminal dulu. Ketika ada dua atau lebih left-most asal usul suatu dawai di (dalam) tatabahasa ditentukan atau, dengan setara, ada dua asal usul pohon beda untuk [kalimat;hukuman] yang sama, tatabahasa disebut rancu. Dalam beberapa peristiwa, kerancuan mungkin (adalah) dihapuskan oleh pemilihan yang lain tatabahasa untuk bahasa atau yang aturan menambahkan tidak mungkin context-free [atur/perintah]. Definisi 2.6 menggambarkan kerancuan dalam kaitan dengan asal usul pohon.
Definisi 2.6: Tatabahasa Rancu
Suatu context-free tatabahasa G disebut rancu jika [di/ke] sana ada beberapa w di (dalam) L(G) yang mempunyai dua asal usul pohon beda.
Abstrak Sintaksis
Para programmer dan compiler para penulis harus mengetahui lambang yang nyata digunakan di (dalam) program-- sintaksis beton. Suatu tatabahasa melukiskan sintaksis beton ungkapan perhitungan adalah tatabahasa G1 di (dalam) Gambar 2.2,.
Gambar 2.2:G1 Suatu tatabahasa ungkapan
V={ E}
T={ c, orang yang tak punya naluri,+,*,(,)}
P= { E--> c,
E--> orang yang tak punya naluri,
E--> ( E),
E--> E+ E,
E--> E* E}
S= E
Kita berasumsi bahwa cand idstand untuk manapun [yang] tetap dan identifiers berturut-turut. Wujudkan[lah sintaksis mempunyai kaitan dengan hubungan yang hirarkis dan lambang yang tertentu menggunakan. titik sintaksis abstrak [yang] Yang utama adalah untuk menghilangkan detil penyajian phisik, menetapkan struktur [yang] yang murni [menyangkut] bahasa [oleh/dengan] penetapan hubungan yang logis antar[a] bagian-bagian dari bahasa [itu]. Suatu tatabahasa melukiskan sintaksis abstrak ungkapan perhitungan adalah tatabahasa G2 di (dalam) Gambar 2.3.
Gambar 2.3:G2 Suatu tatabahasa ungkapan abstrak
V={ E}
T={ c, orang yang tak punya naluri, menambahkan, mult}
P= { E--> c,
E--> orang yang tak punya naluri,
E--> menambahkan E E,
E--> mult E E}
S= E
terminal Lambang adalah nama untuk kelas object.
Suatu perbedaan tambahan antar[a] beton dan sintaksis abstrak appeThe menyetem perbedaan di (dalam) penggunaan beton dan tatabahasa abstrak terbaik digambarkan dengan membandingkan asal usul pohon dan pohon sintaksis abstrak untuk orang yang tak punya naluri ungkapan+ ( orang yang tak punya naluri* orang yang tak punya naluri). asal usul Pohon untuk tatabahasa beton adalah hanya(lah) apa kita akan harapkan
/| \
E+ E
/| \
orang yang tak punya naluri( E)
/| \
E* E
/ \
orang yang tak punya naluri orang yang tak punya naluri
[selagi/sedang] pohon sintaksis abstrak untuk tatabahasa abstrak adalah [yang] sungguh berbeda.
menambahkan / \ orang yang tak punya naluri mult / \ orang yang tak punya naluri orang yang tak punya naluri Di (dalam) suatu asal usul pohon untuk suatu tatabahasa abstrak, [tangkai pohon/bengkak urat] yang internal *apakah diberi label dengan operator dan kinandar adalah anak-anak mereka dan di sana adalah tidak (ada) lambang beton di (dalam) pohon [itu]. Misahkan[lah pohon sintaksis *apakah digunakan oleh compiler untuk suatu wakilan antara [menyangkut] program [itu].
beton Sintaksis menggambarkan program [jalan/cara] *apakah [di]tertulis [selagi/sedang] sintaksis abstrak menguraikan struktur [yang] yang murni suatu program [oleh/dengan] penetapan hubungan yang logis antar[a] bagian-bagian dari program [itu]. abstrak Sintaksis adalah penting ketika kita adalah tertarik akan pemahaman arti dari suatu program ( ilmu semantik nya) dan ketika penterjemahan suatu program ke kode mesin.
Penguraian
Tatabahasa mungkin (adalah) digunakan kedua-duanya untuk pengenalan dan generasi ( penguraian) tentang [kalimat;hukuman]. Kedua-Duanya pengenalan dan generasi memerlukan temuan [adalah] suatu urutan yang menulis ulang terdiri dari aplikasi [menyangkut] menulis ulang yang aturan mulai dengan lambang start tatabahasa dan akhir dengan [kalimat;hukuman] [itu]. Pengenalan suatu program dalam kaitan dengan tatabahasa [disebut/dipanggil] penguraian. Suatu yang algoritma mengenali program [disebut/dipanggil] suatu parser. Suatu parser yang manapun secara implisit atau dengan tegas membangun suatu asal usul pohon untuk [kalimat;hukuman] [itu].
Ada dua pendekatan untuk menguraikan. Parser dapat mulai dengan lambang start [menyangkut] tatabahasa dan usaha untuk menghasilkan [kalimat;hukuman] yang sama bahwa mencoba untuk mengenali atau [itu] dapat mencoba untuk memenuhi masukan kepada tangan kanan sisi [menyangkut] produksi [yang] membangun suatu asal usul pohon di (dalam) kebalikan. pendekatan Yang pertama [disebut/dipanggil] top-down [yang] menguraikan dan yang kedua, dari bawah ke atas menguraikan.
Gambar 2.4 menggambarkan top-down [yang] menguraikan dengan mempertunjukkan kedua-duanya [adalah] menguraikan(kalimat) pohon dan bu kembali masukan tak dikenali. Masukan diteliti dari kiri ke kanan satu tanda pada waktu yang sama.
Gambar 2.4:Top-down Uraikan(Kalimat)
MENGURAIKAN(KALIMAT) POHON MENGENALI MASUKAN
S kucing menangkap tikus
/ \
NP VP [adalah] kucing menangkap tikus
/ \ \
D N \ [adalah] kucing menangkap tikus
|| \
| \ kucing menangkap tikus| \
kucing \ menangkap tikus / \
V NP menangkap tikus
| \
\ yang ditangkap [adalah] tikus / \
D N tikus
||
| tikus|
tikus
Masing-Masing garis di (dalam) figur menghadirkan langkah tunggal di (dalam) [itu] menguraikan(kalimat). masing-masing Nonterminal digantikan oleh tangan kanan sisi melukiskan itu. Setiap kali suatu terminal memenuhi masukan, tanda bersesuaian dipindahkan dari masukan [itu].
Gambar 2.5 menggambarkan dari bawah ke atas menguraikan dengan mempertunjukkan kedua-duanya [adalah] menguraikan(kalimat) pohon dan masukan tak dikenali yang sisa[nya]. Bahwa[lah menguraikan(kalimat) pohon dibangun terbalik, yaitu., menguraikan(kalimat) pohon dibangun di (dalam) kebalikan.
Gambar 2.5:Bottom-up Uraikan(Kalimat)
MENGURAIKAN(KALIMAT) POHON MENGENALI MASUKAN
kucing menangkap tikus
Sintaksis
kucing menangkap tikus|
D kucing menangkap tikus
|
| kucing menangkap tikus
||
| N menangkap tikus
\ /
NP menangkap tikus
|
| yang ditangkap tikus
||
| V tikus
||
|| tikus
|||
|| D tikus
|||
||| tikus
||||
||| N
|| \ /
|| NP
| \ /
| VP
\ /
S
masing-masing Garis menghadirkan selangkah di (dalam) [itu] penguraian urutan. masukan Tanda menggeser/bergeser dari masukan kepada menguraikan(kalimat) pohon ketika parser adalah tidak mampu untuk mengurangi cabang [menyangkut] pohon [bagi/kepada] suatu variabel.
Table-Driven dan pendaratan berulang menguraikan
pendekatan [yang] paling intuitif dan Yang paling sederhana untuk membangun suatu parser adalah untuk menterjemahkan tatabahasa ke dalam suatu koleksi [dari;ttg] rutin berulang. seperti itu Parser [disebut/dipanggil] suatu pendaratan berulang parser. Suatu prosedur parseN dibangun untuk variabel masing-masing N. tangan kanan Sisi [menyangkut] produksi menentukan badan [menyangkut] [itu] menguraikan(kalimat) prosedur. Variabel di (dalam) tangan kanan sisi menjadi [sebut/panggil/hubungi] [bagi/kepada] suatu menguraikan(kalimat) prosedur. Terminal di (dalam) tangan kanan sisi *apakah diterjemahkan untuk suatu cek verifikasi untuk meyakinkan masukan sesuai dengan terminal dan suatu panggilan prosedur untuk mendapat/kan tanda masukan yang berikutnya. pembatasan dan Detil tambahan pada [atas] tatabahasa adalah menyerah Bab: Terjemahan.
Suatu pendekatan pengubah adalah untuk membangun top-down table-driven parser yang terdiri dari suatu pengarah rutin, suatu tumpukan dan tatabahasa [itu] ( pada umumnya disimpan di (dalam) format bentuk tabel). Pengarah yang rutin mengikuti algoritma yang berikut:
1.Initialize [adalah] tumpukan dengan lambang start [menyangkut] tatabahasa [itu].
2.Mengulangi sampai tindakan lebih lanjut adalah mungkin
a.Jika puncak tumpukan dan lambang masukan yang berikutnya adalah sama, meletus puncak tumpukan dan mengkonsumsi lambang masukan.
b.Jika puncak tumpukan adalah suatu nonterminal lambang, meletus tumpukan dan mendorong tangan kanan sisi [menyangkut] tatabahasa yang yang bersesuaian [atur/perintah] ke tumpukan [itu].
3.Jika kedua-duanya [adalah] masukan dan tumpukan kosong, menerima masukan cara lainnya, menolak masukan [itu].
Untuk menggambarkan pendekatan ini [yang] kita menggunakan tatabahasa [itu] G1 untuk ungkapan dan menguraikan(kalimat) ungkapan [itu] id+id*id. Gambar 2.6 berisi suatu jejak [menyangkut] [itu] menguraikan(kalimat).
Gambar 2.6Top-down menguraikan(kalimat) id+id*id
TUMPUKAN MASUK RULE/ACTION
E] id+id*id] letusan& desakan menggunakan E--> E
+ E
E+E] id+id*id] letusan& desakan menggunakan E-->
orang yang tak punya naluri id+E] id+id*id] letusan& mengkonsumsi + E] + id*id] letusan& mengkonsumsi
E] id*id] letusan& desakan menggunakan E-->
E*E
E*E] id*id] letusan& desakan menggunakan E-->
orang yang tak punya naluri id*E] id*id] letusan& mengkonsumsi * E] * orang yang tak punya naluri] letusan& mengkonsumsi
E] orang yang tak punya naluri] letusan& desakan menggunakan E-->
orang yang tak punya naluri orang yang tak punya naluri] orang yang tak punya naluri] letusan& mengkonsumsi]] menerima
Jejak menunjukkan [muatan/indeks] [menyangkut] tumpukan dan masukan yang sisa[nya] pada langkah masing-masing [menyangkut] [itu] menguraikan(kalimat).
Sepertiga alternatif adalah untuk membangun suatu dari bawah ke atas [tabel;meja] [memandu/mengemudi] parser yang terdiri dari suatu pengarah rutin, suatu tumpukan dan suatu tatabahasa disimpan di (dalam) format bentuk tabel. Pengarah yang rutin mengikuti algoritma yang berikut:
1.Pada awalnya tumpukan kosong.
2.Mengulangi sampai tindakan mungkin.
a.Jika puncak n lambang tumpukan memenuhi tangan kanan sisi suatu tatabahasa [atur/perintah] di (dalam) kebalikan, kemudian mengurangi tumpukan lebih lanjut [oleh/dengan] menggantikan n lambang dengan tangan kiri lambang [menyangkut] tatabahasa [atur/perintah].
b.Jika tidak (ada) pengurangan adalah mungkin kemudian bergeser lambang masukan yang sekarang kepada tumpukan [itu].
3.Jika masukan adalah mengosongkan dan tumpukan berisi hanya lambang start [menyangkut] tatabahasa, kemudian menerima masukan cara lainnya, menolak masukan [itu].
Untuk menggambarkan pendekatan ini [yang] kita menggunakan tatabahasa [itu] G1 untuk ungkapan dan menguraikan(kalimat) ungkapan [itu] id+id*id. Gambar 2.7 berisi suatu jejak [menyangkut] [itu] menguraikan(kalimat).
Gambar 2.7:Bottom-up menguraikan(kalimat) id+id*id
TUMPUKAN MASUK RULE/ACTION
] id+id*id] Pergeseran
orang yang tak punya naluri] + id*id] Urangi penggunaan E--> orang yang tak punya naluri E] + id*id] Pergeseran
+ E] id*id] Pergeseran
id+E] * orang yang tak punya naluri] Urangi penggunaan E--> orang yang tak punya naluri E+E] * orang yang tak punya naluri] Pergeseran
* E+E] orang yang tak punya naluri] Pergeseran
id*E+E]] Urangi penggunaan E--> orang yang tak punya naluri E*E+E]] Urangi penggunaan E--> E*E
E+E]] Urangi penggunaan E--> E+E
E]] Nerima
Jejak menunjukkan [muatan/indeks] [menyangkut] tumpukan dan masukan yang sisa[nya] pada langkah masing-masing [menyangkut] [itu] menguraikan(kalimat).
Di (dalam) contoh ini [adalah] pilihan [menyangkut] produksi yang ke penggunaan boleh nampak seperti gaib. Di (dalam) kasus suatu top-down parser, tatabahasa G1 harus ditulis ulang untuk memindahkan kerancuan [itu]. Karena dari bawah ke atas parsers, ada teknik untuk analisa [menyangkut] tatabahasa untuk menghasilkan satu set aneka pilihan terang untuk produksi. . seperti (itu) teknik adalah di luar lingkup [dari;ttg] teks ini.
Nondeterministic Pushdown automata
Suatu studi hati-hati [menyangkut] penguraian proses mengungkapkan bahwa apakah menguraikan(kalimat) adalah top-down atau dari bawah ke atas, parser harus [memegang/menjaga] informasi beberapa pada [atas] suatu tumpukan. Di (dalam) kasus suatu pendaratan berulang parser, tumpukan adalah tersembunyi dalam recursion [itu]. Di [dalam] kasus top-down parser, [itu] harus meninggal variabel batal/mulai tumpukan dan mendorong bersesuaian sisi kanan pada [atas] tumpukan dan terminal letusan batal/mulai tumpukan ketika mereka memenuhi masukan [itu]. Di [dalam] kasus dari bawah ke atas parser, [itu] harus bergeser ( desakan) terminal ke tumpukan dari masuk dan mengurangi ( letusan) urutan variabel dan terminal batal/mulai tumpukan [yang] menggantikan [mereka/nya] dengan suatu variabel [di mana/jika] urutan variabel dan terminal sesuai dengan tangan kanan sisi produksi beberapa.
Pengamatan ini mempimpin [kita/kami] kepada dugaan menekan automata. Suatu menekan automata mempunyai suatu masukan bahwa itu meneliti dari kiri ke kanan, suatu tumpukan, dan suatu kendali terbatas untuk mengendalikan operasi membaca masukan dan data mendorong pada [atas] dan meletus data batal/mulai tumpukan [itu]. Definisi 2.6 adalah suatu definisi [yang] formal suatu menekan automata.
Definisi 2.6: Push-Down otomat [Adalah] suatu menekan otomat M adalah suatu 7-tuple ( Q, Sigma, Tau, delta, q0, Z0, F)
Q adalah suatu [yang] terbatas satuan negara Sigma adalah suatu abjad terbatas [memanggil/hubungi] abjad masukan Tau adalah suatu abjad terbatas [memanggil/hubungi] abjad tumpukan
delta adalah suatu transisi berfungsi dari Q× ( Sigma perserikatan/pipa sambung { e})× Tau ke [yang] terbatas subsets Q× Tau*
q0 di (dalam) Q adalah awal menyatakan Z0 di (dalam) Tau [memanggil/hubungi] lambang start
F suatu subset Q; satuan dalam negara diterimanya
PDA=< Negara, Startstate, Finalstates, Inputalphabet, Masuk, Stackalphabet, Tumpukan, Transitionfunction,> Bentuk wujud: C= Satakan x Tumpukan x; Maraf bentuk wujud ( Startstate,[], Masukan)
t: C--> C
Alihan terizin
t(s,[],[])-- menerima ( mengosongkan stack)t(s,[], S)-- menerima di (dalam) Finalstatest(S, I, S)= ( s', I, S)-- epsilon movet(s, [ i|I], S)= ( s', I, S)-- mengkonsumsi inputt(s, I, [ x|S])= ( s', I, S)-- meletus stackt(s, I, S)= ( s', I, [ x|S])-- mendorong stackt(s, [ i|I], [ x|S])= ( s', I, S)-- mengkonsumsi masukan dan letusan stackt(s, [ i|I], S)= ( s', I, [ x|S])-- mengkonsumsi masukan dan tumpukan desakan Contoh: palindroms program ( Startstate, Masukan,[])
t(push,[],[])= menerima// mengosongkan masukan t(push, [ x|I], S)= ( meletus, I, S)// memusat, panjangnya aneh palindrom t(push, [ x|I], S)= ( meletus, I, [ x|S])// pusat, bahkan panjangnya palindrom t(push, [ x|I], S)= ( mendorong, I, [ x|S])// sisi yang ditinggalkan t(pop, [ x|I], [ x|S])= ( letusan, I, S)// sebelah kanan t(pop,[],[])= menerima Aplikasi PDAS *apakah diselidiki di (dalam) latihan [itu].
Kesamaan PDA dan CFGS
Sama [halnya] suatu tatabahasa menggambarkan suatu bahasa L(G), maka suatu PDA M menggambarkan suatu bahasa L(M), satuan dawai-dawai bahwa itu menerima. Hubungan antar[a] PDAS dan CFG menarik. Manapun bahasa yang diterima oleh suatu PDA dapat ditunjukkan untuk;menjadi ditunjukkan untuk mempunyai suatu context-free tatabahasa. Juga manapun context-free tatabahasa menggambarkan suatu PDA. [Selagi/Sedang] tanda bukti statemen ini adalah di luar lingkup [dari;ttg] teks ini, gagasan untuk tanda bukti ini. Bentuk wujud suatu PDA dapat diuraikan dalam kaitan dengan suatu context-free tatabahasa. Semua CFGS dapat memasuki suatu format khusus ( Greibach format normal) yang dapat digunakan untuk menguraikan bentuk wujud suatu PDA.
Ungkapan Reguler
[Selagi/Sedang] CFGS dapat digunakan untuk menguraikan tanda suatu bahasa program, ungkapan reguler ( PERIHAL) adalah suatu notasi [yang] lebih menyenangkan untuk menguraikan struktur sederhana mereka. Abjad terdiri dari [menyangkut] karakter yang di-set [yang] di/terpilih untuk bahasa dan notasi meliputi.
`•' untuk menggabungkan materi ( penjajaran digunakan untuk tujuan yang sama),
`|' [bagi/kepada] alternatif terpisah ( sering`+' digunakan untuk tujuan yang sama),
`*' untuk menunjukkan bahwa item yang sebelumnya mungkin (adalah) diulangi nol atau lebih waktu, dan
`('`)' untuk/karena menggolongkan.
definisi 2.7:Regular ungkapan dan bahasa Reguler
Ungkapan Reguler Bahasa
E Menandakan L(E)
øø [yang] di-set Yang kosong; bahasa
dawai kosong; lamda bahasa { lamda} yang terdiri dari [menyangkut] dawai yang kosong a{ a} a; yang bahasa terdiri dari sekedar ( E • F) { uv| u di (dalam) L(E) dan v di (dalam) L(F)} penggabungan;
( E|F) { u| u di (dalam) L(E) atau u di (dalam) L(F)} pertukaran; perserikatan/pipa sambung L(E) dan L(F)
{ u1u2...un| ui di (dalam) L
( E*) ( E) 0<= i <= n, n manapun urutan dari E
>= 0}
Identifiers dan angka-angka riil mungkin (adalah) digambarkan menggunakan ungkapan reguler sebagai berikut:
bilangan bulat= D D*
identifier= A(A|D)*
Suatu penyaring gambar tv adalah suatu yang program menggolongkan karakter dari suatu arus masukan ke dalam suatu urutan tanda. Penyaring gambar tv berdasar pada ungkapan reguler mudah untuk tulis. Lex adalah suatu penyaring gambar tv generator sering membungkus dengan lingkungan YANG UNIX [itu]. Seorang pemakai menciptakan suatu file [yang] berisi ungkapan reguler dan Lex menciptakan suatu program untuk mencari-cari tanda yang digambarkan oleh ungkapan reguler itu. teks Para editor menggunakan ungkapan reguler untuk mencari-cari dan menggantikan teks. grep perintah YANG UNIX menggunakan ungkapan reguler untuk mencari-cari teks.
Status Terbatas nondeterministic Dan Deterministic Mesin
Ungkapan reguler adalah setara dengan mesin status terbatas. Suatu mesin status terbatas terdiri dari satu set negara ( salah satu dari yang mana [adalah] yang start dan status atau lebih [] yang *apakah sedang menerima negara), satu set transisi dari satu status ke yang lain masing-masing memberi label dengan suatu lambang masukan, dan suatu dawai masukan. masing-masing Langkah [menyangkut] mesin status yang terbatas terdiri dari membandingkan lambang masukan yang sekarang dengan satuan transisi sesuai dengan status yang sekarang dan kemudian mengkonsumsi lambang masukan dan ber/gerakkan kepada status sesuai dengan transisi. Definisi 2.8 negara ini secara formal.
definisi 2.8:Finite Menyatakan Otomat
Suatu otomat status terbatas atau fsa digambarkan oleh mengalikan dengan lima M= ( Q, Sigma, delta, q0, F), [di mana/jika] Q adalah suatu [yang] terbatas satuan negara internal Sigma adalah suatu [yang] terbatas satuan lambang [memanggil/hubungi] delta abjad masukan: Q× Sigma--> 2Q adalah suatu total fungsi [memanggil/hubungi] fungsi transisi q0 di (dalam) Q adalah awal menyatakan F suatu subset Q adalah satuan status akhir
FSM= < Negara, Startstate, Finalstates, Inputalphabet, Masuk, Transitionfunction> Bentuk wujud: C= Satakan x; Inititial bentuk wujud ( Startstate, Masukan)
t: C--> C
Alihan terizin
t(s,[])-- menerima di (dalam) Finalstatest(S, [ x|I])= ( s', I)-- mengkonsumsi inputt(s, I)= ( s', I)-- epsilon pindah;gerakkan Contoh: identifiers ( Startstate, Masukan)
t(start, [ i|I])= ( iklan, I) t(ad, [ i|I])= ( iklan, I) t(ad, [ d|I])= ( iklan, I) t(ad,[])-- menerima fungsi transisi Delta digambarkan pada [atas] suatu status dan suatu lambang masukan. [Itu] dapat diperluas untuk suatu delta fungsi* pada [atas] dawai-dawai lambang masukan sebagai berikut:
1.delta*(q,-)=q untuk dawai [yang] yang kosong
2.delta*(q,wa)=delta(delta*(q,w),a) untuk/karena semua dawai-dawai w dan masuk lambang [adalah] suatu
Suatu FSA [memanggil/hubungi] deterministic jika ada paling banyak satu transisi dari satu status ke yang lain untuk masukan [yang] ditentukan dan di sana adalah tidak (ada) transisi lamda. Suatu FSA [memanggil/hubungi] nondeterministic jika ada satu atau lebih transisi dari satu status ke yang lain untuk masukan ditentukan. Suatu Moore mesin adalah suatu FSA yang berhubungan suatu keluaran dengan masing-masing menyatakan dan suatu mesin Seperti tepung adalah suatu FSA yang berhubungan suatu keluaran dengan transisi masing-masing. Moore dan Seperti tepung FSAS adalah penting di (dalam) aplikasi FSAS.
Kesamaan [dari;ttg] fsa nondeterministic dan deterministic
Itu bisa nampak bahwa suatu mesin yang bisa ` guess' ( [yang] nondeterministic) yang pindah;gerakkan untuk membuat berikutnya akan [yang] lebih kuat dibanding apa yang itu tidak bisa ( deterministic). dalil Yang berikut menunjukkan bahwa di (dalam) kasus FSAS, bukan kasus [itu].
Theorem:Every yang deterministic otomat status terbatas adalah suatu otomat status terbatas nondeterministic. Proof:The definisi suatu FSA deterministic adalah tercakup di definisi suatu FSA nondeterministic.
Dalil: Karena tiap-tiap otomat status [yang] terbatas nondeterministic ada suatu otomat status [yang] terbatas deterministic yang menerima bahasa yang sama [itu].
Bukti:
M=(S,A,T,Q0,F Yang dibiarkan) (adalah) suatu FSA nondeterministic. Menggambarkan[lah M'=(S',A,T',F') sebagai berikut:
S' adalah satuan dari semua subsets; suatu unsur' ditandai oleh [ q1...,qm]
t': t'([q1...,qm],a)= [ p1,...,pn] [di mana/jika] [ p1,...,pn] adalah perserikatan/pipa sambung [menyangkut] negara . seperti (itu) t(qi,a itu)
= pj} F' adalah satuan dari semua negara' itu berisi suatu diterimanya status M
Tanda bukti diselesaikan oleh induksi/pelantikan pada [atas] panjang dawai masukan.
Kesamaan fsa dan ungkapan reguler
Sama [halnya] context-free tatabahasa dan PDAS adalah padanan, ungkapan [yang] sangat reguler dan FSAS adalah padanan seperti yang berikut pertunjukan dalil.
Dalil: Jika r adalah suatu ungkapan reguler kemudian [di/ke] sana ada suatu NFA yang menerima L(R). Bukti ( Sket) bukti Yang formal adalah dengan induksi/pelantikan pada [atas] banyaknya operator di (dalam) ungkapan [itu]. Karena kasus dasar ( mengosongkan dawai di-set, kosong dan singleton menetapkan) bersesuaian fsa adalah sederhana untuk menggambarkan. kasus [yang] semakin Kompleks *apakah ditangani dengan menggabungkan negara [dari;ttg] fsa lebih sederhana.
Dalil: Jika L diterima oleh suatu DFA kemudian L ditandai oleh suatu ungkapan reguler. Bukti di luar lingkup [dari;ttg] teks ini.
Penyajian Grafis
Di (dalam) suatu penyajian grafis, negara *apakah diwakili oleh lingkaran, dengan akhir ( atau menerima) negara yang ditandai oleh dua lingkaran-lingkaran konsentris. start Status ditandai oleh kata[an] `` Start''. Suatu busur lingkaran/lingkungan dari status untuk menyatakan t memberi label suatu menandai (adanya) suatu transisi dari ke t pada [atas] masukan a. Suatu label a/b menunjukkan bahwa transisi ini menghasilkan suatu keluaran b. Suatu label a1, a2,..., ak menunjukkan bahwa transisi dibuat pada [atas] masukan a1 yang manapun , a2,..., ak.
/* MEMERLUKAN Suatu DIAGRAM MANIS DI SINI*/
Penyajian Bentuk tabel
Di (dalam) suatu penyajian bentuk tabel, negara adalah satu index dan masukan lain. Isi [tabel;meja] adalah status yang berikutnya ( dan tindakan jika diperlukan).
Gambar 2.8: bentuk tabel
penyajian untuk suatu transisi berfungsi.
Implementasi FSAS
transisi Fungsi suatu FSA dapat diterapkan sebagai statemen kasus, suatu koleksi prosedur dan sebagai [tabel;meja]. Di (dalam) suatu kasus mendasarkan status penyajian diwakili oleh nilai suatu variabel, statemen kasus ditempatkan di (dalam) badan suatu pengulangan/jerat dan pada [atas] perkataan berulang-ulang masing-masing [menyangkut] pengulangan/jerat, masukan adalah dibaca dan peubah keadaan dibaharui.
Status:= Start;
pengulangan
mendapat/kan masukan [yang] aku
kasus Status
...
Si: kasus [yang] aku
...
Ci: Status:= Sj;
...
akhir
...
akhir
sampai masukan kosong dan diterimanya menyatakan
Di (dalam) suatu penyajian mengenai cara, status masing-masing adalah suatu prosedur. Transisi kepada status yang berikutnya terjadi ketika prosedur mewakili status yang berikutnya jadilah `` yang [disebut/dipanggil]''.
prosedur States(I: masukan)
kasus [yang] aku
...
Ci: mendapat/kan masukan [yang] aku; Statet(I)
...
akhir
Di (dalam) table-driven implementasi, fungsi transisi disandikan di (dalam) suatu dua array dimensional. Satu index adalah status yang sekarang lain adalah masukan yang sekarang [itu]. array Unsur adalah negara.
status:= start;
[selagi/sedang] status!= akhir lakukan
mendapat/kan masukan [yang] aku;
status:= table[state,I]
Implementasi adalah tidak sempurna [karena;sejak] mereka tidak berisi kode untuk berhubungan dengan ujung masukan.
pragmatis
Di ilmu semantik mengukur, mewujudkan sintaksis tidak berarti. Bagaimanapun, mewujudkan sintaksis berarti kepada programmer dan kepada penulis compiler. Programmer memerlukan suatu bahasa yang mudah untuk membaca dan tulis. compiler Penulis ingin suatu bahasa yang mudah untuk menguraikan(kalimat). Detil sederhana seperti penempatan kata kunci, titik koma dan kasus dapat mempersulit hidup [menyangkut] penulis compiler atau programmer.
banyak orang Bahasa *apakah dirancang untuk merancang untuk membuat kumpulan gampang. Gol adalah untuk menyediakan suatu sintaksis sedemikian sehingga kebutuhan compiler membuat hanya orang mengabaikan program [itu]. Kebutuhan ini berarti bahwa dengan (pelajaran) pelengkap perkecualian, masing-masing tetap, jenis, variabel, fungsi dan prosedur harus digambarkan [sebelum/di depan] [itu] disesuaikan. Jual adalah antar[a] [yang] sedikit meningkat kompleksitas [yang] syntactic [menyangkut] bahasa dengan beberapa ditingkatkan di (dalam) beban pada [atas] programmer dan suatu compiler lebih sederhana.
Beberapa isu [yang] yg berhub dg sintaksis spesifik meliputi:
statemen Penghentian dan/atau separation.In Pascal [adalah] titik koma adalah suatu mesin pemisah statemen [selagi/sedang] di (dalam) C titik koma adalah suatu statemen terminator. [Dengan] begitu di (dalam) Pascal [adalah] suatu titik koma tidaklah*janganlah perlu setelah statemen yang ter]akhir di (dalam) suatu urutan statemen ketika diperlukan di (dalam) C. Jika suatu bahasa meliputi suatu statemen kosong, suatu titik koma salah meletakkan dapat ber;ubah arti dari suatu program. Sebagai contoh, di (dalam) program membagi-bagi [selagi/sedang] C lakukan; S; titik koma yang pertama ber/mengakhiri statemen yang kosong mengikuti doand statemen sementara itu; Dik bukan di [dalam] badan [selagi/sedang] statemen.
kasus Sensitivity.Pascal adalah kasus yang tidak dapat merasakan [selagi/sedang] C adalah kasus sensitip.
Mbuka dan menutup keywords.Algol-68 dan Modula-2 memerlukan menutup kata kunci. Modula-2 menggunakan
dan Endwhile Algol-68 menggunakan kebalikan [menyangkut] pembukaan kata kunci untuk example,if C kemudian fi
tugas Operator. tugas Operator bervariasi antar bahasa program sangat mendesak.
:= Pascal dan Ada= FORTRAN, C/C++/Java <-- APL
Pilihan di (dalam) FORTRAN dan C/C++/Java adalah orang yang bernasib sial [karena;sejak] tugas adalah berbeda dari persamaan.
. EQ. FORTRAN
== C/C++/Java
Identifikasi fungsi dan prosedur calls.In C, memeriksa prosedur panggilan *apakah dibedakan oleh kehadiran tanda kurung. Pascal tidak memerlukan tanda kurung.
kembali[an Values.In C, jika suatu fungsi digunakan sebagai suatu perintah, nilai kembali[an nya diabaikan. Di (dalam) Pascal, suatu fungsi tidak bisa digunakan sebagai suatu perintah. Untuk mengabaikan nilai yang dikembalikan, Modula-3 memerlukan fungsi [sebut/panggil/hubungi] dengan kata kunci [itu] EVAL.
Suatu sintaksis mengarahkan editor dapat menggunakan warna, bak, dan tataruang untuk membantu programmer di (dalam) pembeda antar[a] komentar, memesan kata-kata, kode, dan dapat menyediakan penyelesaian perintah.
Perspektif Historis dan Lanjut membaca
Backus-Naur Mbentuk
BNF adalah suatu notasi untuk gambarkan produksi suatu context-free tatabahasa. BNF menggunakan lambang yang berikut<,>,::=,|. Variabel *apakah terlampir antar[a]< dan>. Lambang--> digantikan dengan::=. Lambang| digunakan untuk alternatif terpisah. Terminal *apakah diwakili dengan sendirinya atau *apakah ditulis dalam suatu huruf cetak-buku yang berbeda dari lambang [menyangkut] BNF [itu]. Berikut adalah suatu BNF uraian ungkapan perhitungan.
< Ungkapan>::= < Identifier>| < Nomor;Jumlah>|
< Ungkapan> < Op> < Ungkapan>|
( < Ungkapan>)
< Op>::=+|-|*| /
< Identifier>::= < Surat>
< Identifier>::= < Identifier> < Surat>
< Nomor;Jumlah>::= < Digit>
< Nomor;Jumlah>::= < Nomor;Jumlah> < Digit>
< Surat>::= A|...| Z
< Digit>::= 0|...| 9
EBNF ( BNF yang diperluas)
Beberapa beberapa perluasan untuk meningkatkan yang keadaan dapat dibaca untuk BNF telah diusulkan. Satu . seperti (itu) perluasan adalah untuk tulis nama [menyangkut] variabel di (dalam) huruf miring dan tanpa< dan>. Sebagai tambahan, EBNF ( BNF yang diperluas) adalah suatu kombinasi [menyangkut] BNF dan notasi [dari;ttg] ungkapan reguler. Suatu EBNF produksi aturan [menjadi/dari] format N::= E, [di mana/jika] Nis suatu nonterminal lambang dan Eis suatu memperluas ungkapan reguler. ungkapan reguler Biasa, Emay berisi`|',`*', dan tanda kurung untuk pengelompokan tetapi tidak sama dengan ungkapan reguler biasa, mungkin berisi lambang variabel seperti halnya lambang terminal.
Beberapa perluasan tambahan meliputi penggunaan kait, { E}, atau elipsis (penghilangan kata), E..., untuk menandai (adanya) nol atau lebih [] pengulangan dari suatu item dan tanda-kurung, [ E], untuk menandai (adanya) suatu item opsional.
Gambar 2.8 berisi suatu context-free tatabahasa untuk suatu bahasa program sangat mendesak sederhana.
Gambar 2.8:Context-free tatabahasa untuk [yang] Sederhana
program::= Definisi yang dibiarkan DI (DALAM) command_sequence ;AKHIR;I definisi::= e| BILANGAN BULAT id_seq IDENTIFIER.
id_seq::= e| id_seq IDENTIFIER, command_sequence::= e| command_sequence perintah; perintah:= MELOMPATI| YANG DIBACA IDENTIFIER| Exp| IDENTIFIER:= exp| JIKA exp KEMUDIAN command_sequence SELAIN ITU command_sequence FI| [SELAGI/SEDANG] bool_exp LAKUKAN command_sequence ;AKHIR;I exp::= exp+ istilah| exp - istilah| termterm:: istilah* faktor| faktor / istilah| factorfactor::= factor^primary| utama utama::= NOMOR;JUMLAH| IDENT|( exp) bool_exp::= exp= exp| exp< exp| exp> exp
Sintaksis
Slonneger& Kurts ( 1995) dan Sintaksis Formal Ilmu semantik Bahasa program Addison Wesley Watt, David A. ( 1991) Bahasa program dan Sintaksis Ilmu semantik Prentice-Hall Internasional.
Bahasa Uraian
Adalah mengandung pelajaran untuk membaca uraian bahasa pejabat. Berikut *apakah didaftarkan di (dalam) [order/ pesanan] historis.
FORTRAN Backus, J. W. et. al ( 1956) `` FORTRAN Persandian Otomatis Sistem'' di (dalam) Dokumen Besar di (dalam) Komputer Ilmu pengetahuan lebih lanjut [oleh/dengan] Laplante, P. ed. Barat. 1996.
Mccarthy CEDAL, J. ( 1960) Fungsi [yang] Berulang [dari;ttg] Ungkapan Simbolis ACM Komunikasi 3 4 April 1960, 184-195.
ALGOL 60 Naur, P., ed ( 1963) Laporan Yang ditinjau kembali pada [atas] Bahasa Yang Algorithmic ALGOL 60 Komunikasi [adalah] ACM. 6, 1-17. Algol 68 Pascal Jensen, K. dan Wirth, N. ( 1974) Pascal Pemakai Manual dan laporan 2Ed. Springer-Verlag Ada Pedoman untuk Ada Bahasa program U.S. Departemen Pertahanan, ANSI/MILSTD 1815A-1983, Washington, D. C., Pebruari, 1983.
Kernighan dan Ritchie ( 1978) `` C Pedoman'' di (dalam) C Bahasa program Prentice Hall/Aula. C++ Pulau Jawa 1.02
( 1996) Pulau Jawa Bahasa Spesifikasi Rencana Haskell 1.3 Peterson, Yohanes., ed ( 1996)a [Adalah] Haskell Laporkan 1.3 Prolog Gödel
Parser ( Compiler) Konstruksi Perkakas
Lex& Yacc ( atau Flex/Bison)
Eli Compiler Konstruksi Sistem
Purdue Compiler-Construction Alat Menetapkan ( PCCTS)
Watt, David A. ( 1993)
Bahasa program Pengolah Prentice-Hall Internationaljack ( Pulau Jawa parser dan penyaring gambar tv konstruksi alat)
Bahasa Formal dan Automata
TM= < Negara, Inputalphabet, Transitionfunction, Finalstates, Startstate> Bentuk wujud: C= Satakan x; Maraf bentuk wujud ( Startstate, Masukan)
t: C--> C
Alihan terizin
t(s, I)-- menerima di (dalam) Finalstates t(s, I)= ( s', I)-- epsilon pindah;gerakkan t(s, ( Yang ditinggalkan, x, [ y|Right]))= ( s', ([ x'|Left], y, Benar))-- pindah;gerakkan [hak/ kebenaran] t(s, ([ x|Left], y, Benar))= ( s', ( Yang ditinggalkan, x, [ y'|Right]))-- gerak meninggalkan