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 antara lain sebagai berikut :
• 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.
Sebuah set instruksi kode mesin mungkin memiliki semua instruksi yang sama panjang, atau hal itu mungkin karena panjang variabel-instruksi. Bagaimana pola diorganisir sangat bervariasi dengan arsitektur tertentu dan sering juga dengan jenis instruksi. Sebagian besar instruksi memiliki satu atau lebih opcode bidang yang menentukan jenis instruksi dasar (seperti aritmatika, logis, melompat, dll) dan operasi sebenarnya (seperti menambah atau membandingkan) dan bidang lain yang mungkin memberikan jenis operand (s) , mode pengalamatan (s), pengalamatan offset (s) atau indeks, atau nilai aktual itu sendiri (Operand konstan seperti yang terdapat dalam sebuah instruksi disebut immediates).
Contoh:
Arsitektur MIPS memberikan contoh khusus untuk instruksi kode mesin yang selalu 32 bit panjang. Jenis umum instruksi yang diberikan oleh op (operasi) bidang, 6 bit tertinggi. J-jenis (melompat) dan I-jenis (langsung) instruksi sepenuhnya ditentukan oleh op. R-type (pendaftaran) instruksi meliputi bidang tambahan Fungsi untuk menentukan operasi yang tepat. Kolom yang digunakan dalam tipe ini adalah:
rs, rt, dan rd menunjukkan daftar Operand; shamt memberikan jumlah pergeseran dan alamat atau lapangan langsung berisi operand langsung.
Misalnya menambahkan register 1 dan 2 dan menempatkan hasilnya dalam register 6 dikodekan:
Memanggil sebuah nilai ke dalam register 8, diambil dari memori sel sel setelah lokasi 68 yang tercantum dalam register 3:
Melompat ke alamat 1024
Menggunakan lapisan terfokus untuk menerapkan sebuah emulator memungkinkan komputer untuk menyajikan arsitektur komputer yang sama sekali berbeda. Baris System/360 ini digunakan untuk mengizinkan program port dari mesin IBM sebelumnya untuk keluarga baru komputer, misalnya IBM 1401/1440/1460 emulator pada IBM S/360 model 40.
Bila dipandang sepintas lalu, maka akan timbul beranekaragam kompilator yang dapat dibuat antara lain sebagai berikut :
• 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.
BAHASA MESIN KOMPUTER
Kode mesin atau bahasa mesin adalah sistem instruksi dan data yang
dijalankan langsung oleh komputer central processing unit. Kode mesin
dapat dianggap sebagai primitif (dan rumit) atau sebagai bahasa
pemrograman tingkat terendah representasi dari disusun dan / atau
program komputer rakitan. Program dalam menafsirkan bahasa tidak
diwakili oleh kode mesin tetapi, walaupun penerjemah mereka (yang dapat
dilihat sebagai sebuah prosesor melaksanakan program tingkat yang lebih
tinggi) sering terjadi. Kode mesin kadang-kadang disebut kode asli
ketika mengacu pada platform-bagian dari bahasa tergantung fitur atau
perpustakaan. kode Mesin tidak boleh disamakan dengan apa yang disebut
“bytecode”, yang dilaksanakan oleh seorang juru bahasa.
Kode Mesin Instruksi
Setiap prosesor atau keluarga prosesor memiliki set instruksi kode
mesin. Instruksi pola bit yang oleh desain fisik sesuai dengan perintah
yang berbeda ke mesin. Set instruksi demikian khusus untuk kelas
prosesor menggunakan (banyak) arsitektur yang sama. Penerus atau
derivatif desain prosesor sering mencakup semua instruksi dari
pendahulunya dan dapat menambah petunjuk tambahan. Kadang-kadang desain
pengganti akan menghentikan atau mengubah arti dari beberapa kode
instruksi (biasanya karena dibutuhkan untuk keperluan baru), kode yang
mempengaruhi kompatibilitas sampai batas tertentu, bahkan hampir
sepenuhnya kompatibel dengan prosesor mungkin akan menampilkan perilaku
yang sedikit berbeda untuk beberapa instruksi tetapi ini jarang yang
masalah. Sistem mungkin juga berbeda dalam rincian lainnya, seperti
pengaturan memori, sistem operasi, atau perangkat periferal; karena
biasanya program bergantung pada faktor-faktor seperti, sistem yang
berbeda akan biasanya tidak menjalankan kode mesin yang sama, bahkan
ketika jenis prosesor yang sama digunakan.Sebuah set instruksi kode mesin mungkin memiliki semua instruksi yang sama panjang, atau hal itu mungkin karena panjang variabel-instruksi. Bagaimana pola diorganisir sangat bervariasi dengan arsitektur tertentu dan sering juga dengan jenis instruksi. Sebagian besar instruksi memiliki satu atau lebih opcode bidang yang menentukan jenis instruksi dasar (seperti aritmatika, logis, melompat, dll) dan operasi sebenarnya (seperti menambah atau membandingkan) dan bidang lain yang mungkin memberikan jenis operand (s) , mode pengalamatan (s), pengalamatan offset (s) atau indeks, atau nilai aktual itu sendiri (Operand konstan seperti yang terdapat dalam sebuah instruksi disebut immediates).
Program
Sebuah program komputer adalah suatu urutan instruksi yang dijalankan
oleh CPU. Sementara prosesor mengeksekusi instruksi sederhana satu demi
satu, prosesor superscalar mampu menjalankan beberapa instruksi
sekaligus. Program aliran mungkin dipengaruhi oleh khusus ‘melompat’
instruksi yang mentransfer eksekusi ke instruksi lain dari yang di bawah
satu. Lompatan bersyarat diambil (eksekusi berlanjut pada alamat lain)
atau tidak (eksekusi berlanjut pada instruksi berikutnya) tergantung
pada beberapa kondisi.
Bahasa Assembly
Yang jauh lebih mudah dibaca rendition of bahasa mesin, disebut bahasa
assembly, menggunakan kode mnemonic untuk merujuk pada instruksi kode
mesin, bukan hanya menggunakan instruksi “nilai numerik. Sebagai contoh,
pada prosesor Zilog Z80, kode mesin 00.000.101, yang menyebabkan CPU
untuk pengurangan prosesor B mendaftar, akan diwakili dalam bahasa
assembly sebagai Desember B.Contoh:
Arsitektur MIPS memberikan contoh khusus untuk instruksi kode mesin yang selalu 32 bit panjang. Jenis umum instruksi yang diberikan oleh op (operasi) bidang, 6 bit tertinggi. J-jenis (melompat) dan I-jenis (langsung) instruksi sepenuhnya ditentukan oleh op. R-type (pendaftaran) instruksi meliputi bidang tambahan Fungsi untuk menentukan operasi yang tepat. Kolom yang digunakan dalam tipe ini adalah:
rs, rt, dan rd menunjukkan daftar Operand; shamt memberikan jumlah pergeseran dan alamat atau lapangan langsung berisi operand langsung.
Misalnya menambahkan register 1 dan 2 dan menempatkan hasilnya dalam register 6 dikodekan:
Memanggil sebuah nilai ke dalam register 8, diambil dari memori sel sel setelah lokasi 68 yang tercantum dalam register 3:
Melompat ke alamat 1024
Hubungan terfokus
Dalam beberapa arsitektur komputer, kode mesin ini diterapkan oleh
lapisan yang lebih mendasar dari program yang disebut microprograms,
menyediakan antarmuka bahasa mesin Common melintasi sebuah garis atau
keluarga model yang berbeda dengan komputer yang mendasari dataflows
sangat berbeda. Hal ini dilakukan untuk memfasilitasi port dari program
bahasa mesin antara model yang berbeda. Contoh dari penggunaan ini
adalah IBM System/360 komputer keluarga dan para penerus mereka. Dengan
jalan dataflow lebar dari 8 bit dengan 64 bit dan seterusnya, mereka
tetap menyajikan sebuah arsitektur umum pada tingkat bahasa mesin di
seluruh baris.Menggunakan lapisan terfokus untuk menerapkan sebuah emulator memungkinkan komputer untuk menyajikan arsitektur komputer yang sama sekali berbeda. Baris System/360 ini digunakan untuk mengizinkan program port dari mesin IBM sebelumnya untuk keluarga baru komputer, misalnya IBM 1401/1440/1460 emulator pada IBM S/360 model 40.
Tidak ada komentar:
Posting Komentar