Proses Kompilasi Bahasa Pemrograman C#
Halo
ketemu lagi semuanya. Bagaimana kabar? Baik? hehe. Semoga masih
diberikan kesehatan, sehat walafiat untuk kita semua. Amin :D
Sekarang kita akan sedikit belajar hal baru, membahas tentang apa yang sebenarnya terjadi saat kita melakukan proses coding dan mengompile sebuah program di C# hmm pasti banyak yang belum tahu kan, makanya sekedar kita belajar dan tahu sedikit tentang apa yang terjadi, yuk ikutin :D
Sekarang kita akan sedikit belajar hal baru, membahas tentang apa yang sebenarnya terjadi saat kita melakukan proses coding dan mengompile sebuah program di C# hmm pasti banyak yang belum tahu kan, makanya sekedar kita belajar dan tahu sedikit tentang apa yang terjadi, yuk ikutin :D
Lalu komponen apa yang memungkinkan kode-kode bahasa pemrograman C# dikompilasi agar kompabilitas antarbahasa keluarga .Net tetap terjaga? Komponen yang dimaksud adalah Just In Time Compiler (JITers) yang bertindak sedemikian rupa sehingga saat MSIL akan dieksekusi , CLR (Common Language Runtime) akan memanggil JITers yang akan menerjemahkan kode-kode bahasa keluarga .Net menjadi kode-kode spesifik terhadap komputer tertentu. JITers peduli terhadap komputer-komputer tertentu yang digunakan untuk menjalankan program serta sistem operasi yang digunakannya. Dalam hal ini Microsoft Corp. berani menjamin bahwa kode-kode bahasa dari pemrograman .Net akan dieksekusi lebih cepat dibandingkan dengan kode-kode yang menggunakan bahasa C/C++.
Tidak seperti bahasa C/C++ tradisional, kode bahasa C# tidak secara langsung diterjemahkan kedalam bahasa mesin. Kompiler bahasa pemrograman C# mengkonversi kode C# menjadi berkas MSIL yang dinamakan asembly. Berkas MSIL dapat dibuat menggunakan semua bahasa pemrograman yang dikembangkan diatas CLR (misalnya Visual C++, Visual J#, serta Visual Basic). Adapun diagram di bawah ini memperlihatkan bagaimana kode C# yang kita tulis dikonversi menjadi kode yang dapat dieksekusi oleh komputer.
Diagram Alir Konversi Kode C# ke Kode yang Dapat Dijalankan di Sistem Operasi
Berkas MSIL hadir dalam bentuk berkas berekstensi .exe serta .dll,
tetapi alih-alih beralan langsung diatas sistem operasi Windows, mereka
dieksekusi oleh CRL. CLR mengomplilasi program MSIL ke kode mesin saat
diperlukan. Proses ini dinamakan kompilasi JIT (Just In Time). Kode
mesin inilah yang kemudian dieksekusi secara langsung oleh komputer.
Dengan membuat kode yang bersifat netral terhadap perangkat keras
komputer hingga saat terakhir, maka keamanan dan portabilitas akan
meningkat. Dalam hal ini proses ini secara umum tersembunyi dari
pandangan pengguna. Dengan kata lain, program yang ditulis menggunakan
bahasa C# dikompilasi, dieksekusi, serta didistribusikan dengan cara
yang sama seperti program yang ditulis menggunakan bahasa pemrograman
lainnya. Sepanjang framework .NET terinstalasi di komputer yang
bersangkutan, program C# akan berjalan dengan baik seperti aplikasi yang
lain. Hal ini mirip dengan JRE (Java Runtime Environment) yang
memungkinkan program bahasa Java berjalan di sembarang komputer.
Selain hal diatas , Microsoft Corp. juga menyediakan suatu pustaka kelas yang dinamakan FCL(Framework Class Library). FCL ini memuat ribuan kelas yang mampu melakukan akses ke API (Application Programming Interface) untuk sistem operasi Windows (Win API), sehingga pemrogram lebih nyaman saat melakukan pemrograman akses data, multithreading, struktur data yang bersifat umum, pemrograman jaringan dan sebagainya. Kelas-kelas dalam FCL ini juga dirancang untuk menggunakan paradigma pemrograman berorientasi objek yang sangat ketat sehingga dapat digunakan ulang secara sangat efektif dan efisien.
Karena dirancang dalam hubungannya dengan framework .NET, aplikasi yang dikembangkan menggunakan bahasa pemrograman C# sangat sesuai untuk framework .Net ini. Dalam hal ini framework .Net memiliki sejumlah pustaka kelas yang menyediakan sejumlah besar kelas yang sangat diperlukan untuk mengembangkan aplikasi, seperti fungsionalitas teks dangrafik, kelas-kelas menyimpan data di basis data, kakas (tool) untuk memanipulasi XML, metode-metode untuk melakukan akses terhadap situs web yang diperlukan, dan sebagainya. Kelompok kelas yang dimiliki framework .NET disebut dengan namespace. Namespace itulah yang merupakan kelompok kelas-kelas yang saling berhubungan, dan memiliki hubungan untuk menyelesaikan masalah tertentu.
Mungkin di pembahasan berikutnya saya akan membahas lebih jauh tentang namespace dan contohnya, juga penjelasannya masing-masing. Jadi tetep pantengin terus ya postingan saya, hihi. Semoga ilmu yang saya bagikan dapat bermanfaat.
Terims kasih .........<:>
Selain hal diatas , Microsoft Corp. juga menyediakan suatu pustaka kelas yang dinamakan FCL(Framework Class Library). FCL ini memuat ribuan kelas yang mampu melakukan akses ke API (Application Programming Interface) untuk sistem operasi Windows (Win API), sehingga pemrogram lebih nyaman saat melakukan pemrograman akses data, multithreading, struktur data yang bersifat umum, pemrograman jaringan dan sebagainya. Kelas-kelas dalam FCL ini juga dirancang untuk menggunakan paradigma pemrograman berorientasi objek yang sangat ketat sehingga dapat digunakan ulang secara sangat efektif dan efisien.
Karena dirancang dalam hubungannya dengan framework .NET, aplikasi yang dikembangkan menggunakan bahasa pemrograman C# sangat sesuai untuk framework .Net ini. Dalam hal ini framework .Net memiliki sejumlah pustaka kelas yang menyediakan sejumlah besar kelas yang sangat diperlukan untuk mengembangkan aplikasi, seperti fungsionalitas teks dangrafik, kelas-kelas menyimpan data di basis data, kakas (tool) untuk memanipulasi XML, metode-metode untuk melakukan akses terhadap situs web yang diperlukan, dan sebagainya. Kelompok kelas yang dimiliki framework .NET disebut dengan namespace. Namespace itulah yang merupakan kelompok kelas-kelas yang saling berhubungan, dan memiliki hubungan untuk menyelesaikan masalah tertentu.
Mungkin di pembahasan berikutnya saya akan membahas lebih jauh tentang namespace dan contohnya, juga penjelasannya masing-masing. Jadi tetep pantengin terus ya postingan saya, hihi. Semoga ilmu yang saya bagikan dapat bermanfaat.
Terims kasih .........<:>