TM Teori Bahasa dan Otomata

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

2015

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
Penulis

DAFTAR ISI
KATA PENGANTAR...............................................................................................2

DAFTAR ISI............................................................................................................3
BAB I PENDAHULUAN........................................................................................5
BAB II ISI................................................................................................................7
1.1 REGISTER DUA-ARAH..............................................................................7
1.2 ARSITEKTUR...............................................................................................7
1.2.1 Bandar Masukan.....................................................................................8
1.2.2 Pencacah Program...................................................................................8
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.6.1 CMA......................................................................................................23
1.6.2 ANA......................................................................................................23
1.6.3 XRA......................................................................................................24
1.6.4 ANI........................................................................................................24
1.6.5 ORI........................................................................................................25
1.6.6 XRI........................................................................................................25
1.7 INSTRUKSI-INSTRUKSI YANG LAIN....................................................25
1.7.1 NOP.......................................................................................................25
1.7.2 HLT.......................................................................................................26
1.7.3 IN..........................................................................................................26

1.7.4 OUT......................................................................................................26
1.7.5 RAL.......................................................................................................26
1.7.6 RAR......................................................................................................27
1.8 IKHTISAR SAP-2.......................................................................................27
1.8.1 Keadaan T.............................................................................................27
1.8.2 Bendera.................................................................................................28

1.8.3 Lompatan Bersyarat..............................................................................31
1.8.4 Modus Pengalamatan............................................................................31
1.8.5 Byte.......................................................................................................32
BAB III PENUTUP...............................................................................................44
DAFTAR PUSTAKA.............................................................................................45

BAB 13
Pengujian Regularitas Dan Algoritma Penyelesaian
1. Teorema Myhill-Nerode



Teorema:

Bahasa di V* adalah regular jika dan hanya jika himpunan kelaskelas 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
4. Kakas khusus semacam grep, lex, sed dsb.

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 : |grep .
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 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.
2. Ekspresi Regular di bahasa PHP

• 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).
2. Hubungan dengan Parser




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.
1. Penghilangan komentar dan whitespace

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. KAKAS PEMBANGKIT L.A.




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.
2.
3.
4.
5.
6.
7.
8.
9.

Literal
Wilcard
Kualifier: * dan +
Pengelompokan
Kelas-kelas karakter
Kelas-kelas karakter yg sudah didefenisi
Sekuensing
Pencocok batas
Pencocokan tidak tamak

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]
– Arti : mencari string a, b dan c






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
CONTEXT FREE GRAMMAR
1. Context Free Language

BAB III PENUTUP
Demikian yang dapat saya paparkan mengenai Tugas Mandiri Arsitektur
dan Organisasi Komputer ini.materi yang menjadi pokok bahasan dalam makalah
ini, tentunya masih banyak kekurangan dan kelemahannya, kerena terbatasnya
pengetahuan dan kurangnya rujukan atau referensi yang ada hubungannya dengan
judul makalah ini.

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-arsitekturkomputer_9734.html
http://dejangkar.blogspot.com/2012/10/makalah-organisasi-dan-arsitektur.html
http://indrarmcf.blogspot.com/2014/01/penjelasan-organisasi-arsitektur.html