Full width home advertisement

Teknik Informatika Semester 6

Teknik Informatika Semester 5

Teknik Informatika Semester 4

Post Page Advertisement [Top]


 

Rangkuman Materi Teknik Kompilasi

Nama : Haryanto

NIM : 181021400089


PERTEMUAN 2

Translator pada Teknik Kompilasi

 

Translator

Melakukan pengubahan source code/program sumber ke dalam target code/object code. Source code ditulis dalam sumber sedangkan object code bisa dalam bahasa pemrograman lain atau bahasa mesin pada suatu komputer.

Macam – macam Translator

 

1.       Assembler

Source code adalah bahasa assembly, object code adalah bahasa mesin contoh : Turbo Assembler dan Macro Assembler

2.       Kompilator ( Compiler)

Source code adalah bahasa tingkat tinggi, object code adalah bahasa mesin atau bahasa assembly. Source code dan data diproses pada waktu yang berbeda. Contoh ; Turbo Pascal. Compile time adalah saat pengubahan dari source code ke object code sedangkan Run Time adalah saat eksekusi object code.

3.       Interpreter

interpreter tidak membangkitkan object code, hasil translasi hanya dalam bentuk internal.

Contoh: BASICA/GW-BASIC,LIPS,SMALLTALK.

Source code dan data diproses pada saat yang sama.

 Model Kompilator

Kompilator umumnya mempunyai dua tugas pokok :

1.      Fungsi Analisis, biasa disebut Front-end à melakukan dekomposisi program sumber menjadi bagian-bagian dasarnya.

2.      Fungsi Sintesis, biasa disebut Back-end àmelakukan pembangkitan dan optimasi program objek.

·         Scanner                              :   Memecah program sumber menjadi besaran Leksik/Token

·         Parser                                 :   Memeriksa kebenaran dan urutan kemunculan Token

·         Analisis Semantik           :   Melakukan analisis semantik,biasanya dalam realisasi kan

    digabungkan dengan Intermediate code generator bagian

    yang berfungsi membangkitkan kode antara

·         Code Generator               :   Membangkitkan kode objek

·         Code Optimizer               :   Memperkecil hasil dan mempercepat proses

·         Tabel Simbol                    :   Menyimpan semua informasi yang berhubungan dengan

     proses kompilasi

Mutu Kompilator

Mutu dari suatu kompilator tergantung dari beberapa faktor :

1.       Kecepatan dan waktu proses

Tergantung dari :

·         Penulisan Algoritma Kompilator

·         Kompilator pengkompilasi

2.       Mutu program objek

·            mutu suatu program objek ditentukan oleh ukuran dan kecepatan eksekusi dari program objek.

3.       Integrated Environment

Merupakan fasilitas terintegrasi yang dimiliki oleh kompilator.

 

Pembuatan Kompilator

Dapat dilakukan dengan cara :

1.          Mempergunakan bahasa mesin

2.          Mempergunakan bahasa tingkat tinggi

3.          Mempergunakan bahasa tingkat tinggi lain pada mesin yang sama

4.          Mempergunakan bahasa tingkat tinggi yg sama pada mesin yang berbeda.

5.          Bootstrap ( gagasan dari Nirklaus Wirth : membangun suatu yang besar dengan terlebih dahulu membuat bagian intinya).

 

PERTEMUAN 3

Analisis Leksikal / Scanner Teknik Kompilasi

 

Analisis Leksikal adalah aliran karakter yang membentuk program sumber dibaca dari kiri ke kanan dan dikelompokkan dalam apa yang disebut token yaitu barisan dari karakter yang dalam suatu kesatuan mempunyai suatu arti tersendiri.

Analisis ini melakukan penerjemahan masukan menjadi bentuk yang lebih berguna untuk tahap-tahap kompilasi berikutnya.

Analisis Leksikal merupakan antarmuka antara kode program sumber dan analisis sintaktik (parser). Scanner melakukan pemeriksaan karakter per karakter pada teks masukan, memecah sumber program menjadi bagian-bagian disebut Token.

Analisis Leksikal mengerjakan pengelompokkan urutan-urutan karakter ke dalam komponen pokok: identifier, delimeter, simbol-simbol operator, angka, keyword, noise word, blank, komentar, dan seterusnya menghasilkan suatu Token Leksikal yang akan digunakan pada Analisis Sintaktik.

 

Token adalah satuan terkecil dari bahasa sumber yaitu deretan karakter terpendek yang mengandung arti. Token dikelompokkan menjadi beberapa jenis sbb.:

a)      identifier

b)     keyword

c)      label

d)     operator aritmetika dan assignment

e)      operator relasional - tanda baca, dan sebagainya.

 

  Masing-masing token diberikan nomor penyajian internal atau sering disebut nomor token, misalnya sebagai berikut :

nama variabel

a)      konstanta 

b)     label

c)      keyword

d)     operator penambahan

e)      operator pemberian (assignment) 

f)       operator pengurangan

g)      operator perkalian 

h)     operator pembagian 

i)       tanda baca koma

j)       tanda baca : 

k)      tanda baca ; 

l)       dan lain-lain.

 

 

 

PERTEMUAN 4

Perbedaan Deterministic Finite Automata (DFA) dan

Non-Deterministic Finite Automata (NFA )

 

Perbedaan DFA dan NFA, jika DFA state diberi input, selanjutnya tepat menuju 1 state, berbeda dengan NFA bisa saja menuju ke beberapa state selanjutnya.

Berbagai perbedaan DFA dan NFA lain, terkait ruang (space) dan eksekusi string yang dilakukan.

Finite automata merupakan mesin automata dari bahasa reguler. Seperti yang kita ketahui, finite automata terbagi menjadi 2:

 

1.          Deterministic Finite Automata (DFA)

2.          Non-Deterministic Finite Automata (NFA)

 

Baik itu DFA maupun NFA, memiliki ciri-ciri atau karakteristik yang berbeda.

Berikut ini beberapa perbedaan DFA dan NFA, dengan disertai pengertian dan contoh dari masing-masing DFA dan NFA.

 

a)      Deterministic Finite Automata (DFA) menerima masukan (input) yang hanya memiliki 1 busur keluar.

b)     Deterministic Finite Automata (DFA) sering dikenal juga sebagai Deterministic Finite-State Machine (DFSM) dan Deterministic Finite-State Automaton (DFSA).

c)      DFA diperkenalkan oleh Warren McCulloch dan Walter Pitts sebagai peneliti pertama yang memperkenalkan konsep yang mirip dengan finite automata di tahun 1943.

d)     DFA sendiri merupakan finite automata dengan memiliki 5 tuple yang direpresentasikan sebagai berikut:

 

Q, himpunan state, contohnya {q0, q1, q2}

Σ, input alphabet, contohnya {a, b}

δ, fungsi transisi

q0, state awal

F, state akhir

Contoh DFA

Q = {q0, q1, q2}

∑ = {0, 1}

q0 = {q0}

F = {q2}

 




Non-Deterministic Finite Automata (NFA) menerima masukan (input) dengan memiliki lebih dari 1 busur keluar atau bahkan tidak memiliki busur keluar.

Non-Deterministic Finite Automata (NFA) sering dikenal juga sebagai Non-Deterministic Finite-State Machine (NFSM) dan Non-Deterministic Finite-State Automaton (NFSA).

NFA diperkenalkan pada tahun 1959 oleh Michael O. Rabin dan Dana Scott. NFA sendiri merupakan finite automata dengan memiliki 5 tuple yang direpresentasikan sebagai berikut:

 

Q, himpunan state, contohnya {q0, q1, q2}

Σ, input alphabet, contohnya {a, b}

δ, fungsi transisi

q0, state awal

F, state akhir

Contoh NFA

Q = {q0, q1, q2}

∑ = {0, 1}

q0 = {q0}

F = {q2}

 

 

Perbedaan DFA dan NFA, jika DFA state diberi input, selanjutnya tepat menuju 1 state, berbeda dengan NFA bisa saja menuju ke beberapa state selanjutnya.

Berbagai perbedaan DFA dan NFA lain, terkait ruang (space) dan eksekusi string yang dilakukan.

·         Deterministic Finite Automata (DFA) menerima masukan (input) yang hanya memiliki 1 busur keluar

Deterministic Finite Automata (DFA) sering dikenal juga sebagai Deterministic Finite-State Machine (DFSM) dan Deterministic Finite-State Automaton (DFSA).

·         Non-Deterministic Finite Automata (NFA) menerima masukan (input) dengan memiliki lebih dari 1 busur keluar atau bahkan tidak memiliki busur keluar.

Non-Deterministic Finite Automata (NFA) sering dikenal juga sebagai Non-Deterministic Finite-State Machine (NFSM) dan Non-Deterministic Finite-State Automaton (NFSA).

Perbedaan DFA dan NFA

berikut ini beberapa perbedaan DFA dan NFA yang disajikan dalam tabel:

DFA

NFA

DFA tidak dapat menggunakan transisi string kosong (empty string)

NFA dapat menggunakan transisi string kosong (empty string)

DFA dipahami sebagai sebuah mesin

NFA dipahami sebagai beberapa mesin kecil yang melakukan komputasi di waktu bersamaan

DFA untuk state selanjutnya bisa ditetapkan dengan jelas

NFA untuk state selanjutnya mempunyai banyak kemungkinan

DFA lebih sulit dibuat

NFA lebih mudah dibuat

Waktu yang dibutuhkan untuk mengeksekusi string input lebih sedikit

Waktu yang dibutuhkan untuk mengeksekusi string input lebih banyak

Semua DFA merupakan NFA

Tidak semua NFA adalah DFA

DFA membutuhkan lebih banyak ruang (space)

NFA membutuhkan lebih sedikit ruang (space)

 


PERTEMUAN 5

Tahap–tahap Kompilasi

 

Kompilator (compiler) adalah sebuah program yang membaca suatu program yang ditulis dalam suatu bahasa sumber (source language) dan menterjemah-kannya ke dalam suatu bahasa sasaran (target language).

Proses kompilasi dikelompokan ke dalam dua kelompok besar:

1.          Tahap Analisa (Front-end)

a)     Menganalisis source code dan memecahnya menjadi bagian-bagian dasarnya. Menghasilkan kode level menengah dari source code input yang ada.

2.          Tahap Sintesa (Back-end)           

b)     Membangun program sasaran yang diinginkan dari bentuk antara.

 

Tahap-tahap yang harus dilalui pada saat mengkompilasi program, yaitu:

1.  Analisa Leksikal                                          

2.  Analisa Sintaks                                          

3.  Analisa Semantik                                      

4.  Pembangkit Kode Antara

5.  Code optimization                 

6. Object code generation      

 

Keterangan :

1.      Analisa Leksikal (scanner)

Berfungsi memecah teks program sumber menjadi bagian-bagian kecil yang mempunyai satu arti yang disebut token, seperti : konstanta, nama variabel, keyword, operator.

2.      Analisa Sintaks(parser)

Berfungsi mengambil program sumber (sudah dalam bentuk barisan token) dan menentukan kedudukan masing-masing token berdasarkan aturan sintaksnya dan memeriksa kebenaran dan urutan kemunculan token.

3.      Analisa Semantik

Berfungsi menentukan validitas semantiks/keberartian program sumber. Biasanya bagian ini digabung dengan Pembangkit kode antara (intermediate code generator).

a)     Pembangkit Kode Antara

Berfungsi membangkitkan kode antara.

b)     Code optimation

Berfungsi mengefisienkan kode antara yang dibentuk.

c)      Code generator

Berfungsi membangkitkan kode program target dalam bahasa target yang ekivalen

dengan bahasa sumber .

d)     Symbol table management

Berfungsi mengelola tabel simbol selama proses kompilasi. Tabel simbol adalah

struktur data yang memuat record untuk tiap identifier dengan atribut-atribut

identifier itu.

e)     Penangan Kesalahan (Error handler)

Berfungsi menangani kesalahan yang berlangsung selama proses kompilasi.

Contoh :

pernyataan pemberian nilai (assignment) :

position := initial + rate * 60

Lexical analysis

Mengelompokkan pernyataan tersebut menjadi token-token sebagai berikut :

                     1. Token identifier position

                     2. Token simbol assignment :=

                     3. Token identifier initial

                     4. Token tanda plus +

                     5. Token identifier rate

                     6. Token tanda perkalian *

                     7. Token konstanta angka 60

Ketika identifier pada program sumber ditemukan lexical analyzer, identifier dimasukkan ke tabel simbol.

position := initial + rate * 60

diubah menjadi

id1 := id2 + id3 * 60

 

 

PERTEMUAN 6

5 soal dan jawaban mengenai grammar chomsky Teknik Kompilasi

 

1.       Apa tata bahasa menurut Chomsky?

Tata Bahasa Universal:

Menurut Chomsky, Universal Grammar (UG) adalah. sistem prinsip, kondisi, dan aturan yang merupakan elemen atau. sifat umum untuk semua bahasa - esensi manusia. bahasa.

 

2.       Apa 3 jenis tata bahasa?

Ø  bersifat menentukan.

Ø  deskriptif.

Ø  transformasional-generatif.

 

3.       Apa sajakah jenis tata bahasa?

Tata Bahasa Kinerja. Penjelasan tentang sintaks bahasa Inggris sebagaimana yang digunakan oleh penutur dalam dialog.

Referensi Tata Bahasa.

Ø  Tata Bahasa Teoretis.

Ø  Tata Bahasa Tradisional.

Ø  Tata Bahasa Transformasional.

 

4.       Apa itu tata bahasa dan tipenya?

Grammar (kata benda): struktur dan sistem suatu bahasa, biasanya dianggap terdiri dari sintaks dan morfologi. Atau Tata Bahasa adalah seperangkat aturan yang membantu kita memahami bahasa.

Jenis utama tata bahasa: Tata bahasa deskriptif:

Mengacu pada struktur bahasa sebagaimana yang digunakan oleh penutur dan penulis.

 

5.       Apa itu tata bahasa menurut para sarjana?

Tata bahasa didefinisikan dengan beberapa cara yang berbeda. Oxford American Dictionary, misalnya, mendefinisikan tata bahasa sebagai: "studi kata-kata dan aturan untuk pembentukan mereka dan hubungan mereka satu sama lain dalam kalimat; aturan itu sendiri; pidato atau tulisan yang dinilai baik atau buruk sesuai aturan ini" (1980:282).

 

PERTEMUAN 7

Definisi Grammar

 

Pengertian grammar secara umum yaitu himpunan dari berbagai aturan yang jelas dan terstruktur untuk mengatur setiap susunan frasa, kalimat, serta kata di dalam bahasa apa pun.

Di dalam bahasa inggris, selain kita perlu memperkaya vocabulary, kita juga perlu untuk mengetahui tata cara penulisan bahasa inggris yang benar agar kita tidak melakukan grammatical error.

 

Pengertian Grammar

Dapat dikatakan bahwasannya pengertian grammar merupakan pelajaran pertama yang diperoleh manusia sejak bayi.

Sebab ketika kita sudah mempelajari kata per kata, nantinya kita akan terus belajar untuk merangkai kata – kata hingga menjadi sebuah kalimat.

Pada bahasa Indonesia sendiri, pengertian grammar kita kenal dengan peraturan SPOK atau Subyek – Predikat- Obyek – Keterangan.

Sehingga dapat kita rangkum jika pengertian grammar merupakan peraturan mengenai struktur kata guna membentuk sebuah kalimat menjadi sempurna.

 

Tiga Dasar Tata Bahasa

Terdapat 3 tata dasar dalam bahasa inggris, diantaranya yaitu:

 

1.       Etimologi

Merupakan ilmu yang mempelajari mengenai cara untuk menyusun berbagai huruf bahasa inggris yang pas ke dalam suatu kata bahasa Inggris.

Pada Etimologi, kata di dalam bahasa inggris dikategorikan menjadi 8 bagian berbeda yang disebut sebagai the Eight Parts of Speech.

Ke delapan kategori tersebut diantaranya yaitu:

              noun

              adjective

              verb

              pronoun

              adverb

              preposition

              conjunction

              interjection

 

2.      Sintaks

Merupakan suatu ilmu yang mempelajari mengenai cara menyusun kata – kata dalam bahasa Inggris agar menjadi suatu kalimat yang sesuai atau tepat.

Atau dengan kata lain, syntax adalah bagian dari tata bahasa yang mempelajari mengenai proses untuk membentuk suatu kalimat.

3.      Orthographi

Adalah suatu sistem ejaan sebuah bahasa yang wujudnya berupa lambang atau tulisan.

Di dalam ortografi terdapat kapitalisasi, masalah ejaan, tanda baca, serta pemenggalan kata.

Beberapa bahasan yang ada di dalam orthography antara lain:

a.      Word

Adalah rangkaian dari beberapa huruf yang membentuk suatu arti.

Contoh: money (uang), month (bulan).

b.       Letter (huruf)

Adalah suatu lambang atau gambaran dari bunyi atau tanda goresan yang dilafalkan atau diucapkan.

c.        Syllable (suku kata)

Adalah beberapa bagian dari suatu kata yang bisa langsung diucapkan.

Contoh: book, glass, clever.

 

DAFTAR PUSTAKA

 

Ø  http://alifbaekom.blogspot.com/2011/05/translator-pada-teknik-kompilasi.html#:~:text=Melakukan%20pengubahan%20source%20code%2Fprogram,bahasa%20mesin%20pada%20suatu%20komputer.&text=Source%20code%20dan%20data%20diproses%20pada%20waktu%20yang%20berbeda.

Ø  https://farmysetiawan.wordpress.com/2012/05/09/analisis-leksikal-analisis-leksikalanalisis-linierpembacaan-sekilas-scanner/

Ø  https://fida.ump.ac.id/perbedaan-dfa-dan-nfa/

Ø  http://suryantianty.blogspot.com/2015/11/teknik-kompilasi-pendahuluan.html

Ø  https://www.thoughtco.com/what-is-grammar-1690909

Ø  https://www.yuksinau.id/pengertian-grammar/

 

 


No comments:

Post a Comment

Bottom Ad [Post Page]