Teknik Kompilasi Dalam Bahasa
Pemograman C
- 1. Adhifatra. AS STMIK Bina Bangsa Lhokseumawe
- 2. <ul><li>Perkembangan bahasa C erat kaitannya dengan perkembangan sistem operasi UNIX, dimana keduanya dikembangkan di AT&T Bell Lab (USA). Pertama kali bahasa C diimplementasikan pada komputer DEC PDP-11 yang menggunakan sistem operasi UNIX oleh Dennis Ritchie di Bell Laboratories tahun 1972. </li></ul><ul><li>Banyak ide penting dari C diambil dari bahasa BCPL yang dikembangkan </li></ul><ul><li>oleh Martin Richards melalui bahasa B yang ditulis oleh Ken Thompson. BCPL dan B tidak memiliki data type sedang C memiliki beragam data type. </li></ul><ul><li>Pada tahun 1978 Dennis Ritchie dan Brian W Kernighan mengeluarkan buku THE C PROGRAMMING LANGUAGE, buku inilah yang dijadikan acuan dari pembuatan berbagai versi bahasa C yang ada. </li></ul>
- 3. <ul><li>Pada tahun 1983 ANSI (American Nasional Standart Institute) membuat standarisasi bahasa C yang kemudian dijadikan sebagai referensi dari berbagai bahasa C yang beredar saat ini. C yang dihasilkan disebut C standard ANSI atau ANSI C. Tahun 1987 Borland menciptakan sebuah compiler C yang dikenal dengan nama TURBO C. </li></ul><ul><li>Dalam beberapa literatur bahasa C digolongkan sebagai bahasa tingkat menengah (Medium Level Language). Penggolongan ini tidak berarti bahwa bahasa C lebih sulit dibandingkan dengan bahasa pemrogramman tingkat tinggi seperti : PASCAL, BASIC. Ini merupakan suatu penegasan bahwa bahasa C bukan berorientasi pada mesin seperti pada bahasa tingkat rendah (Low Level Language). Dan pada kenyataannya bahasa C mengkombinasikan elemen dalam bahasa tingkat tinggi dan bahasa tingkat rendah. Hampir semua operasi yang dapat dilakukan oleh bahasa mesin dapat dilakukan oleh C dengan penyusunan program yang lebih sederhana dan mudah. </li></ul>
- 4. <ul><li>Bahasa C dalam pemakainnya memerlukan suatu translator. Jenis translator dalam bahasa C adalah interpreter dan compiler. Interpreter merupakan translator yang menterjemahkan bahasa C kedalam bahasa mesin satu persatu. </li></ul><ul><li>Contoh interpreter yang beredar saat ini yaitu Run/c. Sedangkan compiler merupakan translator yang menterjemahkan bahasa C ke dalam bahasa mesin secara keselurahan. </li></ul><ul><li>Contoh compiler : Turbo C, Microsoft C dan Lattice C. </li></ul>
- 5. <ul><li>Bahasa C merupakan bahasa pemrogramman yang sederhana dimana jumlah fungsi dan perintah yang disediakan terbatas, walaupun akhirnya beberapa compiler menyediakan fungsi-fungsi library yang cukup lengkap. Karena sifatnya yang sederhana ini maka bahasa C mudah ditransfer dari satu compiler ke compiler yang lain. </li></ul>
- 6. <ul><li>Proses penterjemahan bahasa C ke dalam dalam bahasa mesin dengan menggunakan compiler adalah sebagai berikut. </li></ul>
- 7. <ul><li>Pertama kali program ditulis dengan menggunakan editor dan disimpan didalam file program sumber ( dengan ekstension .c). Kemudian kode file program sumber dikompilasi oleh compiler menjadi object code dan disimpan pada sebuah file object (dengan ekstension .obj). Object code sudah berbentuk kode mesin, tapi kode ini belum bisa dimengerti oleh komputer. Agar dapat dimengerti oleh komputer maka object code bersama dengan object code yang lain serta file library (file yang berisi rutin untuk tugas tertentu) perlu dikaitkan (linking) dengan menggunakan linker. Sehingga terbentuk suatu file yang executable (program yang dapat dijalankan secara langsung dalam lingkungan sistem operasi). Program hasil linker ini disimpan dalam sebuah file executable dengan ciri mempunyai ekstension .EXE </li></ul>
- 8. <ul><li>Kelebihan : </li></ul><ul><li> C mempunyai banyak jenis data yang dikenal & operator untuk manipulasi data. </li></ul><ul><li> C menyediakan berbagai struktur data dan pengendalian proses. Sehingga memungkinkan untuk membuat program yang terstruktur (program yang mudah dipakai dan dikembangkan). </li></ul><ul><li> C mudah dipahami dibandingkan dengan bahasa mesin, karena bahasa C berorientasi pada permasalahan bukan pada mesin. </li></ul><ul><li> C mempunyai kecepatan eksekusi yang mendekati kecepatan eksekusi bahasa mesin. </li></ul><ul><li> C memungkinkan manipulasi data dalam bentuk bit maupun byte secara efisien dan dapat memanipulasi alamat dari suatu data. </li></ul><ul><li> C memakai memori yang sedikit </li></ul><ul><li> C merupakan salah satu bahasa pemrograman yang terstruktur. </li></ul>
- 9. <ul><li>Kelemahan : </li></ul><ul><li> Banyaknya operator serta flexibilitas penulisan program yang terkadang membingungkan pemakai. </li></ul><ul><li> Programmer C tingkat pemula pada umumnya kurang memgenal pointer dan tak terbiasa menggunakannya, padahal kelebihan C ada pada pointer ini. </li></ul>
- 10. <ul><li> Semakin banyak program dan software yang ditulis dalam C </li></ul><ul><li> C adalah bahasa yang modern, efisien, portable, powerful, flexible, friendly menghasilkan program yang kompak dan cepat </li></ul><ul><li> C adalah bahasa yang mendominasi pemakaian komputer dengan sistem operasi UNIX. </li></ul>
- 11. <ul><li>C adalah bahasa yang portable: </li></ul><ul><li>program yang ditulis pada satu sistem dapat dijalankan pada sistem lain tanpa atau dengan sedikit perubahan. </li></ul><ul><li>C adalah bahasa yang efisien : </li></ul><ul><li>menghasilkan program yang kompak/ringkas dan cepat </li></ul><ul><li>C adalah bahasa modern : </li></ul><ul><li>mempunyai fasilitas - fasilitas kontrol yang diperlukan oleh teori – teori komputer science maupun aplikasi </li></ul>
- 12. <ul><li>C adalah bahasa yang friendly : </li></ul><ul><li>keterikatannya/ restriksinya tidak ketat </li></ul><ul><li>C adalah bahasa yang powerful dan fleksible </li></ul><ul><li> UNIX sebagian besar ditulis dalam C </li></ul><ul><li> C compiler ditulis dalam C </li></ul><ul><li> Interpreter lain (FORTRAN, APL, Pascal, LISP, BASIC) bisa ditulis dlm Bahasa C </li></ul><ul><li> Digunakan baik dlm memecahkan masalah fisik maupun engineering </li></ul><ul><li> Digunakan untuk animasi </li></ul><ul><li> Mempunyai kontrol yang biasanya hanya dimiliki oleh bahasa assembly. </li></ul>
- 13. <ul><li>Program terdiri dari koleksi satu / lebih fungsi, salah satu diantaranya harus main(). Fungsi terdiri dari sebuah header dan sebuah badan. Header berisi preprocessor statement seperti #include dan nama fungsi Badan ditandai oleh {} dan berisi seri dari statement masing diakhiri tanda ; </li></ul>
- 14. <ul><li>Adapun bentuk umum dari program bahasa C dengan Turbo C adalah </li></ul><ul><li># include file </li></ul><ul><li># define var konstan </li></ul><ul><li>deklarasi fungsi </li></ul><ul><li>main() </li></ul><ul><li> { </li></ul><ul><li>deklarasi variabel global </li></ul><ul><li>: </li></ul><ul><li><pernyataan - pernyataan> </li></ul><ul><li>: </li></ul><ul><li> } </li></ul><ul><li> nama fungsi (arg1, arg2,...) </li></ul><ul><li> { </li></ul><ul><li>deklarasi variabel lokal </li></ul><ul><li>: </li></ul><ul><li>< pernyataan - pernyataan> </li></ul><ul><li>: </li></ul><ul><li> } </li></ul>
- 15. <ul><li>1. #include <stdio.h> berisi informasi tentang standar library </li></ul><ul><li>main() mendefinisikan fungsi main. </li></ul><ul><li>fungsi main tidak ada argumen </li></ul><ul><li>{ awal dari badan fungsi </li></ul><ul><li>printf("hellon"); fungsi main memanggil library function </li></ul><ul><li>printf yang mencetak sejumlah karakter </li></ul><ul><li>dalam tanda "..." </li></ul><ul><li>} akhir dari badan fungsi </li></ul><ul><li>OUTPUT : </li></ul><ul><li>hello </li></ul><ul><li>2. #include <stdio.h> </li></ul><ul><li>main() /* program sederhana*/ </li></ul><ul><li>{ </li></ul><ul><li>int num; </li></ul><ul><li>num = 6; </li></ul><ul><li>printf ("I am a student"); </li></ul><ul><li>printf ("in STMIK BINA BANGSA. n"); </li></ul><ul><li>printf ("I am in the %d rd year.n",num); </li></ul><ul><li>} </li></ul><ul><li>OUTPUT : I am a student in STMIK BINABANGSA. </li></ul><ul><li>I am in the 3 rd year </li></ul>
- 16. <ul><li>#include <stdio.h> </li></ul><ul><li> menyertakan sebuah file lain yaitu file stdio.h </li></ul><ul><li> berisi informasi ttg Input & Output , bagian dari paket C Compiler </li></ul><ul><li> # merupakan instruksi PREPROCESSOR, diproses oleh C-PREPROCESSOR. </li></ul><ul><li> baris ini bukan sebuah statement dalam bahasa C </li></ul><ul><li> baris ini tidak selalu diperlukan </li></ul><ul><li>main() </li></ul><ul><li> sebuah nama fungsi , tanda kurung mencakup informasi yang merupakan argumen. </li></ul><ul><li> dalam hal ini fungsi main tidak mempunyai argumen </li></ul><ul><li> Harus ada dalam program, karena dari fungsi ini program akan mulai dieksekusi, tanpa fungsi ini program tidak akan dapat dilaksanakan /* program sederhana*/ </li></ul><ul><li> sebuah komentar;memudahkan orang lain dalam mengerti program kita </li></ul><ul><li> Simbol /* dan */ dipakai untuk menandai komentar segala sesuatu di dalam tanda /* dan */ diabaikan oleh C compiler </li></ul>
- 17. <ul><li>{ </li></ul><ul><li> menandai awal dari badan fungsi </li></ul><ul><li>} </li></ul><ul><li> tanda untuk mengakhiri definisi fungsi </li></ul><ul><li>; (titik koma) </li></ul><ul><li> untuk mengakhiri stiap pernyataan/perintah </li></ul><ul><li> antara pernyataan/perintah yang satu dengan yang lain hanya dapat dipisahkan dengan tanda titik koma (;) bukan dengan baris yang berbeda atau spasi atau karakter yang lain </li></ul><ul><li>int num; </li></ul><ul><li> sebuah deklarasi statement yaitu mendefinisikan variabel bernama num sebagai tipe integer. </li></ul>
- 18. <ul><li>deklarasi statement sangat penting, karena mendeklarasikan 2 hal : </li></ul><ul><li>1. dalam fungsi tersebut akan ada variabel yang bernama num </li></ul><ul><li>2. variabel num mempunyai tipe integer. </li></ul><ul><li>dalam C, semua variabel harus dideklarasikan </li></ul><ul><li>num = 6; </li></ul><ul><li> sebuah assignment statement yi pemberian harga 6 pd variabel num </li></ul><ul><li> assignmenet statement adalah operasi paling dasar . </li></ul><ul><li>printf ("I am a student"); </li></ul><ul><li> sebuah print statement yaitu mencetak kalimat dalam tanda petik printf ("in STMIK BINA BANGSA.n"); </li></ul><ul><li> n merepresentasikan 1 karakter tunggal yang adalah menginstruksikan komputer untuk mengawali baris baru. </li></ul><ul><li> n adalah salah satu dari escape sequence. </li></ul>
- 19. <ul><li>printf (" I am in the %d nd year.n",num); </li></ul><ul><li> mencetak kalimat dalam tanda petik dengan meletakkan harga variabel num (yaitu 4) di posisi %d. </li></ul>
Analisa : teknik kompilasi itu
sangat bermanfaat untuk programmer atau yang membuat program agar bisa
mengetahui apa ada kesalahan atau tidak saat di jalankan. Sehingga semakin lama
semakin mudah di gunakan dan mudah dii pahami.
Tidak ada komentar:
Posting Komentar