Senin, 24 Oktober 2011

PENERAPAN KONSEP BAHASA DAN AUTOMATA

  • Sejarah Teori bahasa dan automata
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, KurtGdel mempublikasikan teori ketidaklengkapan dimana membuktikan prosedur/algoritma yang dikehendaki David Hilbert tersebut tidak akan pernah ada. KurtGdel 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 KurtGdel 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.
          
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 computer.
           
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.
          
Grammar diterapkan pada perancangan kompilator dan bidang-bidang di ilmu komputer.McCulloch dan Pittsmengemukakan 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.
  • Penerapan Bahasa dan Automata Dalam konsep Keilmuan
            Teori automata yang selama ini lebih banyak diterapkan dalam bidang tata bahasa formal khususnya dalam pengembangan sebuah compiler, juga dapat digunakan untuk melakukan pemodelan dan pendekatan pemecahan masalah masalah yang berkaitan dengan aplikasi-aplikasi di dalam bidang kecerdasan Buatan. Bahkan pada beberapa masalah spesifik yang berkaitan dengan keputusan dan model mesin hanya tepat jika solusinya didasarkan pada solusi automata.Kelebihan penggunaan teori automata dibanding pohon keputusan dalam memodelkan ruang keadaan adalah lebih sederhana jika terdapat beberapa keadaan yang berulang. Penerapan teoritis automata untuk pengembangan suatu sistem adalah dengan menggunakan teori automata sebagai sebuah paradigma yang menggabungkan spesifikasi sistem, verifikasi dan sintesis.

A.Kecerdasan buatan

            Kecerdasan Buatan adalah bidang ilmu yang mendasarkan bagaimana sebuah komputer bisa bertindak seperti dan sebaik manusia. Dewasa ini, Penggunaan kecerdasan buatan dibutuhkan diberbagai disiplin ilmu. Irisan antara psikologi dan kecerdasan Buatan melahirkan area cognition and psycolinguistic. Irisan antara teknik elektro dengan kecerdasan buatan melahirkan ilmu : pengolahan citra, teori kendali, pengenalan pola dan robotika. Irisan ilmu manajemen dan kecerdasan buatan menghasilkan sistem pendukung keputusan. Adanya irisan penggunaan kecerdasan buatan diberbagai disiplin ilmu menyebabkab cukup rumitnya untuk mengklasifikasikan lingkup bidang ilmu kecerdasan buatan, sehingga pengklasifikasian lingkup kecerdasan buatan didasarkan pada output yang diberikan yaitu pada aplikasi komersial.
Lingkup aplikasi kecerdasan buatan meliputi :
 
1. sistem pakar

2. Pengolahan bahasa alami

3. Pengenalan ucapan

4. Robotika dan sistem sensor

5. Computer vision

6. Problem solving and planning

7. Permainan




Sumber Internet
  • Http//www.globalkomputer.com

Minggu, 09 Oktober 2011

Otomata dan Pengantar Kompilasi

Otomata dan Pengantar Kompilasi

OPK berisi  konsep-konsep yang berupa: karakter, string, kata, token,kalimat, bahasa; Beserta contoh tata bahasa dengan menggunakan istilah simbol terminal, non terminal, produksi, derivasi; serta serta hubungan tatabahasa dengan bahasa.
Tipe bahasa.Klasifikasi tatabahasa Chomsky beserta perbandingan dan sifat khusus keempat tatabahasa : unrestricted, context sensitive, context free, regular, beserta contohnya.
Proses kompilasi; Mulai dari jenis bahasa, perancangan bahasa pemrograman, translator, hingga pada proses kompilasi dari fase analisa (leksikal, sintaks, dan semantik) hingga ke fase sintesa (pembentukan dan optimalisasi kode) beserta contohnya, dilanjutkan dengan mutu kompilator
Finite State Automata; definisi, jenis (NFA dan DFA), serta kegunaan dan jenisnya, penyajiannya serta penggunaannya di dalam kompiler; dibahas pula ekuivalensi dan pengembangannya
NFA. Konsep NFA, perbedaan DFA dengan NFA, NFA dengan epsilon, serta penggabungan NFA; dibahas pula ekuivalensi NFA dan DFA;
Ekspresi reguler, dan hubungan dengan bahasa reguler, serta hubungan dengan NFA, dibahas pula salah satu contoh aplikasi regex
Analisa leksikal; istilah serta mekanismenya pada suatu compiler
Analisa sintaks; leftmost dan rightmost derivation, pohon urai, parsing, ambiguitas serta sifat dan hubungan dengan tatabahasa bebas konteks
Penyederhanaan tatabahasa bebas konteks, meliputi aturan produksi unit , useless dan e-move
Bentuk normal chomsky, mekanisme pembuatannya dan parsing menggunakan algoritma CYK
Analisa semantik dan kode antara. Mekanisme analisa semantik dan pembentukan berbagai kode antara menggunakan notasi postfix dan n-tuple.
Optimasi. Fungsi, kriteria , jenis dan mekanisme optimasi, baik optimasi lokal maupun global
Storage. Hirarki dan mekanisme storage pada kompiler, environtment, run time memory organization, serta mode passing parameter ditinjau dari sudut pandang compiler
Cara penanganan kesalahan; jenis kesalahan langkah penanganan kesalahan;reaksi kompilator dalam menangani kesalahan
TEKNIK KOMPILASI
1.Teknik Kompilasi

Merupakan Teknik dalam melakukan pembacaan suatu program yang ditulis dalam bahasa sumber, kemudian diterjemahkan ke dalam suatu bahasa lain yang disebut bahasa sasaran.

Dalam melakukan proses penerjemahan tersebut, sudah barang tentu kompilator akan melaporkan adanya keanehan-keanehan atau kesalahan yang mungkin ditemukannya. Proses penerjemahan yang dilakukan oleh kompilator ini disebut proses kompilasi (compiling).

Bila dipandang sepintas lalu, maka akan timbul beranekaragam kompilator yang dapat dibuat,
- Bahasa Sumber seperti bahasa FORTRAN, PASCAL, C dan juga bahasa-bahasa lainnya yang sifat dan pemakaiannya agak spesifik atau khusus, seperti bahasa untuk program DBASE, SPSS dan lain sebagainya.
- Bahasa Sasaran dapat berupa bahasa sumber lain seperti C, FORTRAN dan lain sebagainya atau Bahasa Mesin (Machine Language) yang digunakan oleh suatu prosessor mikro atau sumber komputer besar maupun komputer super.

Sejarah perkembangan suatu kompilator sudah dimulai sejak lama, yaitu pada saat mulai ditemukannya komputer pada awal 1950-an.

Sejak waktu tersebut teknik dan cara pembentukan suatu kompilator telah berkembang dengan sangat pesat dan pembentukkan suatu kompilator dapat dilakukan makin mudah.

Demikian pula program bantu (tools) untuk membuat suatu kompilator sudah dapat diperoleh sehingga pembentukan suatu kompilator dapat dilakukan dengan cepat.

Kompilator pertama yang dibuat adalah kompilator untuk bahasa FORTRAN yang pada saat itu dikembangkan dengan memakan sejumlah tenaga ahli yang setara dengan pekerjaan yang dilakukan oleh 18 orang.

Dengan adanya program bantu dan tata cara pembentukan yang sistematis dan tertata dengan baik serta pendefinisian struktur bahasa yang cermat, maka suatu kompilator untuk bahasa yang terstruktur seperti PASCAL atau C dapat dikembangkan.


Proses kompilasi dari suatu kompilator pada dasarnya dapat dibagi ke dalam 2 bagian utama yaitu bagian analisis dan bagian sintesis.

- Tahap analisis program yang ditulis dalam bahasa sumber dibagi dan dipecah ke dalam beberapa bagian yang kemudian akan dipresentasikan ke dalam suatu bentuk antara dari program sumber.
Operasi-operasi yang dilakukan oleh program sumber ditentukan dan dicatat dalam suatu struktur pohon (tree) yang disebut dengan nama pohon sintaks (sintax tree) Dalam hal ini setiap nodal pada tree tersebut menyatakan suatu operasi, sedangkan anak dari nodal (titik) tersebut memberikan argumen yang diperlukan
Secara umum proses dalam tahap analis terdiri dari 3 bagian utama, yaitu
a. Proses analisis leksikal
b. Proses analisis sintaktik
c. Proses analisis semantik

- Tahap sintesis yang berikutnya program sasaran dibentuk berdasarkan representasi antara yang dihasilkan pada tahap analisis.
Untuk tahap sintetis terdiri dari 2 bagian utama, yaitu
a. Proses yang menghasilkan kode (code generator)
b. Proses optimasi kode (code optimizer)

Sebelum Bahasa sasaran dapat dihasilkan, dalam melakukan ini tiap bagian utama akan berhubungan dan berkomunikasi dengan suatu berkas tabel yang disebut tabel simbol (symbol table) yaitu suatu tabel yang berisi semua simbol yang digunakan dalam bahasa sumber.

Selain kompilator masih diperlukan beberapa program lainnya sebelum dapat dibentuk bahasa sasaran yang dapat dijalankan. Seperti suatu bahasa sumber dapat dituliskan dalam beberapa modul yang terpisah dan disimpan dalam beberapa file yang terpisah.

Untuk menanggulangi hal ini, maka suatu program khusus yang disebut dengan suatu praprosesor digunakan untuk mengumpulkan modul-modul yang saling lepas ini ke dalam suatu program baru. Praposesor dapat pula melengkapi singkatan-singkatan atau ungkapan-ungkapan maupun kependekan-kependekan yang digunakan dalam bahasa sumber seperti pendefinisian makro dan lain sebagainya.


2.TEKNIK KOMPILASI

Comments Dropped tinggalkan tanggapan

Definisi Compiler

Biasanya dipakai untuk menggenerate program yang akan dibuat. Misalnya sebuah source code di vsual basic akan dijadikan sebuah software aplikasi atau program….maka source code tersebut harus di-compile sedemikian rupa agar jadi sebuah aplikasi ato software dengan sebuah compiler…

CIRI – CIRI PROGRAM COMPILER
Ciri-cirinya :
1) Dapat memodifikasi Caption program sehingga menjadi nama lain. Misalnya sebuah program dicopy biasa dari komputer satu ke komputer lain maka captionnya akan sama…catatan bukan nama apliaksi or .exe nya yang diubah…tapi judul program yang ada di atas apliaksi tersebut.
2) Dapat mengganti gambar dari aplikasi tersebut. Misalnya gambar A.jpg diletakkan dalam sebuah program. Kalau dicopy secara biasa, otomatis gambar A.jpg akan ter-copy juga ke program tersebut. Tetapi bila dicompile…maka gambar dapat berubah.
FUNGSI PROGRAM COMPILER
Fungsi dari program compiler ini adalah :
1) Mengubah caption, sehingga jika suatu program dikunci oleh virus seperti regedit, msconfig, ms Dos shell dan lain – lain dapat tetap dijalankan, karena fungsi dari compiler tersebut merubah caption program. Biasanya virus mendeteksi dari caption program tersebut untuk menendang atau mematikan program dalamkode pertahanan virus. 2) Buat seneng- seneng and nambah program ajah….hahahahahhahaha

CARA KERJA COMPILER SEDERHANA
cara kerjanya sangat mudah, seperti yang disebutkan bahwa compiler disini adalah sangat sederhana sekalai. Sehingga masih menggunakan fasilitas dari VB berupa modul COPYFILE. Jadi bukan dicompiler secara murni, jadi Algoritma nya :
1) Program Dijalankan
2) Program akan mengecek apakah file yang diperlukan untuk compiler ada…disini saya memakai aplikasi rdfce.ext
3) Setelah menemukan file rdfce.ext maka program akan menjalankan modul COPYFILE untuk menyalin isi dari text dan gambar
4) Kemudian program akan mencompile aplikasi dan mengeluarkan file output sesuai dengan
nama file…kalau disini defaultnya test.exe



CIRI – CIRI PROGRAM COMPILER

Ciri-cirinya :

1) Dapat memodifikasi Caption program sehingga menjadi nama lain. Misalnya sebuah program

dicopy biasa dari komputer satu ke komputer lain maka captionnya akan sama…catatan bukan

nama apliaksi or .exe nya yang diubah…tapi judul program yang ada di atas apliaksi

tersebut.

2) Dapat mengganti gambar dari aplikasi tersebut. Misalnya gambar A.jpg diletakkan dalam

sebuah program. Kalau dicopy secara biasa, otomatis gambar A.jpg akan ter-copy juga ke

program tersebut. Tetapi bila dicompile…maka gambar dapat berubah.

FUNGSI PROGRAM COMPILER

Fungsi dari program compiler ini adalah :

1) Mengubah caption, sehingga jika suatu program dikunci oleh virus seperti regedit,

msconfig, ms Dos shell dan lain – lain dapat tetap dijalankan, karena fungsi dari compiler

tersebut merubah caption program. Biasanya virus mendeteksi dari caption program tersebut

untuk menendang atau mematikan program dalamkode pertahanan virus.

2) Buat seneng- seneng and nambah program ajah….hahahahahhahaha

CARA KERJA COMPILER SEDERHANA

cara kerjanya sangat mudah, seperti yang disebutkan bahwa compiler disini adalah sangat

sederhana sekalai. Sehingga masih menggunakan fasilitas dari VB berupa modul COPYFILE. Jadi

bukan dicompiler secara murni, jadi Algoritma nya :

1) Program Dijalankan
2) Program akan mengecek apakah file yang diperlukan untuk compiler ada…disini saya

memakai aplikasi rdfce.ext
3) Setelah menemukan file rdfce.ext maka program akan menjalankan modul COPYFILE untuk

menyalin isi dari text dan gambar
4) Kemudian program akan mencompile aplikasi dan mengeluarkan file output sesuai dengan

nama file…kalau disini defaultnya test.exe
Proses kompilasi dari suatu kompilator pada dasarnya dapat dibagi ke dalam 2 bagian utama yaitu bagian analisis dan bagian sintesis.
- Tahap analisis program yang ditulis dalam bahasa sumber dibagi dan dipecah ke dalam beberapa bagian yang kemudian akan dipresentasikan ke dalam suatu bentuk antara dari program sumber.
Operasi-operasi yang dilakukan oleh program sumber ditentukan dan dicatat dalam suatu struktur pohon (tree) yang disebut dengan nama pohon sintaks (sintax tree) Dalam hal ini setiap nodal pada tree tersebut menyatakan suatu operasi, sedangkan anak dari nodal (titik) tersebut memberikan argumen yang diperlukan
Secara umum proses dalam tahap analis terdiri dari 3 bagian utama, yaitu
a. Proses analisis leksikal
b. Proses analisis sintaktik
c. Proses analisis semantik
- Tahap sintesis yang berikutnya program sasaran dibentuk berdasarkan representasi antara yang dihasilkan pada tahap analisis.
Untuk tahap sintetis terdiri dari 2 bagian utama, yaitu
a. Proses yang menghasilkan kode (code generator)
b. Proses optimasi kode (code optimizer)

sumber: http://herucr.blog.upnyk.ac.id/2009/01/18/otomata-dan-pengantar-kompilasi/