• Tidak ada hasil yang ditemukan

TM Teori Bahasa dan Otomata

N/A
N/A
Protected

Academic year: 2018

Membagikan "TM Teori Bahasa dan Otomata"

Copied!
15
0
0

Teks penuh

(1)

TUGAS MANDIRI

“ Teori Bahasa dan Otomata “

Nama Mahasiswa : Donny Hendri Wirawan

NPM : 130210259

Kode Kelas : 142-TI012-M1

Dosen : Sestri Novia Rizki, M. Kom

PROGRAM STUDI TEKNIK INFORMATIKA UNIVERSITAS PUTERA BATAM

(2)

KATA PENGANTAR

Puji syukur saya panjatkan ke Hadirat Tuhan Yang Maha Esa, karena berkat Rahmat dan Karunia-Nya sehingga saya dapat menyusun makalah “ Teori Bahasa dan Otomata ” ini dengan baik dan tepat pada waktunya.

Melalui kata pengantar ini saya lebih dahulu meminta maaf dan memohon permakluman bila mana isi makalah ini ada kekurangan dan ada tulisan yang saya buat kurang tepat.

Saya menyadari bahwa masih banyak kekurangan yang mendasar pada makalah ini. Oleh karena itu kami mengundang pembaca untuk memberikan saran serta kritik. Kritik konstruktif dari pembaca sangat saya harapkan untuk penyempurnaan makalah selanjutnya.

Akhir kata semoga makalah ini dapat memberikan manfaat bagi kita semua.

Batam, Juni 2015

(3)

DAFTAR ISI

1.2.3 MAR dan Memori...9

1.2.4 Register Data Memori...10

1.2.5 Register Instruksi (IR)...11

1.2.6 Pengendali-Pengurut...11

1.2.7 Akumulator...11

1.2.8 ALU dan Bendera...11

1.2.9 Register TMP, Register B, dan Register C...12

1.2.10 Bandar Keluaran...12

1.3 INSTRUKSI ACUAN MEMORI...12

1.3.1 LDA dan STA...13

1.3.2 MVI...13

1.3.3 Kode-kode Operasi...14

1.4 INSTRUKSI-INSTRUKSI REGISTER...16

1.4.1 MOV...16

1.4.2 ADD dan SUB...17

1.4.3 INR dan DCR...17

1.5 INSTRUKSI JUMP DAN CALL...19

1.5.1 JMP...20

1.5.2 JM...20

1.5.3 JZ...21

1.5.4 JNZ...21

1.5.5 CALL dan RET...22

1.6 INSTRUKSI LOGIKA...23

1.7 INSTRUKSI-INSTRUKSI YANG LAIN...25

(4)

1.8.3 Lompatan Bersyarat...31

1.8.4 Modus Pengalamatan...31

1.8.5 Byte...32

BAB III PENUTUP...44

(5)

BAB 13

Pengujian Regularitas Dan Algoritma Penyelesaian 1. Teorema Myhill-Nerode

Teorema:

Bahasa di V* adalah regular jika dan hanya jika himpunan kelas-kelas ekivalen dari relasi IL adalah berhingga.

L adalah nonregular jika dan hanya jika terdapat subset tak hingga dari V*, sembarang dua elemen dapat dibedakan(distinguishable) 2. Pumping Lemma untuk Himpunan Regular

Menggunakan keberhinggaan himpunan state FA utk menurunkan properti yg common semua bahasa regular. Ini akan menyediakan teknik lain utk menunjukkan bahasa bukan regular karena jika properti

dipakai bersama oleh semua bahasa regular dan bahasa2x tertentu dpt ditunjukkan tdk mempunyai properti itu, maka bahasa-bahasa ini bukan regular.

3. Isu –Isu Pada Himpunan Regular

FA merupakan langkah pertama menuju model komputasi general. FA hanya model komputasi sederhana. FA menerima masukan dan menghasilkan keluaran berbentuk “YA” dan “TIDAK” dalam arti sting masukan bisa atau tidak bisa menyebabkan FA berakhir di state akhir. Persoalan yg Ya atau Tidak seperti : “diberikan string x

beralphabet a dan b, apakah x berisi 2 kemunculan atau lebih dari string baa” atau “diberikan string beralphabet 0 dan 1 yaitu representasi biner dari bil. Asli n, apakah n dpt dibagi dgn pertanyaan2x tsb adlah instan dari kelas persoalan.

BAB 14

Terapan Ekspresi Regular Penerapan Ekspresi Regular

Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat menerimanya. Bahasa-bahasa yang diterima oleh suatu finite state automata bisa dinyatakan secara sederhana dengan ekspresi regular (regular expression).

Ekspresi regular dapat ditemukan di beragam aplikasi, antara lain:

1. Bahasa scripting, termasuk Perl, Tcl, awk, Phyton dsb. 2. Editor, termasuk Emacs, vi, dsb

3. Lingkungan pemrograman

(6)

1. Utilitas Grep

Global Regular Expression Parser (GREP)

Adalah utilitas utk mencari dan menampilkan baris-baris yg berisi pola yg dispesifikasikan.

Utilitas grep merupakan kakas standar sistem UNIX untuk

administrasi sistem dan pengembangan PL yg melibatkan pencarian string-string tertentu di file2x.

Utilitas jg disertai dikakas pengembangan seperti turbo pascal utk mengetahui kemunculan string di kumpulan file.

Penggunaan Grep di Sistem UNIX

Terdapat 2 cara utk menggunakan grep, yaitu : 1. Untuk menyaring keluaran dari perintah lain.

sintaks umum perintah : <command>|grep <pattern>.

misal, kita ingin melihat sistem proses yg sedang aktif di sistem, kita dpt memberi perintah berikut : $ ps –a | grep R.

pada perintah ini, grep hanya melewatkan baris2x berisi pola satu huruf tunggal R.

R=Resting

2. Untuk mencari baris-baris yg berisi pola di file tertentu.

Sintaks perintah grep <pattern> <filename> harus dilakukan secara hati-hati karena sering salah yaitu menspesifikasi nama file lebih dulu, baru pola string yg dicari. Selain itu kita harus mencari pola yg benar.

Pencarian String di file dengan Grep

Mencari teks file : program grep, egrep dan fgrep.

Program ini bekerja dgn mencari baris di file. Kita dpt mencari di satu file atau sejumlah file.

Egrep menggunakan sintaks sedikit berbeda dalam pencocokan pola, sedang fgrep menggunakan fixed string.

Rincian Utilitas grep, egrep dan fgrep

Sintaks :

grep [-[[AB]num][-[CEFGVBchilnsvwx]][-e] patern j – ffile ][files...] Grep mencari di file masukan baris-baris yg berisi pola yg dicari. Secara default, grep mencerak baris-baris yg ditemukan. Terdapat 3 varian utama grep, dikendalikan dengan option :

-G = menginterpretasikan pola pattern sbg ER dasar. default -E = menginterpretasikan pola pattern sbg extendedt ER

-F = menginterpretasikan pola pattern sbg daftar fixed string, dipisahkan baris-baris baru yg akan dicari.

(7)

Fasilitas ER, seperti : Perl, PHP, JavaScript dan Java. 1. Notasi ekspresi regular di bahasa PHP

=> string yg dipisahkan karakter | = logical OR

2. Tiap “ atom” yg dicari dpt diikuti karakter yg memodifikasi jumlah “atom” yg akan ditemukan berurutan.

Karakter asterik(*) , menyatakan “atom” sembarang jumlah “atom”

+ = sedikitnya satu kali

? = sekali atau tidak sama sekali

{ } = jumlah secara pasti

Tanda . = menemukan sembarang karakter

^ = menemukan awal string

$ = menemukan akhir string

BAB 15 LEX – FLEX

Pembuatan lexical analyzer dengan pendekatan dikodekan secara langsung di program kompilator mempunyai keunggulan efisiensi yg tinggi, namun LA sulit dipelihara.

Salah satu kakas yg terkenal adalah Lex.

Lex digunakan secara luas utk menspesifikasi LA beragam bahasa.

Program Lex dpt menerjemahkan deskripsi kumpulan token menjadi table driven lexical Analyzer.

Program Lex menggunakan teori bahasa utk menspesifikasikan himpunan token lexical analyzer .

Leksik-leksik yg berkorespondensi dgn token semuanya didefenisikan sbg serangkaian operasi himpunan.

Program kemudian menerjemahkan spesifikasi bahasa itu menjadi kode sumber C utk program komputer yg mengenali string2x di bahasa itu.

Spesifikasi untuk lex menggunakan ER.

ER adalah WFF(well form formula) pada gabungan(union), penyambungan(Concatenation), dan kleene Closure.

1. Lexical Analyzer dan Token

LA disebut scanner/tokenizer, menerjemahkan masukan menjadi bentuk yg lebih berguna untuk tahap-tahap kompilasi berikutnya.

LA merupakan antarmuka antara kode sumber program dan

penganalisis sintaks(parser).

Token = scanner yg melakukan pemeriksaan karakter per karakter pada teks masukan, memecah program sumber menjadi beberapa bagian.

Token merupakan unit / elemen dasar bahasa komputer (yg tidak dpt terbagi lagi).

(8)

Parser berfungsi menghasilkan pohon sintaks program yg didefenisikan grammar.

Simbol terminal pohon sintaks adalah token-token yg dihasilkan scanner.

Gbr : Hubungan scanner dan parser

3. Interaksi Scanner-Parser lebih rumit

Contoh :

- bahasa Pascal: type

Tday = 0..6; - bahasa C :

typedef int Tday;

LA harus menganggap string TDay sbg token bertype bukan identifier.

Parser memasukkan TDay ke tabel simbol,

mengidentifikasinya sbg type atau typedef, sehingga LA dpt memeriksa tabel simbol utk menentukan apakah lexeme adalah tipe token atau identifier.

4. Tugas-tugas Lexical Analyser

1. Konversi Program Sumber menjadi barisan Token

Mengubah program sumber barisan byte/karakter menjadi barisan token.

2. Menangani Kerumitan Sistem Masukan/Keluaran

=> Mengisolasi perangkat masukan/keluaran agar tdk terlihat oleh parser dan komponen2x kompilator lain.

5. Tugas-tugas Tambahan L.A.

(9)

2. Konversi literal/konstanta numerik

6. Pertimbangan LA dan Parser

Pemisahan tahap analisis menjadi LA dan Parser mempunyai alasan2x sbb:

1. Rancangan yg lebih sederhana 2. Peningkatan efisiensi kompilator 3. Peningkatan portabilitas kompilator 7. Tahap Pelaksanaan LA

Tahap pelaksanaan scanner

1. pada single on pass:

=> terjadi interaksi scanner dan parser. Scanner dipanggil parser saat parser memerlukan token berikutnya.

2. pada separate pass:

=> scanner memroses secara terpisah, dilakukan sebelum parsing. Hasil scanner disimpan dlm file. Dari file tsb, parsing melakukan kegiatannya.

8. Implementasi L.A.

Pengenalan Token:

1. scanner harus dpt mengenali token

2. terlebih dulu dideskripsikan token2x yg harus dikenali.

Cara mendiskripsikan token2x, yaitu : 1. Menggunakan regular grammar

kelemahannya : RG menspesifikasi token berbentuk pembangkitnya, sedangkan scanner perlu bentuk pengenalan.

2. Menggunakan ekspresi grammar

3. Model matematis yg dpt memodelkan pengenalan adalah

Finite State Acceptor(FSA) /FA.

9. SPESIFIKASI BAHASA

LA akan mengenali keyword if, then, else juga leksik yg ditandai sbg relop, id dan num.

Sebagai tambahan,kita mengasumsikan leksik2x dipisahkan white space(ws) yg berisi untaian blank, tab dan newline.

LA akan menghilangkan/membuang white space.

Hal ini dilakukan dgn membandingkan string terhadap defenisi regular ws sbb:

delim blank|tab|newline ws delim +

(10)

LEX digunkan utk menspesifikasi bahasa menggunakan ER.

Cara penggunaan Lex :

1. spesifikasi LA di persiapkan

2. setelah menjalankan lex compiler dgn masukan lex.spec, dihasilkan lex.yy.c. File lex.yy.c berisi representasi tabulasi diagram transisi yg dibangun dari ER lex.spec adalah kode C dan langsung di cantumkan di lex.yy.c

3. kemudian lex.yy.c dikompilasi dgn c compiler sehingga menghasilkan program objek a.out yg merupakan LA yg

mentranformasi stream masukan menjadi barisan token. 11. Spesifikasi Lex

Program Lex bersi 3 bagian, yaitu : Deklarasi-deklarasi

%%

Aturan-aturan penerjemahan %%

Prosedure-prosedure tambahan

Bagian deklarasi berisi deklarasi variabel, manifestasi konstanta dan defenisi regular.

Defenisi regular adalah kalimat-kalimat serupa dengan ER.

12. PEMAMFAATAN PATTERN-ACTION

Lex merupakan salah satu bahasa aksi-pola utk membangun LA.

Pada Lex, pola2x string dispesifikasi dgn ER dan Lex akan menghasilkan finite-automaton recognizer yg efisien utk ER.

Bahasa AWK menggunakan ER utk memilih baris-baris masukan yg

diolah dan shell di sistem UNIX memungkinkan pemakai mengacu sekumpulan nama file dgn menulis dlm ER.

Perintah rm*.o berarti memerintahkan menghapus semua file yg namanya diakhiri dengan “.o”.

BAB 16

EKSPRESI REGULAR DI BAHASA JAVA

Ketentuan ER di Java:

1. Literal 2. Wilcard

3. Kualifier: * dan + 4. Pengelompokan 5. Kelas-kelas karakter

6. Kelas-kelas karakter yg sudah didefenisi 7. Sekuensing

8. Pencocok batas

(11)

Literal

Adalah sembarang karakter di himpunan karakter yg tidak memiliki arti khusus di dlm ER. Literal di ER berarti hanya cocok dgn

karakter itu sendiri.

Contoh :

Ekspresi regular : a

String besar/target : a

String yg ditemukan adalah : a

Ekspresi regular : b

String besar/target : a

String yg ditemukan adalah : [tidak ada] Wilcard

Karakter . Mempunyai arti dapat cocok dgn sembarang karakter tunggal, kecuali ganti baris (newline). Ganti baris juga dpt sbg termasuk bila flag DOTALL dispesifikasikan.

Contoh :

Ekspresi regular : .

String besar/target : a

String yg ditemukan adalah : a

Ekspresi regular : .

String besar/target : ab

String yg ditemukan adalah : a (atau b jika evaluasi terjadi dari kanan ke kiri)

Kualifier * dan +

Karakter + adalah cocok untuk satu kopi atau lebih. Sedangkan karakter * dapat cocok dgn string kosong atau lebih.

Contoh :

Ekspresi regular : a*

String besar/target : aaa

String yg ditemukan adalah : aaa

Ekspresi regular : a*b*

String besar/target : aaa

String yg ditemukan adalah : aaa

Pengelompokan

Pasangan kurung digunakan utk menyatakan subekspresi regularsbg satu unit. Dgn demikian dapat dikenai suatu kualifier sbg satu unit.

Kelas-kelas karakter

Kelas karakter mendefinisikan sekelompok karakter individu.

Contoh :

Ekspresi regular : [abc]

(12)

Ekspresi regular : [abc]+

Arti : mencari string satu karakter atau lebih, a,b atau c

Ekspresi regular : [a-z]

Arti : mencari string a,b,...atau z, semua karakter dari sampai z

Sekuensing

Penyambungan 2 ER menciptakan ekspresi susunan. String harus cocok dgn ekspresi pertama, dan kemudian segera harus cocok ekspresi kedua, dst.

Pencocok Batas

Simbol spesial ^ dan $ digunakan utk menyatakan posisi dalam hubungan dgn baris teks yg dievaluasi.

Pencocokan tidak Tamak.

Semua ER diatas adalah tamak, dalam arti berusaha menemukan sebanyak mungkin karakter yg memenuhi syarat.

Paket java.util.regex

Fasilitas ER di defenisikan 3 kelas, yaitu : 1. Pattern, mempresentasikan ER

2. Matcher, menemukan pattern pd string yg dimasukkan 3. Pattern Syntax Expression-Exception, yg dilemparkan saat berusaha mengkompilasi ER.

Program java terdiri 3 kelas

1. LexerRule, satu aturan tunggal dari lexer

2. LexerToken, satu token tunggal dari stream masukan yg memenuhi LexerRule tertentu.

3. Lexer, program utama yg melakukan parse terhadap file spesifikasi dan melakukan analisis leksikal terhadap file masukan.

BAB 17

(13)
(14)

BAB III PENUTUP

(15)

DAFTAR PUSTAKA

http://www.monsoonacademy.com/2980-Sejarah-dan-Perkembangan-SAP.article http://ryanwihardi.blogspot.com/

http://rahmaraniy.blogspot.com/2014/11/makalah-organisasi-dan-arsitektur.html

http://andi-granderist.blogspot.com/2012/10/tugas-organisasi-arsitektur-komputer_9734.html

Referensi

Dokumen terkait

3.1 Staf yang berada di dalam kategori kritikal iaitu Bahagian Keselamatan, Pusat Kesihatan Universiti, Kolej-Kolej Kediaman, Pejabat HEP dan Pusat Perumahan Pelajar,

Banjir adalah peristiwa yang terjadi ketika aliran air yang berlebihan merendam daratan yang diakibatkan oleh volume air di suatu badan air seperti sungai atau danau yang

Parsing sebagai search: top-down, bottom-up Top-down + bottom-up: v1 Tiga masalah dengan algo v1 Chart parsing Contoh parsing Contoh grammar G: S → NP VP S → Aux NP VP S → VP NP →

Jika turunan pertamanya nol, yang mununjukkan suatu kemiringan nol dan karena itu suatu dataran dalam fungsi, sedangkan turunan keduanya negatif, yang berarti

Untuk masalah maksimisasi, solusi optimal suatu PL adalah suatu titik dalam daerah fisibel yang menyebabkan nilai fungsi objektif terbesar.. (Winston

1. Data yang diambil mencakup data jarak yang diuji warehouse bahan baku dan warehouse bahan baku dan warehouse picking order. Penelitian dilakukan pada jarak tempuh yang

Walaupun efisiensi pemanfaatan tidak berbeda nyata dengan suhu media pemeliharaan, tapi dari hasil yang ditunjukkan suhu 29°C (perlakuan C) merupakan suhu terbaik dalam

Pokok-Pokok Kebijakan Pengawasan penyelenggaraan Pemerintahan Daerah Tahun 2009 mengacu pada Undang-Undang Nomor 32 Tahun 2004 tentang Pemerintahan Daerah, Peraturan Pemerintah