Otomata dan Teknik Kompilasi
Otomata
Otomata adalah mesin abstrak yang menggunakan model matematika, tetapi matematika yang digunakan benar-benar berbeda dibanding matematika klasik dan kalkulus. Model yang digunakan adalah model mesin state (state machine model) atau model trnasisi state (state transition model).
Terdapat 3 model komputasi pada teori otomata.
- Finite automata
- Pushdown automata
- Turing Mavhine
Memori Otomata
Otomata dibedakan berdasarkan jenis memori sementara yang dimilikinya, yaitu:
- Finite automata (FA)
Tidak memiliki memori sementara. Finite automata adalah kelas mesin dengan kemampuan-kemampuan paling terbatas.
- Pushdown automata (PDA)
Memiliki memori sementara dengan mekanisme LIFO (Last In, First Out). Mesin ini lebih ampuh karena bantuan keberadaan stack yang dipandang sebagai unit memori
- Turing Machine (TM)
Memiliki memori dengan mekanisme pengaksesan acak (Random akses memori). Turing Machine merupakan model matematika untuk komputer saat ini.
Sejarah Otomata dan Teori Bahasa
Otomata bermula sebelum komputer ada pada teori di bidang sistem logika matematika atau formal, ilmuwan David Hilbert telah mencoba menciptakan algoritma umum untuk pembuktian (seluruh) persoalan matematika secara otomatis yaitu mampu menentukan salah benarnya sembarang prosisi matematika.
Tahun 1931, Kurt G�del mempublikasikan teori ketidaklengkapan dimana membuktikan prosedur/algoritma yang dikehendaki David Hilbert tersebut tidak akan pernah ada.
G�del membangun rumus di kalkulus predikat yang diterapkan pada bilangan bulat yang memiliki pernyataan-pernyataan definisi yang tidak dapat dibuktikan maupun dibantah di dalam sistem logika yang mungkin dibangun manusia.
Formalisasi argumen teorema ketidaklengkapan G�del ini berikut penjelasan dan formalisasi selanjutnya dari prosedur efektif secara intuisi merupakan salah satu pencapaian intelektual terbesar abad 20, yaitu abad dimana formalisasi berkembang semarak.
Pengembangan teori otomata, komputasi dan teori bahasa berikutnya difasilitasi perkembangan bidang psyco-linguistic. Bidang psyco-linguistic berupaya menjawab pertanyan-pertanyan berikut:
- Apakah bahasa secara umum?
- Bagaimana manusia mengembangkan bahasa?
- Bagaimana manusia memahami bahasa?
- Bagaimana manusia mengajarkan bahasa ke anak-anaknya?
- Apa gagasan-gagasan yang dapat dinyatakan dan bagaimana caranya?
- Bagaimana manusia membangun kalimat-kalimat dari gagasan-gagasan yang berada di pikirannya?
Sekitar tahun 1950-an, Noam Chomsky menciptakan model matematika sebagai sarana untuk mendeskripsikan bahasa serta menjawab pertanyaan-pertanyaan di atas. Saat ini dimulai pendalaman bidang bahasa komputer.
Perbedaan antara bahasa komputer dan bahasa manusia adalah sampai sekarang belum diketahuinya bagaimana cara manusia mengartikan bahasa, sementara dengan pasti dapat mengartikan bahasa pada komputer.
Noam Chomsky mengemukakan perangkat format disebut grammar untuk memodelkan properti-properti bahasa.
Grammar berisi sejumlah aturan serta menspesifikasikan bahasa tertentu.
Bahasa berisi semua string yang dapat dihasilkan menggunakan aturan-aturan grammar.
Meski pembahasan Chomsky terutama ditujukan untuk bahasa alami, grammar mempunyai nilai/manfaat sangat besar di ilmu informatika/komputer karena pencapaian ini digunakan untuk mendeskripsikan dan mendefinisikan sintaks bahasa pemrograman dan bahasa-bahasa formal lainnya.
Grammar diterapkan pada perancangan kompilator dan bidang-bidang di ilmu komputer.
McCulloch dan Pitts mengemukakan Mesin Abstrak sederhana yaitu finite automata untuk memodelkan neuron nets.
Finite automata juga digunakan untuk merancang switching circuit. Studi mengenai teori otomata terkait bidang-bidang lain di ilmu komputer.
Kemudian ekivalensi antara finite automata dan ekspresi reguler (reguler expression) dikemukakan Stephen Kleene. Sejak saat itu teori bahasa dikaitkan secara erat dengan teori bahasa formal. ubungan teori otomata dan teori pengkodean (coding theory) juga banyak diteliti.
Turing machine seperti komputer modern saat ini dapat mengolah (simbol-simbol di tape) dan mengahasilkan keluaran (simbol-simbol yang berada di tapenya setelah berakhirnya sebarisan pergerakkan) merupakan karya teoritis dari Alan Turing.
Karena banyak yang berperan pada pengembangannya, bidang teori ini diberi aneka ragam nama yaitu:
- teori otomata (theory of automata)
- teori bahasa formal (theory of formal language)
- teori mesin turing (theory of Turing machine).
Teknik Kompilasi
T U J U A N
Mengetahui Penerapan konsep ilmu komputer pada perilaku komputer yaitu algoritma, arsitektur komputer, stuktur data maupun penerapan teori bahasa dan automata
Compiler adalah merupakan konstruksi inti dari ilmu komputer
ARTI KATA TEKNIK KOMPILASI
Teknik : Metode atau Cara
Kompilasi : Proses mengabungkan serta menterjermahkan sesuatu
(source program) menjadi bentuk lain
Compile : To translate a program written in a high-level programming language into machine language.
Translator : Compiler & Interpreter
Translator : Adalah suatu program dimana mengambil input sebuah program yang ditulis pada satu bahasa program (source language) ke bahasa lain (The object on target language)
Jika source language adalah high level language, seperti cobol, pascal, fortran maka object language adalah low-level language atau mesin language. Translator seperti ini disebut COMPILER
Kenapa perlu Translator ?
-Dengan bahasa mesin adalah bahasa bentuk bahasa terendah komputer, berhubungan langsung dengan bagian bagian komputer seperti bits, register & sangat primitive
-Jawaban atas pertanyaan ini akan membingungkan bagi programmer yang membuat program dengan bahasa mesin.
-Bahasa mesin adalah tidak lebih dari urutan 0 dan 1
-Instruksi dalam bahasa mesin bisa saja dibentuk menjadi micro-code, semacam prosedur dalam bahasa mesin
-Bagaimana dengan orang tidak mengerti bahasa mesin
Ada Beberapa Translator
1. Assembler
Source code adalah bahasa assembly, Object code adalah bahasa mesin
*.asm –>assembler–>object code (*.exe/*.com)
2. Compiler
Source code adalah bahasa tingkat tinggi, object code adalah bahasa mesin atau bahasa assembly. Source code dan data diproses berbeda
3. Interpreter
Interpreter tidak menghasilkan bentuk object code, tetapi hasil translasinya hanya dalam bentuk internal, dimana program induk harus selalu ada-berbeda dengan compiler
COMPILER vs INTERPRETER
Compiler bisa menangkap berbagai kesalahan dalam 1 program kode sumber secara sekaligus. Kalau Interpreter cuma bisa menangkap beberapa kesalahan pada 1 baris kode sumber pada suatu saat
Biasanya program yang dihasilkan compiler lebih cepat dari waktu pelaksanaan program dengan interpreter.
Kalau compiler menghasilkan kode antara (misal object code) dan harus digabungkan / dilink menjadi bentuk yang dapat dijalankan mesin / komputer (executable). Kalau Interpreter biasanya tidak menghasilkan kode antara.
Kalau hendak menjalankan program hasil kompilasi bisa dilakukan tanpa kode sumber. Kalau interpreter butuh kode sumber
Kalau dengan kompiler, maka pembuatan kode yang bisa dijalankan mesin dilakukan dalam 2 tahap terpisah, yaitu parsing / pembuatan kode objek dan linking / penggabungan kode objek dengan library. Kalau interpreter tidak ada proses terpisah.
Kalau compiler membutuhkan linker untuk menggabungkan kode objek dengan berbagai macam library demi menghasilkan suatu kode yang bisa dijalankan oleh mesin. Kalau interpreter tidak butuh linker.
Interpreter cocok untuk membuat / menguji coba modul / sub-routine / program-program kecil. Kalau compiler agak repot karena untuk mengubah suatu modul / kode objek kecil, maka harus dilakukan proses linking / penggabungan kembali semua objek dengan library yang diperlukan.
Pada kompiler bisa dilakukan optimisasi / peningkatan kwalitas kode yang bisa dijalankan. Ada yang dioptimasi supaya lebih cepat, ada yang supaya lebih kecil, ada yang dioptimasi untuk sistem dengan banyak processor. Kalau interpreter susah / tidak bisa dioptimasikan
Proses kompilasi dikelompokkan ke dalam dua kelompok besar :
1.analisa : program sumber dipecah-pecah dan dibentuk menjadi bentuk antara (inter-mediate representation)
2.sintesa : membangun program sasaran yang diinginkan dari bentuk
Penganalisa Leksikal
membaca program sumber, karakter demi karakter. Sederetan (satu atau lebih) karakter dikelompokkan menjadi satu kesatuan mengacu kepada pola kesatuan kelompok karakter (token) yang ditentukan dalam bahasa sumber. Kelompok karakter yang membentuk sebuah token dinamakan lexeme untuk token tersebut. Setiap token yang dihasilkan disimpan di dalam tabel simbol. Sederetan karakter yang tidak mengikuti pola token akan dilaporkan sebagai token tak dikenal (unidentified token)
Penganalisa Sintaks
memeriksa kesesuaian pola deretan token dengan aturan sintaks yang ditentukan dalam bahasa sumber. Sederetan token yang tidak mengikuti aturan sintaks akan dilaporkan sebagai kesalahan sintaks (sintax error). Secara logika deretan token yang bersesuaian dengan sintaks tertentu akan dinyatakan sebagai pohon parsing (parse tree)
Penganalisa Semantik
memeriksa token dan ekspresi dari batasan-batasan yang ditetapkan. Batasan-batasan tersebut misalnya :
a. panjang maksimum token identifier adalah 8 karakter,
b. panjang maksimum ekspresi tunggal adalah 80 karakter,
c. nilai bilangan bulat adalah -32768 s/d 32767,
d. operasi aritmatika harus melibatkan operan-operan yang bertipe sama
Pembangkit Kode Antara
membangkitkan kode antara (intermediate code) berdasar-kan pohon parsing. Pohon parse selanjutnya diterjemahkan oleh suatu penerjemah yang dinamakan penerjemah berdasarkan sintak (syntax-directed translator). Hasil penerjemahan ini biasanya merupakan perintah tiga alamat (three-address code) yang merupakan representasi program untuk suatu mesin abstrak. Perintah tiga alamat bisa berbentuk quadruples (op, arg1, arg2, result), tripels (op, arg1, arg2). Ekspresi dengan satu argumen dinyatakan dengan menetapkan arg2 dengan – (strip, dash)
Pengoptimal kode
melakukan optimasi (penghematan space dan waktu komputasi), jika mungkin, terhadap kode antara
Pembangkit Kode Mesin
membangkitkan kode dalam bahasa target tertentu (misalnya bahasa mesin)
Pembuatan compiler
Bahasa mesin
-Sangat sukar dan sangat sedikit kemungkinannya untuk membuat compiler dengan bahasa ini, karena manusia susah mempelajari bahasa mesin,
-Sangat tergantung pada mesin,
-Bahasa Mesin kemungkinan digunakan pada saat pembuatan Assembler
Assembly
-Hasil dari program mempunyai Ukuran yang relatif kecil
-Sulit dimengerti karena statement/perintahnya singkat-singkat, butuh usaha yang besar untuk membuat
-Fasilitas yang dimiliki terbatas
Bahasa Tingkat Tinggi (high level language)
-Lebih mudah dipelajari
-Fasilitas yang dimiliki lebih baik (banyak)
-Memiliki ukuran yang relatif besar, misal membuat compiler pascal dengan menggunakan bahasa C
-Untuk mesin yang berbeda perlu dikembangkan tahapan-tahapan tambahan.
-Misal membuat compiler C pada Dos bedasarkan compiler C pada unix
Bahasa Tingkat Tinggi (Pemrograman )
-Bahasa yang lebih dikenal oleh manusia, maksudnya adalah statement yang digunakan menggunakan bahasa yang dipakai oleh manusia (inggris),
-Bahasa pemrograman didefinisikan dengan menentukan bentuk programnya (sintak) dan arti programnya (semantik)
-Memberikan fasilitas yang lebih banyak, seperti struktur kontrol program yang terstruktur, blok-blok serta prosedur dan fungsi-fungsi
-Progam mudah untuk di koreksi (debug)
-Tidak tergantung pada salah satu mesin
-Kontrol struktur seperti : kondisi (if .. Then.. Else ),
perulangan (For, while ), Struktur blok (begin.. End { .. } )
Tingkatan Bahasa Pemrograman
-4GL Language
-High level Language
-Assembly Language
-Machine Language
SKENARIO PERANCANGAN BAHASA PEMROGRAMAN
-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/
klik disini pdf,ppt untuk mendownload file
Advertisements
Report this ad
Report this ad
9 thoughts on “Teknik Kompilasi”
Diana October 19, 2011 at 12:50 am
Selamat pg..
Mas/Mba’, ada g materi atau makalah ttg mata kuliah Teknik Kompilasi, diantara materi2 dibwah ini:
1. Intermediate Code Generation
2. Implementasi Three Address Statement
3. Deklarasi
4. Code Optimation
5. Optimasi Basic Block
6. Natuaral Loop
7. Data Flow Analisis.
soalnya sy sdh nyari kemn2 tp g ktmu & hanya bhs inggris, jk ada Mas/Mba’ tlg bnget ya dikirm ke email sy di “dianadji@ymail.com”.
Atas bntuannya sy ucpkn banyak terma ksh..
Reply
3onoikom October 19, 2011 at 5:21 am
Dari file ppt dan pdf yang bisa di download apakah ada, materi yang dicari?
Reply
Pingback: Teknik Kompilasi 1_ Tahapan Kompilasi | My Simple Blog
Pingback: Modul Teknik Pemrograman Terstruktur | Terbaru 2015
Pingback: Materi Bahasa Pemrograman Komputer | Terbaru 2015
Pingback: Modul Pemrograman Assembly | Terbaru 2015
Agung Nugroho December 25, 2016 at 9:01 am
gan mau nanya dong ini ane di kasi tugas untuk melihat source code dari program yang di buat menggunakan visual C , nah ane dikasi contoh programnya aja, gmana iaa caranya melihat source codenya saja dari contoh program itu? ektensi program ane .exe
Reply
Pingback: Sistem Operasi : TEKNIK KOMPILASI | Mari Berbagi
Melva Lumban Gaol February 26, 2017 at 5:29 am
mau tanya….kalau dari segi susunannya ….Interpreter itu sebenarnya bagian dari Compiler dan assembler atau compiler itu bagian dari interpreter dan assembler atau assemble bagian dari interpreter dan kompiler??tolong ia
Reply
Leave a Reply
Your email address will not be published. Required fields are marked *
Comment
Name *
Email *
Website
Post Comment
Silahkan mencari
Silahkan mencari
Silahkan memilih
Silahkan memilih
Blog Stats
175,067 hits
January 2018
M T W T F S S
« Nov
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
November 2017
October 2017
August 2017
March 2017
October 2016
September 2016
May 2016
March 2016
January 2016
November 2015
August 2015
May 2015
October 2014
March 2014
February 2014
November 2013
October 2013
January 2013
October 2012
March 2012
May 2011
April 2011
February 2011
November 2010
July 2010
June 2010
May 2010
March 2010
February 2010
January 2010
August 2009
April 2009
March 2009
Social
View triono.h.saputra’s profile on FacebookView Putr4_hadi’s profile on Instagram
Almamater komunitas
My New Campus
My old Campus
My Office
Bisnis
OLX
Bukalapak
Lazada
Traveloka
Tokopedia
Pengetahuan
nanik suharti Sistem Pakar
Ilmu Download
Fahmi Sistem Pakar
Ilmu Jarkom
Ilmu php
Ike sari astuti Sistem Pakar
Amelia agustin Sistem Pakar
Saisanto Sistem Pakar
DYADARAKAREN Sistem Pakar
Putr4
3onoikom
Hours & Info
Bogor
Recent Posts
Cupang Hias
Endless OS
Contoh Windows Shortcut
Jenis type file
Memunculkan tanda koma atau titik pada mail merge (nominal nilai uang)
Recent Comments
Marsan on Perintah Command Prompt – Berm…
Admin on Hard Reset Motorola XT910 Razr
uje on Hard Reset Motorola XT910 Razr
mohamed on Hard Reset Motorola XT910 Razr
3onoikom on Hard Reset Motorola XT910 Razr
Search
Search …
Go
Upcoming Events
No upcoming events
Silahkan
RSS Feed RSS - Posts
RSS Feed RSS - Comments
Follow
:)
Global Komputer - All about Computer
Learning about computer
Global Komputer - Home Page
[Sistem Operasi] [Komunikasi Data] [Database] [Teknologi] [Programming] [Teknik Kompilasi] [Otomata]
Home > Otomata
Mesin Pencari
Pencarian
Global Komputer Essential
Ekspresi Reguler
Finite Automata
Info Status
Online : 1 user
periode 24 jam terakhir
1 hit(s)
Validator
Valid XHTML 1.1
Valid CSS!
Tools
eXTReMe Tracker
Ads, Information or Related about Computer
Rumah Studio
The Real Management
Recording Sound Engineering
Equipped with :
Rode, Alesis,Fender,Yamaha
Shure, Sabian, Remo, Mackie
ECHO, PreSonus, Music Man
Phone : +62 819 602 8707
Medan
The Real Management
The Real Management
Andakah yang kami cari ?
Kirimkan foto close up anda ke :
Real Management Ruko Blok E1 Lantai 3
Jl. Lebak Bulus I No. 1 Cilandak Barat
Jakarta Selatan 12430
Phone : 021-22702102
info lebih detail hubungi
Phone : +628161898512, +622157936487
Kedai Jasmin
Perum Taman Sari Bukit Damai Blok B3 No 30 Jl Raya Parung - Serpong, Pedurenan, Gunung Sindur, Bogor
Call / SMS : +62817762181 (Mila)
Menyediakan dan menjual :
- Madu ASLI Hutan Sumatra
- HABATUSSAUDA
- MADU ARAB
- PIL SEDAP MALAM
- KRIM MINYAK ZAITUN
- BUKU-BUKU ISLAMI
- PAKAIAN, TAS dan SEPATU
- TERALIS, KANOPI, dsb
- SOUVENIR PERKAWINAN
Arie's Wedding Organizer
Perum Taman Narogong Indah Blok F 29 No 11 Bekasi
- Dekorasi Pelaminan
- Tata Rias dan Busana
- Foto dan Video Shooting
- Hiburan
- Compliment
Phone :
02183464447, 02199671075, 081319792428, 085659934444
Hipotesa
Jarak terdekat antara benda di bumi merupakan jarak terjauh antara kedua benda tersebut. Jarak terjauh dapat dilihat bila kedua benda tersebut diukur dari jarak berlawan sehingga harus mengelili bumi terlebih dahulu
Perputaran bumi (rotasi) memiliki kecepatan melebihi kecepatan pesawat terbang. Dapat dilihat dari contoh bila lama perjalanan pesawat dari Jakarta ke medan adalah 2 jam, bumi berputar cukup membutuhkan waktu sekitar 30 menit (perbedaan waktu magrib untuk Jakarta dan Medan). Berarti 4 kali kecepatan pesawat penerbangan
Semakin cepat jantung berdetak, semakin lama waktu berlalu. Manusia dengan detak jantung cepat akan terlihat melaksanakan sesuatu dengan cepat, sebaliknya orang yang berdetak lambat akan merasa dia baru melakukan sedikit untuk hari ini. Efek bagi manusia dengan detak jantung cepat adalah hipertensi tinggi
Pegumpalan darah di otak dapat dikurangi dengan mengkonsumsi nenas
Sumber segala Obat sebagian besar ada di tanah. lalu air, udara, dan panas matahari. Dari tanah yang sama di bantu dengan air, udara dan sinar matahari yang sama bisa hidup tumbuh-tumbuhan yang berbeda, termasuk tumbuh-tumbuhan yang sering menjadi penyembuh penyakit-penyakit tertentu
Otomata
Teori Bahasa dan Otomata
Bahasa adalah struktur yang dikendalikan sekumpulan aturan tertentu, semacam mesin untuk memproduksi makna. Akan tetapi seperti setiap mesin hanya terdapat kemungkinan terbatas bagi setiap orang dalam menggunakannya.
Dalam bahasa disediakan pembendaharaan kata atau tanda (vocabulary), serta perangkat aturan bahasa (grammar, sintaks) yang harus dipatuhi jika hendak menghasilkan sebuah ekspresi yang bermakna.
Proses Kemampuan Pemahaman Bahasa
Hipotesis Noam Chomsky menggugat postulat John Locke (tokoh empirisme) yang menyatakan segala pengetahuan yang dimiliki manusia berasal dari rangsangan-rangsangan luar (pengalaman) yang ditangkap oleh indera-indera manusia, sehingga meniadakan pengetahuan apriori (pengetahuan yang langsung tertanam di manusia)
Noam Chomsky menyandarkan pada pemahaman bahasa sebagai sesuatu yang bersifat khas dan bawaan (tertanam) pada manusia sejak lahir.
Secara khusus Chomsky dipengaruhi Descartes tentang bahasa dan pikiran yang terikat begitu erat sehingga pengetahuan tentang bahasa bisa membuka pengetahuan tentang pikiran manusia.
Secara mendasar bahasa adalah bagian psikologi manusia yang dipahami sebagai teori tentang kemampuan pikiran manusia berupa ungkapan dari subjek psikologi.
Chomsky dan para ahli bahasa telah mengamati anak kecil mampu menjadi lancar berbahasa lebih cepat dan mudah dibanding "algoritma belajar berbahasa".
Sehingga para ahli bahasa membuat hipotesis otak berisi/memuat suatu "mesin bahasa umum". Kemudian selama masa awal pertumbuhan anak, terjadi pertemuan dengan bahasa sehari-hari yang mengubah mesin bahasa umum menjadi mesin bahasa partikular (tertentu) ke bahasa spesifik.
Teori Bahasa
Teori Bahasa adalah konsep-konsep pada "string alpabet V" dalam penyambungan karakter-karakter alpabet untuk membentuk suatu makna (bahasa).
- Alpabet
Adalah himpunan simbol (karakter) tak kosong yang berhingga. Alpabet digunakan untuk membentuk kata-kata (string-string) di bahasa. Bahasa dimulai dengan alpabet. Pada beberapa buku, alpabet dilambangkan dengan Σ
Istilah huruf, karakter dan simbol adalah sinonim menunjukkan elemen alpabet. Jika simbol berbaris bersebelahan, maka diperoleh "string simbol". Istilah kalimat, kata dan string adalah sinonim
Contoh :
{a,b} -> Himpunan yang terdiri dari simbol "a" dan "b".
- Penyambungan (Concatenation - o)
Penyambungan dilakukan pada 2 karakter atau lebih membentuk 1 barisan karakter (string simbol).
Contoh :
'a' o 'b' = 'ab'
'ab' o 'baab' = 'abbaab'
- String pada alpabet V
Karakter atau barisan karakter pada alpabet V dibentuk dari penyambungan karakter pada alpabet V.
String pada alpabet V adalah deretan (sekeun) simbol dari V dimana perulangan simbol diijinkan.
Contoh :
V = {a,b,c,d}
String pada alpabet V antara lain -> 'a','abcd','bbba'
Pemangkatan
Penyambungan dapat dianggap sebagai perkalian karena biasanya penulisannya adalah bila x dan y string, maka x o y adalah xy. sehingga pemangkatan dapat digunakan
VoV = VV = V2 ----> Panjang string = 2
VoVoV = V2oV=V3 -> Panjang string = 3
VoVoVoV = N4 ----> Panjang string = 4
VoVoVo...oV=Vn ---> Panjang string = n
Vk = VoVoVo...oV
adalah himpunan string dengan panjang k, masing-masing simbol adalah alpabet V
V* = {ε} U V+ (Kleene closure)
adalah string pada V, termasuk string kosong dimana ε string kosong (string tanpa simbol)
ε mempunyai sifat identitas, yaitu:
ε o x = x
x o ε = x
V+ = V1 U V2 U V3 U ... (Positive closure)
adalah himpunan string pada V, tidak ada string kosong didalamnya.
V0 = {ε}
adalah himpunan yang isinya hanya string kosong, dimana String kosong ε tidak sama dengan himpunan kosong �
Maka 'bbba' dapat ditulis 'b3a'
Panjang String
Panjang string dilambangkan |w| dimana panjang string adalah jumlah simbol di dalam string bukan pada alpabet dan pengulangan kemunculan simbol dihitung.
Contoh:
|ε| = 0
|a| = 1
|aa| = 2
|aaa| = 3
|aaab| = 4
Tidak ada komentar:
Posting Komentar