• Tidak ada hasil yang ditemukan

KONSEP DAN NOTASI BAHASA

N/A
N/A
Protected

Academic year: 2018

Membagikan "KONSEP DAN NOTASI BAHASA"

Copied!
8
0
0

Teks penuh

(1)

SINTAKS

Bahasa mesin adalah bentuk terendah komputer. Kita dapat berhubungan langsung dengan bagian-bagian yang ada di dalam komputer seperti bits, register. Bahasa mesin terdiri dari bit-bit 0 dan 1. Bagaimana dengan orang yang tidak mengerti bahasa mesin? . Bahasa mesin tergantung jenis komputer yang digunakan. Bagaimana jika jenis computer mengalami perubahan?. Oleh karena itu manusia berusaha menciptakan suatu bahasa yang dapat dimengerti baik oleh manusia maupun computer, yang disebut dengan nama bahasa tingkat tinggi. Pada bahasa tingkat tinggi ke dalam bahasa mesin dibutuhkan sesuatu untuk menterjemahkan agar mesin computer mengerti apa yang diinginkan oleh manusia, yaitu :

1. Interpreter 2. Compiler

Untuk membuat penterjemah seperti compiler perlu dibuat standar atau tata bahasa (aturan) seperti manusia berkomunikasi mempunyai tata bahasa agar lawan bicaranya dapat mengerti yang dibicarakan. Demikian juga untuk menterjemahkan ke dalam mesin, harus dibuat suatu aturan agar computer mengerti apa yang diinginkan oleh manusia melalui program yang dibuatnya.

SINTAKS

Sintaks merupakan kumpulan aturan yang mendefenisikan suatu bentuk bahasa. Sintaks mendefenisikan bagaimana suatu kata dikembangkan menjadi suatu statement yang benar sehingga dapat disusun menjadi suatu program yang dapat berjalan dengan benar.

Sintaks dari bahasa pemrograman di defenisikan dengan 2 kumpulan aturan, yaitu:

1. Aturan Lexical (Lexical Analysis)/ Scanner 2. Aturan Syntactic (Syntactic Analyzer)/ Parser

KONSEP DAN NOTASI BAHASA

(2)

• Bahasa : Kumpulan symbol-simbol yang ditulis secara berurutan. • Kalimat adalah deretan symbol-simbol terminal

• Tata bahasa (Grammar) : Sekumpulan dari himpunan variabel-variabel, simbol-simbol terminal, simbol non-terminal, symbol awal yang dibatasi oleh aturan-aturan produksi.

• Simbol Terminal:

o Huruf kecil alphabet : a,b,c,….,z

o Digit 0,1,2,…,9

o Simbol tanda baca seperti tanda kurung, koma dsb

o Simbol operator +,- dsb

o Rangkaian tercetak tebal spt: if, then, else

• Simbol Non Terminal :

o Huruf Besar Alfabet : A,B,C,…,Z

o Huruf S sebagai symbol awal

o String yang tercetak miring, spt expr

• Tata Bahasa G didefenisikan sebagai pasangan 4 tuple yaitu VT,VN, S,Q yang dituliskan G=( VT,VN, S Q) dimana:

VT = himpunan symbol terminal VN = himpunan symbol non terminal S = Simbol awal

Q = Himpunan/aturan produksi

• Tahun 1956 -1959 Noam Chomsky melakukan penggolongan tingkatan dalam bahasa, yaitu menjadi 4 class yang disebut dengan hirarki Chomsky.

• Tahun 1959 Backus memperkenalkan notasi formal baru untuk sintaks bahasa yang lebih spesifik.

(3)

Contoh tata bahasa sederhana :

• <program> B | b|i| <stat> ; <stat> END • <factor> <var> | <constant>

• <var> A | B |…..| Z • <op1> + | - | = • <op2> ^ | * | /

• <constant> <real_number> | <integer_part>

Contoh :

Begin A : 1 B : A + 1 End

ATURAN PRODUKSI

• Aturan produksi dinyatakan dalam bentuk : α β (α menghasilkan(menurunkan) β)

• α simbol-simbol untuk ruas kiri, β simbol-simbol untuk ruas kanan • Simbol-simbol bisa berupa terminal atau non-terminal

• Contoh aturan produksi:

T a artinya T menghasilkan a

(4)

HIRARKI CHOMSKY

Tipe 0 = Unresticted

Tipe 1 = Context Sensitive

Tipe 2 = Context Free

Tipe 3 = Regular

Berdasarkan komposisi bentuk ruas kiri dan ruas kanan produksinya (α → β), Noam Chomsky mengklasifikasikan 4 tipe grammar :

• Tipe 0 ( Unrestricted Grammar) Ciri : α, β∈ (VTVN)*, α> 0

Tidak ada batasan aturan produksi

Abc De

• Tipe 1 (Context Sensitive Grammar) Ciri : α, β∈ (VTVN)*, 0 < α≤β

Jumlah/panjang string ruas kiri harus <= ruas kanan Ab DeF

CD eF

• Tipe 2 (Context Free Grammar) Ciri : α∈ VN, β∈ (VTVN)*

Ruas kiri haruslah tepat satu simbol variabel non-terminal B CdeFg

D BcDe

• Tipe 3 (Regular Grammar)

Ciri : α∈ VN, β∈ {VT, VTVN} atau α∈ VN, β∈ {VT, VNVT}

Mengingat ketentuan simbol-simbol, ciri-ciri RG sering dituliskan sebagai : α ∈ VN, β ∈ {a, bC} atau α ∈ VN, β ∈ {a, Bc}

Tipe 0

Tipe 3 Tipe 2

(5)

NOTASI BNF (Backus Nour Form)

• Aturan produksi dapat dinyatakan dengan notasi BNF • BNF menggunakan abstraksi untuk struktur sintaks :

::= : sama identik dengan simbol

<identifier> ::= <letter> | <identifier><letter>

<letter> ::= a|b|c|…|y|z

• Aturan Leksikal

Berhubungan dengan bahasa sering disebut dengan SCANNER bertugas sebelum proses syntax analyzer dan intermediate code dilakukan dimana tugas analisis leksikal ini mendekomposisikan program sumber menjadi bagian-bagian kecil (Token). Tugas-tugasnya secara detil adalah :

1. Mengidentifikasi semua pesan yang mengandung bahasa 2. Mentransformasikan ke token-token (simbol terminal) 3. Menentukan jenis dari token-token

4. Menangani kesalahan, mengabaikan komentar,blank 5. Menangani table simbol

6. Scanner di desain untuk mengenali keyword, operator, identifier 7. Mengelompokan urutan karakter kedalam komponen pokok spt

identifier, delimiter,symbol operator,angka, keyword dll. Kelompok karakter yang membentuk sebuah token dinamakan lexeme

Contoh :

(6)

• Identifier dapat berupa keyword seperti : IF THEN ELSE, BEGIN….END (pada PASCAL), integer (PASCAL), int,float (Bahasa C)

• Konstanta besaran yang berupa bilangan bulat (integer), bilangan pecahan (float/real), Boolean (true/false), string dsb

• Operator : Operator aritmatika, operator logika (and, or,not), operator relational (<,>,=,!=)

• Delimiter : berguna sebagai pemisah / pembatas seperti kurung buka, kurung tutup, titik, koma, titik dua, titik koma, white space

• White space : pemisah yang diabaikan oleh program seperti enter, spasi

Contoh:

Statement : Fahrenheit := 32 + celcius * 1.8

Maka akan diterjemahkan ke dalam token-token sebagai berikut:

Identifier : Fahrenheit id1 S

Operator : :=

Integer : 32 id1 := ekspresi

Operator penjumlahan : +

Identifier : celcius id2 Farenheit 32 + id2 * 1.8

Operator perkalian : *

Real / Float : 1.8 cecius

Token Lexeme

Const Const

If If

Relation <,<=,=,>=,>, < >,

Identifier Pi, Count,D2

(7)

SINTAKS ANALYZER (PARSER)

Bertugas memeriksa kebenaran dari urutan token-token yang terbentuk oleh leksikal analisis. Pengelompokkan ke dalam class sintaks (bentuk sintaks) seperti procedure, stat n dan ekspresi. Grammar dipakai oleh sintaks analyzer untuk menetukan struktur dari program sumber. Proses pendeteksian (pengenalan token) disebut dengan parsing, maka syntax analyzer sering disebut dengan parser.

Pohon sintaks yang dihasilkan digunakan untuk semantic analyzer yang bertugas untuk menentukan maksud dari program sumber, misalnya operator penjumlahan maka semantic analyzer akan mengambil aksi apa yang harus dilakukan.

GRAMMAR CONTEXT-FREE DAN PARSING

Bentuk umum produksi CFG adalah : α→β, α∈ VN, β∈ (VNVT)*

Analisis sintaks adalah penelusuran sebuah kalimat (atau sentensial) sampai pada simbol awal grammar. Analisis sintaks dapat dilakukan melalui derivasi atau parsing. Penelusuran melalui parsing menghasilkan pohon sintaks.

Sebuah kalimat yang mempunyai lebih dari satu pohon sintaks disebut kalimat ambigu (ambiguous). Grammar yang menghasilkan paling sedikit sebuah kalimat ambigu disebut grammar ambigu.

S S

S O S S O S

A * S O S S O S + 7

2 A + A A * A

(8)

Contoh 1 :

Diketahui grammar G1 = {I → HI HIA, H → abc...z, A → 012...9}

dengan I adalah simbol awal. Berikut ini kedua cara analisa sintaks untuk kalimat x23b.

cara 1 (derivasi) cara 2 (parsing)

I ⇒ IH I

⇒ IAH

⇒ IAAH I H

HAAH

xAAH I A b

⇒ x2AH

x23H I A 3

⇒ x23b

H 2

Metoda Parsing

Ada 2 metoda parsing : top-down dan bottom-up. 1. TOP-DOWN PARSING

Konstruksi pohon sintaks dimulai dari akar dilanjutkan turun ke bawah menuju daun

2. BOTTOM-UP PARSING

Referensi

Dokumen terkait

gambar desain interior yang cocok untuk calon client , dan dari pihak perusahaan.. seringkali kebingungan untuk mengerti desain seperti apa yng diinginkan oleh

 Sistem Kerja Kompleks : interaksi lebih dari satu elemen diantara elemen Manusia, Mesin dan Lingkungannya.  Sistem kerja manusia, mesin dan lingkungan melibatkan

Oleh karena itu, salah satu cara untuk menyelesaikan masalah tersebut adalah dengan dibuatnya sistem berbasis aturan untuk identifikasi penyakit tropik pada

Dengan demikian orang- orang yang berperan dalam kepemimpinan supervisi harus mengerti kondisi suatu organisasi dan memiliki tinjauan terhadap apa yang dapat dilakukan

Prediksi yang dibuat siswa tidak dibatasi oleh guru, sehingga guru juga dapat mengerti miskonsepsi apa yang banyak terjadi pada diri siswa. Hal ini penting bagi guru dalam

Hukum adalah seperangkat norma tentang apa yang benar dan apa yang salah, yang dibuat atau diakui eksistensinya oleh pemerintah, yang dituangkan baik dalam aturan

Dengan demikian orang- orang yang berperan dalam kepemimpinan supervisi harus mengerti kondisi suatu organisasi dan memiliki tinjauan terhadap apa yang dapat

• Interaksi proses menerjemahkan tujuan antara apa yang diinginkan user dan apa yang harus dikerjakan sistem sehingga akan terjadi interaksi yang baik antara manusia dan komputer.