$theTitle=wp_title(" - ", false); if($theTitle != "") { ?>
One Stop Computer Science
28 Sep // php the_time('Y') ?>
Definisi
Syntax adalah bentuk atau struktur dari ekspresi, pernyataan, dan unit program.
Semantics adalah terjemahan dari ekspresi, pernyataan, dan unit program.
Permasalahan dalam Mendeskripsikan Syntax:
Terminologi:
Definisi formal
Sebuah alat recognition membaca input string dari sebuah bahasa dan memutuskan apakah input sting merupakan sebuah bahasa.
Sebuah alat yang dapat menghasilkan kalimat dari sebuah bahasa. Alat ini dapat menentukan apakah kalimat tersebut benar menurut syntax dengan membandingkannya ke sebuah struktur generator.
BNF Fundamentals
Dalam BNF, abstraksi digunakan untuk merepresentasi kelas dari syntactic structure (nonterminal symbols atau terminals).
Terminal adalah lexemes atau tokens.
Peraturannya adalah memiliki lengan kiri (LHS) yang merupakan nonterminal dan lengan kanan (RHS) yang merupakan string terminals dan/atau nonterminals.
Nonterminals biasanya diapit oleh angle brackets (<>) seperti <ident_list> -> identifier | identifier.
BNF Rule
Sebuah abstraksi ( atau nonterminal symbol) boleh memiliki lebih dari satu RHS.
<stmt> -> <single_stmt>
| begin <stmt_list> end
Derivasi
Sebuah derivasi adalah aplikasi yang diulang oleh aturan tertentu, dimulai dari simbol start dan diakhiri dengan sebuah kalimat (all terminal symbols).
Setiap string dari simbol dalam derivasi merupakan sentential form.
Sebuah kalimat adalah sentential form yang hanya memiliki simbol terminal.
Sebuah derivasi yang paling kiri dimana yang paling kiri merupakan nonterminal dalam setiap sentential form adalah yang diperluas.
Sebuah derivasi mungkin tidak paling kiri atau paling kanan.
Ambiguitas dalam Grammar
Sebuah grammar adalah ambigu jika dan hanya jika sebuah grammar menghasilkan sentential form yang memiliki dua atau lebih distinct parse trees.
Static Semanctics
Context-free grammars (CFG) tidak dapat mendeskripsikan semua syntax dari programming language.
Kategori konstruksi yang menjadi masalah:
Attribute Grammars (AG)
AG adalah context-free grammar dengan beberapa tambahan sebagai berikut:
AG memiliki tambahan CFG untuk membawa semantic info ke parse tree nodes.
Nilai utama dari AG:
Contoh AG:
<assign> -> <var> = <expr>
<expr> -> <var> + <var> | <var>
Operational Semantics
Mendeskripsikan arti sebuah program dengan mengeksekusi pernyataan dalam mesin, baik simulasi maupun nyata. Perubahan lokasi dalam mesin menandakan arti dari pernyataan. Untuk mengoperasikan semantik, dibutuhkan high-level language dan sebuah virtual machine.
Operational semantics digunakan untuk: bahasa manual dan textbook serta untuk mengajarkan bahasa pemrograman.
Denotational Semantics
Sebuah proses membangun denotational specification untuk sebuah bahasa:
Axiomatic Semantics
Contoh:
Denotation Semantics vs Operational Semantics
27 Sep // php the_time('Y') ?>
Mengapa kita perlu mempelajari konsep dari Programming Language?
Kita dapat dengan mudah mempelajari bahasa pemrogaman dengan lebih mudah.
Pada dasarnya, semua bahasa pemrograman adalah serupa. Jika kita sudah memahami konsep yang ada, maka kita dapat dengan mudah memahami semua bahasa pemrograman. Kita juga dapat menggunakan bahasa pemrograman dengan lebih baik jika kita memahami konsep bahasa pemrograman.
Kriteria bahasa pemrograman yang baik
1. Readability: mudah dibaca dan dimengerti oleh banyak orang
2. Writeability: mudah digunakan untuk membuat program
3. Reliability: mudah untuk mencapai ekspektasi programmer
4. Cost: memiliki biaya yang terjangkau.
Penyebaran dalam Desain Bahasa Pemrograman
1. Computer Architecture
Bahasa yang dikembangkan oleh seorang arsitektur komputer terkenal yaitu Von Neumann.
Bahasa ini sangat terkenal karena komputer Von Neumann:
Metode Penyebaran Programming
Metode Implementasi
I. Compilation
II. Pure Interpretation
III. Sistem Implementasi Hybrid
Recent Comments