Anda di halaman 1dari 5

UTS TEKNIK KOMPILASI

Nama Adit diyan santosa


Nim 171011450575
Kelas 06TPLE005

SOAL !
1. Menurut kamu, Apa itu Translator? Mengapa bahasa pemrograman memerlukan
Translator? Apakah Eclipse dan Netbeans merupakan Translator? Masuk kedalam
translator macam apa Eclipse dan Netbeans ?

Translator
Translator adalah suatu program atau metode dimana program tersebut mengambil
input sebuah program lain yang ditulis pada suatu bahasa program (source language)
ke bahasa lain (object on target language).Atau Suatu program di mana mengambil
input program dari source code kemudian dituliskan dalam bentuk object code. Atau
translator dapat dikatakan sebagai perubahan dari source code ke object code. Proses
ö dilakukan oleh kompilator disebut compiling atau kompilasi. Kompilator (compiler)
bertugas untuk melaporkan jika kemungkinan terjadinya kesalahan/error.
Macam – macam translator antara lain : interpreter, compiler, dan assembler.

Mengapa bahasa pemrograman memerlukan translator


Untuk sarana komunikasi antara manusia dan computer dalam membantu pemecahan
masalah yaitu dengan menuliskan perintah-perintah secara jelas sehingga dapat
dimengerti dengan mudah oleh computer, serta bahasa dapat digunakan sebagai
panduan untuk perancangan sintak.
Translator melakukan pengubahan source code sumber kedalam target code/
object code. Source code ditulis dalam sumber sedangkan object code bias dalam
Bahasa pemrograman lain atau Bahasa mesin pada suatu computer.
Netbeans dan eclipse termasuk dalam jenis translator (Compiler / Kompilator)
Source Code : tingkat tinggi
Object Code : bahasa mesin/assembly
Source Code dan data diproses pada saat yang berbeda.

2. Sebutkan 4 bahasa pemrograman dan sertakan macam Translatornya, berikan contoh


translatornya ! (Misal Bahasa pemrograman C++ menggunakan compiler contohnya
Dev C++, silahkan cari selain contoh tersebut.)

Cobol (OpenCobolIDE)
Pascal (Lazarus)
Fortran (TotalView HPC)
Java (BlueJ,netbeans,eclipse)
Net (visual studio)
Saya terbiasa memakai visual studio code untuk (python, c++, html, js, Sql
server/mysql, django dan kadang saya main react di snack.expo.io)
Karna spek komputer saya rendah saya lebih sering menggunakan online ide
misalnya w3school.com, hackerrank.com, leetcode.com dll.

3. Proses Kompilasi dibagi menjadi 2, yaitu ANALISA dan SINTESA, namun dalam
praktiknya menggunakan Translator kita tidak akan menemukan kata ANALISA dan
SINTESA di dalam aplikasinya, namun kedua proses itu dikenal dalam aplikasi
adalah Proses DEBUG, EXECUTE, dan COMPILE. Mana yang termasuk proses
analisa dan mana yang termasuk proses sintesa?
Phase Analysis :
Lexical Analyzer
Pada Compiler, lexical analyzer biasa disebut juga sebagai scanner. Lexical analyzer
adalah tahapan pertama yang dilakukan pada compiler. Proses yang dilakukan pada
tahapan ini adalah membaca program sumber karakter per karakter. Satu atau lebih
(deretan) karakter karakter ini dikelompokkan menjadi suatu kesatuan mengikuti pola
kesatuan kelompok karakter (token) yang ditentukan dalam bahasa sumber dan
disimpan dalam table simbol, sedangkan karakter yang tidak mengikuti pola akan
dilaporkan sebagai token tak dikenal.
Syntax Analyzer
Setelah tahapan lexical analyzer selesai berikutnya adalah tahapan syntax analyzer
atau biasa juga disebut Parser. Pada tahapan ini token yang didapatkan dari hasil
lexical analysis diurutkan atau disusun lalu dikelompokkan ke dalam suatu struktur
tertentu secara spesifik.
Semantic Analyzer
Setelah tahapan syntax analyzer selesai berikutnya adalah tahapan semantic analyzer.
Tahapan semantic analyzer merupakan tahapan yang penting karena merupakan pusar
dari tahapan kompilasi, dan juga merupakan jembatan antara fase analysis dan fase
synthesis pada compiler. Pada tahapan ini program sumber akan diperiksa untuk
mencari kemungkinan kesalahan semantic dengan cara memanfaatkan struktur
hirarkikal yang dihasil dari tahapan syntax analyzer. Pada tahapan ini akan dihasilkan
suatu kode yang executable pada kompilasi yang sederhana lalu dimanipulasi dengan
berbagai optimization dari translator sampai nanti benar-benar executable dihasilkan.

Phase Synthesis :
Intermediate Code Generator
Intermediate code generator merupakan tahapan awal dari phase synthesis. Proses
yang dilakukan pada tahapan ini me-generate atau membangkitkan suatu code
berdasarkan parsing tree, lalu selanjutnya diterjemahkan ke dalam bentuk three
address code, quadruples atau triples.
Code Optimizer
Setelah melakukan tahapan intermediate code generator berikutnya yang dilakukan
adalah tahapan code optimizer. Adapun yang dilakukan pada tahapan ini adalah
mengoptimisasi code sehingga menjadi code yang executable. Tahapan ini dilakukan
untuk mempercepat waktu eksekusi dari suatu program dengan cara menghilangkan
redudansi pada code.
Code Generator
Tahapan code generator ini merupakan tahapan terakhir pada proses kompilasi. Pada
tahapan ini akan dilakukan penentuan register untuk masing-masing variable lalu
instruksi-instruksi dalam bentuk antara akan diterjemahkan ke dalam Bahasa mesin,
dan akhirnya akan menghasilkan relocatable machine code atau assembly code.
Symbol Table Manager
Symbol Table adalah sebuah struktur data dengan record-record untuk setiap
identifier dengan field-field untuk setiap atribut dari identifier tersebut.
Error Handler
Error handler merupakan bagian dari compiler untuk menangani dan melaporkan jika
ditemukan suatu error.
DEBUG
Masuk ke dalam proses kompilasi analisa

EXECUTE
Masuk ke dalam proses kompilasi sintesa

COMPILE
Masuk ke dalam proses kompilasi sintesa

4. Menurut kamu, apa perbedaan DEBUG, EXECUTE, dan COMPILE ?

Perbedaan execute, Compile, Debug :


Execute : Menjalankan source code baik dalam betuk tunggal atau dalam bentuk
project yang sedang disuning untuk dieksekusi sehingga dapat diketahui data dari
output program yang sedang di jalankan (execute)
Compile : Suatu program yang dapat mengeksekusi program lain sehingga dapat
mengetahui program tersebut apakah bisa di gunakan atau tidak.
Debug : suatu program yang mencarikan kesalahan pada suatu program lain.

5. Menurut pemahan kamu apa perbedaan Translator Compiler dengan Interpreter ?


Menurut kamu, apakah sistem operasi seperti windows dan linux menggunakan
bahasa pemrograman dalam pembuatannya? Menggunakan translator jenis compiler
atau interpreter dalam proses kompilasinya?
A. Translator
Pengertian Translator
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.

Dibawah ini adalah macam-macam Translator :


Assembler
Compiler
Interpreter

B. Compiler
Pengertian Compiler
Compiler atau Kompilator merupakan sebuah program komputer yang berfungsi
untuk menerjemahkan program komputer yang ditulis dalam bahasa pemrograman
tertentu menjadi program yang di tulis dalam bahasa pemrogrman lain salah satunya
adalah C++, atau Compiler atau Kompilator adalah perangkat lunak yang digunakan
untuk mengubah source code / kode pemrograman menjadi bahasa mesin agar dapat
dijalankan oleh komputer.

Istilah Compiler biasah digunakan untuk program komputer yang menerjemahkan


program yang ditulis dalam bahasa pemrograman tingkat tinggi (Contoh bahasa C++,
Pascal, FORTRAN, Visual C#, COBOL, Visual Basic, Java, atau xBase)
diterjemahkan menjadi bahasa mesin, biasanya menggunakan bahasa Assembly
sebagai perantara. salah satu contoh Compiler dalam Bahasa C++ adalah Visual C++,
GNU Compiler Collection (GCC) dan Borland C++.

C. Interpreter
Pengertian Interpreter
Interpreter adalah Perangkat lunak yang mampu mengeksekusi code program (yang
ditulis oleh programmer) lalu menterjemahkannya ke dalam bahasa mesin, sehingga
mesin melakukan instruksi yang diminta oleh programmer tersebut. Perintah-perintah
yang dibuat oleh programmer tersebut dieksekusi baris demi baris, sambil mengikuti
logika yang terdapat di dalam kode tersebut.
Proses ini sangat berbeda dengan compiler, dimana pada compiler, hasilnya sudah
langsung berupa satu kesatuan perintah dalam bentuk bahasa mesin, dimana proses
penterjemahan dilaksanakan sebelum program tersebut dieksekusi. Interpreter atau
dalam bahasa Indonesia dikenal sebagai Juru Bahasa berbeda dengan Translator atau
penterjemah dalam segi media yang dipakai untuk menerjemahkan. Interpreter akan
menterjemahkan bahasa sumber ke dalam bahasa sasaran secara langsung atau orally
sementara translator akan menerjemahkan bahasa sumber ke bahasa sasaran secara
tertulis. Java dijalankan menggunakan interpreter yaitu Java Virtual Machine (JVM).
Hal ini menyebabkan source code Java yang telah dikompilasi menjadi Java
bytecodes dapat dijalankan pada platform yang berbeda-beda.

Untuk Windows, menurut berbagai website kebanyakan ditulis menggunakan C dan


C++ untuk low level dan banyak lainnya seperti DotNet untuk programming yang
tinggi.

kompilator yang digunakan


C atau C++ khusus (Turbo C,
Turbo C++, Borland C, Borland C++,
Dev-C++, MinGW Developer Studio,
dll).

Linux menggunakan C-lang dapat dilihat di source code


C 96.3% C++ 1.4% Assembly 1.3% Objective-C 0.3% Makefile 0.3% Shell 0.2%
Other 0.2%. Menurut keterangan dari Interview Linus Torvald, C yang low level lebih
cocok dibandingkan C++ karena C++ lebih banyak abstraction sehingga tidak effisien
apabila harus menulis ulang sebuah fungsi tanpa harus menulis ulang banyak fungsi
yang saling berkaitan.

Dalam sistem operasi Linux,


dapat melakukan kompilasi program
yang ditulis dengan bahasa C atau
C++ dengan kompilator cc, gcc
maupun g++. Proses kompilasi di
dalam sistem operasi Linux akan
menghasilkan file
file objek dengan
ekstensi .o. Namun, apabila tidak
mencantumkan nama file objek yang
dimaksud, maka kompilator secara
default akan menyimpannya ke dalam
file a.out. dapat mendefinisikan
file objek tersebut dengan
menyertakan option -o pada saat
melakukan kompilasi. Sebagai contoh
apabila akan melakukan
kompilasi terhadap file determinan.c
dan akan menyimpan file objeknya ke
dalam file determinan.o.

Anda mungkin juga menyukai