NOTASI FORMAL

advertisement
Pengolahan Data Elektronik
________________________________________________________________________________________
NOTASI FORMAL
 Pendahuluan
Notasi formal adalah cara yang ringkas dan jelas untuk mengekspresikan
sesuatu hal, notasi formal berisi sistem pernyataan simbolis yang diatur secara
ketat oleh set-set aturan yang telah ditetapkan secara baik.
 Tingkatan formalitas
Sistem yang dinyatakan dalam bahasa inggris adalah informal sebab umumnya
tidak mesti mempunyai makna tunggal. Bahasa atau notasi yang tiap
statementnya mempunyai makna tunggal dikatakan bersifat formal. Statemen
yang dinyatakan dalam notasi perantara antara bahasa natural dan bahasa
formal disebut precise.
 Metalanguage
Sintaks
: struktur kalimat dan aturan gramatikal yang mengaturnya.
Semantik
: arti kalimat yang ditulis dalam bahasa tertentu
Bahasa yang secara khusus dirancang untuk mendeskripsikan bahasa disebut
metalanguage.
Aturan sintaks :
Nama yang tampak pada sisi kiri ‘=’ dan yang ada di sebelah kanan ‘=’ adalah
definisi sesuatu nama pada sebelah kiri. Aturan tersebut berakhir dengan ‘;’ .
Bila nama telah didefinisikan maka dapat digunakan pada sisi sebelah kanan
dari aturan yang berurutan. Penjelasan untuk kemudahan pemahaman
ditempatkan diantara ‘(* dan *)’.
D3/Manajemen Informatika
Page 1
Pengolahan Data Elektronik
________________________________________________________________________________________
Contoh
: mendefinisikan digit biner
Binary digit = “0” | “1”;
 Definisi dan deskripsi bahasa
Definisi bahasa digunakan untuk
:
a. menghasilkan semua kalimat atau pernyataan legal dalam suatu bahasa
b. mengecek legalitas suatu kalimat atau pernyataan.
Sintaks, leksikon dan semantik :
a. Sintaks suatu kalimat adalah struktur dari kalimat itu dan aturan gramatikal
yang mengatur struktur tersebut.
b. Leksikon adalah kamus kata-kata valid dalam suatu bahasa
c. Semantik berkaitan dengan arti kata dan kalimat
Definisi bahasa
:
a. Skema generatif, suatu prosedur untuk menggenerasi suatu kalimat legal
dalam bahasa tesebut
b. Rekognisi, dimana suatu prosedur didefinisikan untuk memutuskan
legalitas suatu kalimat
 Klasifikasi generatis BNF ( Backus Naur Form )
Notasi, terminologi dan metode :
a.  atau ::= atau :=
: didefinisikan oleh
c. |
: untuk menutup variabel sintaktis
: atau
<>
D3/Manajemen Informatika
Page 2
Pengolahan Data Elektronik
________________________________________________________________________________________
Menghasilkan kalimat legal atau pernyataan legal
Contoh
: mendefinisikan pernyataan legal, aturan-aturan berikut bisa
diberikan
:
a. <expression> <operand><operator><operand>
b. <operand>  A | B | C | D
c. <operator>  + | - | / | *
aturan semacam diatas disebut productions
Terapkan aturan a, b, c untuk mendapatkan pernyataa legal
a.
<expression>  <operand><operator> <operand>
A
<operator> <operand>
A
+
<operand>
A
+
B
b. <sentence>  <subject phrase><verb><object pharase>
<subject phrase><article><adjective><noun>
<object phrase><article><adjective><noun>
 Parsing
Adalah pemecahan kalimat menjadi komponennya, proses pendefinisian
production yang bila diterapkan dengan recursionakan menghasilkan kalimat
atau pernyataan legal.
Pemecahan parsing dapat direpresentasikan dengan TREE yang disebut
SYNTAX TREE atau PARSE TREE
Contoh :
<expression>
<operand> <operator> <operand>
W
D3/Manajemen Informatika
-
X
Page 3
Pengolahan Data Elektronik
________________________________________________________________________________________
Canonical
parse adalah prosedur yang
memastikan
bahwa parsing
didefinisikan dengan baik
i.
cari production yang bila diterapkan akan menghasilkan elemen sintaks
paling kiri dan ganti elemen-elemen ini dengan variabel sintaksis dari
tempat asal elemen itu
ii.
proses i diulangi pada elemen-elemen dan variabel-variabel sintaksis
sampai dihasilkan suatu pernyataan
Contoh :
1. <expression><operand>|<expression><operator><expression>
2. <operand>W |X |Y |Z
3. <operator>+ |- |* | /
Pohon sintaks pemecahan resmi untuk W – X * Z
<expression>
<expression>
<operator>
<expression><operator><expression>
<operand>
-
W
<operand>
*
<expression>
<operand>
Z
X
Canonical parsenya 2, 1, 3 , 2, 1, 1, 3, 2, 1, 1
D3/Manajemen Informatika
Page 4
Pengolahan Data Elektronik
________________________________________________________________________________________
Pohon sintaks pemecahan tidak resmi untuk W – X * Z
<expression>
<expression> <operator>
<operand>
-
W
<expression>
<expression><operator><expression>
<operand>
*
X
<operand>
Z
Canonical parsenya adalah 2, 3, 3, 3, 2, 1, 1, 1, 1, 1
Bactracking : (penelusuran balik) dapat juga digunakan untuk mencari
pernyataan yang ambigius
Definisi bahasa komputer harus tidak ambigius dan bisa menangani aturan
preseden bila diperlukan
Definisi bahasa komputer yang baik akan memungkinkan prosedur parsing
mampu :
i.
mendeteksi pernyataan tak legal
ii.
mencari parse legal
 Reverse polish (pemolesan balik)
Berguna untuk menangani pernyataan yang pengevaluasian mereka diatur oleh
aturan preseden. Pernyataan ini biasanya merupakan bahasa yang tidak rumit.
Infix notation ( notasi sisipan )
Banyak digunakan dalam bahasa tingkat tinggi, operator ( +, - ,* , / ) ada
didalam pernyataan antaraa operand-operand yang sesuai.
D3/Manajemen Informatika
Page 5
Pengolahan Data Elektronik
________________________________________________________________________________________
Contoh : ( A + B ) * (C – D )
Dalam notasi reverse polish (postfix notation) operator dituliskan setelah
operand yang tepat, dari contoh diatas jika ditulis degan reverse polish
menjadi AB + CD - *
 Bantuan penerjemahan
Tanda + dan – dari aritmatika dapat digunakan dalam dua cara :
a. untuk operasi bener, misal : 3 + 2
b. untuk operasi unar, misal : - 2
Aturan preseden
Aturan untuk memutuskan apa yang harus dilakukan apabila semua else sama
Operator
preseden
=
0
(
1
+- )
2
*/
3

4

5
D3/Manajemen Informatika
Page 6
Pengolahan Data Elektronik
________________________________________________________________________________________
 Penerjemahan dari infix ke reverse polish
Contoh : ubahlah (A + B) * (C – D) ke reverse polish
Simbol yang
diamati
(
A
+
B
)
*
(
C
Stack
(
Output
(
A
+
+
(
(
B
*
-
D
-
-
)
(
(
(
(
*
*
*
*
*
D
-
+
C
;
*
Hasilnya menjadi : AB+ CD- *
 Representasi pohon
Untuk merepresentasikan pohon untuk string reverse polish :
Mulai dari ujung sebelah kanan pernyataan, dan bekerja dari kanan ke kiri
i.
ambil simbol secara bergantian, untuk tiap simbbol bentuk node baru,
bila node yang baru saja dibuat berisi operand, mulai langkah ii, node
yang berisi operand adalah node terminal
ii.
berjalan balik ke atas pada pohon sampai node kiri diperlukan, isi node
dengan simbol berikut dari reserve polish
iii.
jika simbol yang diisi dalam ii adalah operand, maka lanjutkan dengan
ii, jika simbbol yang diisikan dalam ii adalah operator, kembali pada
langkah I
D3/Manajemen Informatika
Page 7
Download