Tujuan perancangan bhs program
Komunikasi dengan manusia Pencegahan dan deteksi kesalahan Usability Efektifitas pemrograman Compilability (mengurangi kompleksitas,mis:penggunaan bracket) Efisiensi dengan meminimalisir ketidakcocokan antara hardware dengan bahasa
Tujuan perancangan bhs program(2)
Machine independent Simplicity :penyederhanaan komponen bahasa program Orthogonality : kumpulan primitive yang dikombinasikan dengan berbagai cara dalam membangun kontrol dan struktur data dalam bahasa program
Struktur Ekspresi Metode pengurutan evaluasi dalam ekspresi : Explicit Bracketing Operator binding Binding adalah asosiasi antara atribut dan entity atau antara operasi dan simbol. Binding time adalah waktu yang dialokasikan untuk menyatukan variable dengan nilainya.
Struktur Data Empat aspek dalam struktur data Deklarasi data Tipe data yang tersedia Alokasi storage Lingkup variabel
Struktur I/O
Format free langsung ditampilkan sehingga mudah bagi user untuk memeriksa kebenaran program. Contoh pada VB. Formatted output ditampilkan secara terformat, seperti di C : printf(), delphi/VB : format()
ANDAIKAN......
Anda akan menciptakan sebuah bahasa program, coba sebutkan urutan proses yang harus ditentukan/skenario yang dijalani untuk menghasilkan bahasa pemrograman impian Anda tersebut !
SKENARIO PERANCANGAN 1. 2. 3. 4. 5. 6. 7.
8. 9.
Tentukan apa yang diinginkan. Tentukan feature yang mungkin Tentukan desain dan sesuaikan dengan featurenya Tentukan rincian, parsing, dan error checking. Tuliskan user manual dan help. Evaluasilah, jika salah mulai lagi dari langkah 3. Jika sudah benar, optimisasilah dan uji segala kemungkinan. Cobakan kepada pengguna, tunggu reaksinya. Perbaiki bug dan mulai versi baru.
Tools Bantu Compiler Free Compiler Construction Tools http://www.thefreecountry.com/developercity/compiler.html
TASSKAF. Bahasa TASSKAF ini merupakan subset dari Java. Dapat disusun suatu program ke byte code yang dapat dijalankan di Java Virtual Machine (JVM). Pada site tersebut juga tersedia informasi materi kuliah dengan LEX, YACC http://rw4.cs.uni-sb.de/~martin/COMP/TK/
GENTLE. Gentle ini merupakan perangkat bantu (toolkit) modern untuk menulis compiler dan mengimplemntasikannya pada bahasa tertentu. Perangkat bantu ini mendukung semua proses translasi, dari definisi tree sintaks abstrak, pater matching, smart traversal dan lain sebagainya. Toolkit ini telah digunakan secara luas di riest dan industri .http://www.first.gmd.de/gentle/
ELI. Merupakan suatu lingkungan pemrograman yang memungkinkan membuat suatu implementasi bahasa pemrograman secara lengkap dari suatu sepsifikasi. Perangkat bantu ini menangani struktural analisis, analisis nama, type, value dlsb dan akan menghasilkan kode C. http://www.cs.colorado.edu/~eliuser/
ANTLR, ANother Tool for Language Recognition, is a language tool that provides a framework for constructing recognizers, interpreters, compilers, and translators from grammatical descriptions containing actions in a variety of target languages
Made by : Terrence Parr
For 15 Years 15 TH ?
IDE SISTEM PEMBELAJARAN CERDAS What’s a Surprise?
Top Topic Skripsi with Compiler technique
KONSEP dan NOTASI BAHASA
Konsep dan Notasi bahasa
Teknik Kompilasi merupakan kelanjutan dari konsep-konsep yang telah kita pelajari dalam teori bahasa dan automata
Thn 56-59 Noam chomsky melakukan penggolongan tingkatan dalam bahasa, yaitu menjadi 4 class
Penggolongan tingkatan itu disebut dengan hirarki Comsky
1959 Backus memperkenalkan notasi formal baru untuk syntax bahasa yang lebih spesifik
Peter Nour (1960) merevisi metode dari syntax. Sekarang dikenal dengan BNF (backus Nour Form)
Konsep dan Notasi bahasa
Tata bahasa (grammar) adalah sekumpulan dari himpunan variabel-variabel, simbol-simbol terminal, simbol non-terminal, simbol awal yang dibatasi oleh aturan-aturan produksi
Aturan produksi adalah pusat dari tata bahasa yang menspesifikasikan bagaimana suatu tata bahasa melakukan transformasi suatu string ke bentuk lainnya
Konsep dan Notasi bahasa
Syntax : suatu aturan yang memberitahu apakah sesuatu kalimat (string) adalah valid dalam program atau tidak
Semantic : suatu aturan-aturan yang memberikan arti kepada program
Review Mesin Automata Misal : FSA Misal : Ada mesin penjual permen yang Memuat aturan2 sbb : Harga Permen Rp.25 Mesin tsb dpt menerima koin Rp.5 (n), Rp.10 (d) Rp.25 (q) $ = tombol utk mengeluarkan permen. Kemungkinan2 yang Terjadi diperlihatkan gambar :
Review Mesin Automata Misal : FSA FSA State Diagram nya adalah :
Contoh lain : FSA
Konsep dan Notasi bahasa Penggolongan Chomsky Bahasa Mesin Automata
Aturan Produksi
Tipe 3 Atau Regular
Finite state automata (FSA) meliputi; deterministic Finite Automata (DFA) & Non Deterministic Finite Automata (NFA)
Tipe 2 Atau Contex Free
Push Down Automata
adalah simbol variabel
Tipe 1 Atau Contex Sensitive
Linier Bounded Automata
|| <= ||
Tipe 0 Atau Unrestricted/ Phase Structure/ natural language
Mesin Turing
Tidak ada Batasan
adalah simbol variabel maksimal memiliki sebuah simbol variabel yang bila ada terletak diposisi paling kanan
Keterangan
menyatakan simbol – simbol yang berada di ruas kiri aturan produksi menyatakan simbol – simbol yang berada di ruas kanan aturan produksi Simbol-simbol terdiri dari simbol terminal dan non terminal/variabel (masih bisa diturunkan lagi) Simbol terminal biasanya dinyatakan dengan huruf kecil, sementara non terminal dengan huruf besar
Aturan Produksi
Tipe O / Unrestricted: Tidak Ada batasan pada aturan produksi Abc De Tipe 1 / Context sensitive: Panjang string ruas kiri harus lebih kecil atau sama dengan ruas kanan Ab DeF CD eF
Tipe 2 / Context free grammar: Ruas kiri haruslah tepat satu simbol variable B CDeFg D BcDe Tipe 3 / Regular: Ruas kanan hanya memiliki maksimal 1 simbol non terminal dan diletakkan paling kanan sendiri Ae A efg A efgH CD
Aturan produksi yang tidak legal !!!
Simbol E tidak boleh berada pada ruas kiri misal E Abd Aturan produksi yang ruas kirinya hanya memuat simbol terminal saja misal : a bd atau ab bd