Selasa, 09 Februari 2010

Materi 3

| |

Bahasa pemrograman merupakan notasi formal yang mempunyai 2 komponen utama yaitu syntax dan semantic. Bahasa pemrograman yang baik juga memiliki beberapa kriteria. Kriteria desain bahasa pemrograman adalah:
-Abstraction: kemampuan untuk mengkonstruksi suatu pola yang berulang-ulang
-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
-Translation: penerjemah yang cepat dan menghasilkan kode tujuan yang efisien

Syntax
Merupakan kumpulan aturan yang mendefinisikan suatu bentuk bahasa. Syntax mendefinisikan bagaimana suatu kalimat dibentuk sebagai barisan/urutan dari pemilihan suatu kata dasar. Kata-kata itu dikonstruksikan dengan karakter-karakter alfabet. 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 lah yang nanti mengartikannya. Syntax menyediakan bentuk-bentuk notasi untuk komunikasi antara programmer dan pemroses bahasa pemrograman, sehingga mempermudah pembuatan suatu program. Syntax didefinisikan dengan dua kumpulan aturan yaitu lexical dan syntactic. Lexical menspesifikasikan kumpulan karakter yang terdapat dalam alphabet dari bahasa dan cara supaya karakter-karakter tersebut dikombinasikan ke dalam kata-kata yang valid dan diterima. Sedangkan syntactic adalah elemen-elemen yang mengatur bentuk suatu statement-statement dalam bahasa pemrograman.

Syntactic memiliki beberapa elemen yaitu:
  • Himpunan karakter: ASCII (karakter angka dan huruf)
  • Identifier: umumnya string dari huruf dan angka
  • Simbol untuk operator: simbol matematika
  • Keyword dan Reserved Word: kata-kata milik bahasa, biasanya tidak boleh digunakan sebagai identifier
  • Komentar: dokumentasi program
  • Blank: spasi diabaikan
  • Delimiter dan Tanda Kurung: elemen awalan dan akhiran statement
  • Ekspresi: suatu fungsi yang mengakses data dalam suatu program dan mengembalikan suatu nilai

Syntax memiliki beberapa kriteria:
  • Readability(mudah dibaca)
  • Writeability(mudah ditulis)
  • Verifiability(konsep kebenaran)
  • Kemudahan translasi(makin mudah bagi manusia, makin sulit di translasi
  • Pengurangan ambiguitas(dua arti atau lebih)

Semantic
Semantic mendefinisikan arti dari program yang benar secara syntax dari bahasa tersebut.
Sebagai contoh kita mendeklarasikan suatu variabel seperti ini:

int nilai[10]

Oleh semantic, deklarasi di atas akan memberikan ruang sebanyak 10 elemen integer kepada variabel nilai. Translasi dari syntax ke executable program merupakan pusat implementasi bahasa pemrograman. Dalam hal translasi yang baik adalah kecepatan dan efisiensi eksekusi yang cepat. Proses translasi terbagi dua, yaitu analisa input program sumber dan synthesis program objek yang executable

Dalam 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. Untuk menganalisanya dibutuhkan analisa-analisa berikut:
  • Analisa Lexical: tahap dasar dari translasi, mengerjakan pengelompokkan urut-urutan karakter ke dalam komponen pokok seperti identifier, keyword, komentar, dll.
  • Analisa Syntactic: biasa disebut parsing, dan yang diidentifikasi merupakan struktur program yang lebih besar seperti statement, ekspresi, deklarasi, dll.
  • Analisa Semantic: pusat dari tahapan translasi yang menghasilkan suatu kode objek yang executable sederhana. Pada tahap ini akan dimanipulasi oleh tahap optimasi sampai jadi kode executable.

  • Sedangkan synthesis program objek yang executable merupakan tahapan akhir suatu translasi yang berfokus pada pembangunan program yang executable dan terdiri dari beberapa tahapan, yaitu:
  • Optimasi: menghilangkan inefisiensi kode dan mengubah kode yang tidak efisien menjadi kode yang efisien
  • Penghasil kode: dibentuk sebagai bahasa assembly, kode mesin atau program obyek lainnya
  • Linking dan loading: menggabungkan potongan-potongan kode yang dihasilkan dari translasi terpisah ke dalam program final executable yang utuh

Grammar
Grammar adalah suatu kumpulan aturan 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 yaitu EBNF Grammar dan Regular Grammar.

EBNF Grammar atau Extended Backus-Naus Form Grammar merupakan metalanguage yang berarti bahasa yang digunakan untuk mendeskripsikan bahasa lain. Grammar ini menggunakan notasi matematis atau biasa disebut metasymbol. Suatu bahasa yang dideskripsikan dalam EBNF merupakan suatu kumpulan aturan.
Contoh nya:
::= {*}
::= | |
::= = ;
::= if{+} else {+}
::= while {+}
::= | | () |
::= +|-|*|/|=|<>|<|>|<=|>=
::= *
::= a|b|c|...|z|A|B|...|Z
::= 0|1|2|3|...|9

Maksud dari simbol-simbol di atas adalah:
::= --> didefinisikan sebagai
* --> nol atau lebih pemunculan elemen yang terdahulu
+ --> satu atau lebih pemunculan elemen yang terdahulu
| --> atau
<...> --> elemen yang ada di dalamnya merupakan non-terminal
{...} --> elemen yang ada di dalamnya merupakan terminal

0 komentar:

top

Posting Komentar

Mengenai Saya

NOVIANTO 672008013 ALBERT T S 672008027 DEDDY U W 672008085 ANDI H P 672008131 BENALDO Q 672008240