Teknik Kompilasi Pertemuan 6
1. Tuliskan ekspresi dan tata bahasa dari pohon urai dibawah ini.
Jawab :Ekspresi : 9-5+2
Tata Bahasa: list => list + digit list => list - digit list => digit digit => 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
2. Jelaskan dan berikan contoh mengenai tata bahasa yang mempunyai arti ganda ...
Jawab : Suatu tata bahasa dapat disebut sebagai tata bahasa yang mempunyai arti ganda apabila, suatu tata bahasa dapat memberikan lebih dari satu pohon urai untuk membentuk suatu rangkaian token dari tata bahasa yang digunakan tersebut.
Contoh : Misalkan tidak dibedakannya antara angka dan list. Maka, tata bahasa yang melibatkan angka dan tanda plus dan minus dapat dituliskan sebagai berikut :
string -> string + string | string - string | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 .
Sehingga tata bahasa yang seperti itu akan mempunyai lebih dari satu pohon urai, yaitu sebagai berikut :

Gambar Dua pohon urai dari ekspresi 9-5+2
3.
Jelaskan kedua pohon urai pada gambar dibawah ini ...

Jawab : Hal yang berlawanan terjadi pada gambar pohon urai diatas yaitu, pada operator yang bersifat asosiatif kiri seperti operator - (Pohon urai untuk 9-5-2 tumbuh kearah kiri) dan operator yang bersifat asosiatif kanan seperti operator = (Pohon urai untuk a=b=c akan tumbuh ke arah kanan).
Catatan tambahan :
Suatu operator + dikatakan bersifat asosiatif kiri bila suatu bilangan berada diantara dua tanda +, maka bilangan tersebut akan mengunakan operator yang ada disebelah kirinya. Pada kebanyakkan bahasa pemrograman, keempat operator arithmetic, penjumlahan, pengurangan, perkalian dan pembagian bersifat asosiatif kiri.
Beberapa operator yang sering digunakan seperti pemangkatan bersifat asosiatif kanan, sebagai contoh lain operator = pada bahasa C bersifat asosiatif kanan, karena ekspresi a=b=c berarti sama dengan a=(b=c).
Untuk rangkaian karakter a=b=c dimana operatornya bersifat asosiatif kanan digunakan tata bahasa berikut :
right => letter = right | letter
letter => a | b | ... | z
4. Lanjutkanlah gambar 3.4 berikut ini berdasarkan pada gambar 3.3 ...
*maaf ya gambarnya miring hehe KLIK gambar untuk melihat lebih jelas*
Jawab :
5. Jelaskan perbedaan antara pohon sintaks dengan pohon urai ...
Jawab : Pohon sintaks berbeda dengan pohon urai karena penerjemah yang tidak penting tidak terlihat pada pohon sintaks. Bisa dibilang, pohon urai sangat detail sedangkan pohon sintaks yang penting-penting saja. Untuk lebih jelasnya, lihat gambar berikut ini :
Komentar
Posting Komentar