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.
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
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.
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.