You are on page 1of 22

Syntax, Semantic & Grammar

Konsep Bahasa Pemrograman Materi 3 Yudianto Sujana, M.Kom

Thursday, May 28, 2009

Denisi
Bahasa pemrograman merupakan notasi formal Mempunyai 2 komponen utama Syntax dan Semantic Syntax: Kumpulan aturan formal yang menspesikasikan
komposisi suatu program yang terdiri dari huruf, angka, dan karakter lain Semantic: Mendenisikan arti dari program yang benar secara syntax dari bahasa tersebut

Thursday, May 28, 2009

Desain Bahasa Pemrograman

Kriteria desain bahasa pemrograman Abstraction Kemampuan untuk mengkonstruksi suatu pola yang berulang-ulang, contoh: subprocedure Simplycity Kesederhanaan, semakin sedikit konsep untuk dapat dimengerti, semakin baik Regularity Keteraturan, semakin sedikit melanggar aturan semakin baik Konsistensi Ketetapan suatu alur atau bentuk bahasa contoh: A(i) pada VB Translation Penerjemah yang cepat dan menghasilkan kode tujuan yang esien

Thursday, May 28, 2009

Syntax

Kumpulan aturan yang mendenisikan suatu bentuk bahasa Syntax mendenisikan bagaimana suatu kalimat dibentuk sebagai barisan/urutan dari pemilihan suatu kata dasar Kata dikonstruksikan dengan karakter-karakter alfabet contoh keyword (reserve word) dalam bahasa C while, do, if, else, dll Syntax mengatur cara mengkombinasikan kata-kata tersebut ke dalam suatu statement dengan bentuk yang benar sehingga dapat disusun suatu program yang dapat berjalan dengan benar Syntax tidak mengerti arti atau isi dari suatu kalimat, semantic yang bisa mengartikannya Syntax menyediakan bentuk-bentuk notasi untuk kominikasi antara programmer dan pemroses bahasa pemrograman, sehingga mempermudah pembuatan suatu program

Thursday, May 28, 2009

Syntax

Syntax memiliki beberapa kriteria Readability Mudah dibaca Writeability Mudah ditulis Veriability Verikasi program (konsep kebenaran) Kemudahan Translasi Mudah bagi manusia, sulit di translasi Pengurangan Ambiguitas Dua arti atau lebih contoh A(i) Array atau pemanggilan fungsi

Thursday, May 28, 2009

Syntax
Syntax didenisikan dengan dua kumpulan aturan Lexical dan Syntactic Lexical: menspesikasikan kumpulan karakter yang
terdapat dalam alphabet dari bahasa dan cara supaya karakter-karakter tersebut dikombinasikan ke dalam kata-kata yang valid dan diterima Syntactic: elemen-elemen yang mengatur bentuk suatu statement-statement dalam bahasa pemrograman

Thursday, May 28, 2009

Elemen-elemen Syntactic
Himpunan Karakter ASCII - Karakter angka dan huruf Identier Umumnya string dari huruf dan angka Simbol untuk operator Simbol matematika Keyword dan Reserved Word Kata-kata milik bahasa, biasanya tidak boleh
digunakan sebagai identier

Thursday, May 28, 2009

Elemen-elemen Syntactic

Komentar Dokumentasi program /* pada bahasa c family */ Blank (spasi) diabaikan Delimiter dan Tanda Kurung Elemen awalan dan akhiran statement begin ... end { ... } Ekspresi Suatu fungsi yang mengakses data dalam suatu program dan mengembalikan suatu nilai

Thursday, May 28, 2009

Semantic
Mendenisikan arti dari program yang benar secara
syntax dari bahasa tersebut int nilai[10] Semantic akan menentukan deklarasi diatas akan menyebabkan ruang sebanyak 10 elemen integer yang diberikan kepada variabel nilai if (a > b) max = a else max = b; Ekspresi a > b harus dievaluasi terlebih dulu, tergantung dari nilai ini satu dari dua statement di belakangnya akan dieksekusi

Thursday, May 28, 2009

Any Questions?
Sebutkan komponen utama bahasa
pemrograman

Sebutkan aturan-aturan dalam Syntax

Thursday, May 28, 2009

Tingkatan Translasi
Translasi dari syntax ke executable merupakan
pusat implementasi bahasa pemrograman Kecepatan dan esiensi eksekusi menjadi tujuan utama. Translasi dibagi dua Analisa input program sumber Synthesis program objek yang executable

Thursday, May 28, 2009

Thursday, May 28, 2009

Analisa Input Program Sumber


Program sumber dilihat oleh translator sebagai
kumpulan urut-urutan simbol. Suatu program yang diatur rapi oleh programmer tidak akan terlihat oleh translator Dibutuhkan analisa-analisa berikut: Analisa Lexical Tahap dasar dari translasi, mengerjakan pengelompokkan urut-urutan karakter ke dalam komponen pokok: identier, delimiter, simbol operator, angka, keyword, blank, komentar, dst.
Thursday, May 28, 2009

Analisa Input Program Sumber


Analisa Syntactic Biasa disebut parsing Struktur program yang lebih besar diidentikasi:

statement, deklarasi, ekspresi, dll Analisa Semantic Pusat dari tahapan translasi Struktur syntatic hasil dari syntatic analyzer diproses Menghasilkan suatu kode objek yang executable sederhana Akan dimanipulasi oleh tahap optimasi sampai jadi kode executable
Thursday, May 28, 2009

Synthesis Program Objek yang Executable



Merupakan tahapan akhir suatu translasi yang berfokus pada pembangunan program yang executable Terdiri dari beberapa tahapan: Optimasi Menghilangkan inesiensi kode Mengubah kode yang tidak esien menjadi kode yang esien Penghasil Kode Dibentuk sebagai bahasa Assembly, kode mesin atau program obyek lainnya Linking dan Loading Bersifat optional Menggabungkan potongan-potongan kode yang dihasilkan dari translasi terpisah kedalam program nal executable yang utuh

Thursday, May 28, 2009

Grammar
Suatu kumpulan aturan (production) yang
menentukan urut-urutan karakter Suatu formal grammar adalah grammar biasa yang ditentukan dengan menggunakan notasi yang ketat Ada dua kelas grammar yang berguna untuk teknologi compiler EBNF Grammar Regular Grammar
Thursday, May 28, 2009

EBNF Grammar
Extended Backus-Naus Form Metalanguage Bahasa yang digunakan untuk mendeskripsikan
bahasa lain Menggunakan notasi matematis ::=, <, >, |, *, +, {, }, [, ] Disebut metasymbol Suatu bahasa yang dideskripsikan dalam EBNF merupakan suatu kumpulan aturan

Thursday, May 28, 2009

EBNF Grammar
<program> ::= {<statemen>*} <statemen> ::= <assignment> | <conditional> | <loop> <assigment> ::= <identier> = <expr>; <conditional> ::= if <expr> {statemen*} | if <expr> {<statemen>+} else {<statemen>+} <loop> ::= while <expr> {<statemen>+ } <expr> ::= <identier> | <number> | (<expr>) | <expr> <operator> <expr> <operator> ::= + | - | * | / | = | <> | < | > | <= | >= <identier> ::= <letter> <digit>* <letter> ::= a | b | c | ... | z | A | B | C | ... | Z <digit> ::= 0 | 1 | 2 | ... | 9
Thursday, May 28, 2009

EBNF Grammar
Simbol ::= * + | < ... > { ... }
Thursday, May 28, 2009

Arti Didenisikan sebagai Nol atau lebih pemunculan elemen yang terdahulu Satu atau lebih pemunculan elemen yang terdahulu Pilihan atau Elemen yang ada didalamnya merupakan non-terminal Elemen yang ada didalamnya merupakan terminal

EBNF Grammar
A = B + 1

Thursday, May 28, 2009

Syntax Diagram
program

statemen

assignment
statemen

conditional loop
Thursday, May 28, 2009

Any Questions?
Analisa apa saja yang dibutuhkan pada tahap
Analisa Input Program Sumber Apa yang dimaksud dengan metalanguage

Thursday, May 28, 2009

You might also like