Professional Documents
Culture Documents
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
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
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
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
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
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
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
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
Any Questions?
Sebutkan komponen utama bahasa
pemrograman
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
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
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
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
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