C (bahasa pemrograman)

Bahasa pemrograman C adalah bahasa pemrograman komputer bertujuan umum yang dibuat pada tahun 1972 oleh Dennis Ritchie untuk Sistem Operasi Unix di Bell Telephone Laboratories. Dengan desain, fitur C dengan jelas mencerminkan kemampuan CPU yang ditargetkan.

Meskipun C dibuat untuk memprogram sistem dan jaringan komputer namun bahasa ini juga sering digunakan dalam mengembangkan software aplikasi. C juga banyak dipakai oleh berbagai jenis platform sistem operasi dan arsitektur komputer, bahkan terdapat beberepa compiler yang sangat populer telah tersedia. C secara luar biasa memengaruhi bahasa populer lainnya, terutama C++ yang merupakan extensi dari C.

Sejak 2000, C secara konsisten menempati peringkat di antara dua bahasa teratas diTIOBE index, sebuah pengukuran dari popularitas bahasa pemrograman.

Sejarah

Perkembangan awal

C K&R 
Pada tahun 1978, Dennis Ritchie dan Brian Kernighan menerbitkan edisi pertama dari buku yang berjudul The C Programming Language. Buku ini hingga sekarang diakui sebagai kitab suci bahasa C dan merupakan referensi utama seorang pemrogram yang ingin mengetahui tentang bahasa C, terutama karena begitu lengkapnya cakupan buku ini tentang bahasa C dan mudahnya program yang dicontohkan dalam buku ini.

Versi bahasa C yang ditampilkan dalam buku ini kemudian dikenal dalam kalangan pemrogram sebagai C K&R. Pada buku The C Programming Language edisi kedua kemudian melingkupi ANSI C yang diperkenalkan belakangan.

ANSI C & ISO C 
Pada perkembangannya, muncul versi-versi C lain yang pada akhirnya membuat kebingungan di kalangan pemrogram. Karena itu, pada tahun 1983, American National Standards Institute (ANSI) membuat sebuah komite untuk membuat sebuah versi standar dari bahasa C. Setelah melalui proses yang panjang dan sengit, pada tahun 1989, telah berhasil disahkan standar yang dinamakan ANSI X3.159-1989, versi ini sering kali dinamakan ANSI C, atau kadang-kadang C89.

Pada 1990, versi ANSI C diadopsi oleh Organization for Standardization (ISO) dengan sedikit perubahan dengan nama ISO/IEC 9899:1990. Versi ini sering kali dinamakan ISO C atau C90. Karena versi ANSI C dan ISO C hanya memiliki sedikit perbedaan, pemanggilan C90 dan C89 merujuk pada bahasa yang sama.

C99 
Versi C99 dibuat oleh ISO C pada tahun 1999. Versi ini dimaksudkan terutama untuk memperbanyak dukungan kepada pemrograman berorientasi objek, terutama setelah C++, yang dibuat berdasarkan bahasa ini mendapat tempat yang istimewa di kalangan pemrogram yang banyak di cari

Sintaks 
C89 memiliki 32 kata, juga dikenal sebagai keyword, yang merupakan kata-kata yang tidak dapat digunakan untuk tujuan apa pun selain yang telah ditentukan sebelumnya:

 auto
 break
 case
 char
 const
 continue
 default
 do
 double
 else
 enum
 extern
 float
 for
 goto
 if
 int
 long
 register
 return
 short
 signed
 sizeof
 static
 struct
 switch
 typedef
 union
 unsigned
 void
 volatile
 while

C99 memiliki  lima kata lagi:

 _Bool
 _Complex
 _Imaginary
 inline
 restrict

C11 memiliki tujuh kata lagi:

 _Alignas
 _Alignof
 _Atomic
 _Generic
 _Noreturn
 _Static_assert
 _Thread_local

Pustaka 
Bahasa pemrograman C sering menggunakan pustaka sebagai metode utama dari ekstensinya. Dalam C, sebuah pustaka adalah seperangkat fungsi yang terkandung dalam satu file "arsip". Setiap pustaka mempunyai sebuah file header, yang berisi prototipe fungsi yang terkandung di dalam perpustakaan yang dapat digunakan oleh suatu program, dan deklarasi tipe data khusus dan simbol makro yang digunakan dengan fungsi ini.

Bahasa C sering kali dipakai untuk membuat file-file pustaka yang menyimpan fungsi-fungsi tertentu, dikarenakan C dapat dikompile menjadi bahasa mesin yang sangat cepat dan kecil ukurannya, kemudian bahasa pemrograman lain seperti Python yang akan menciptakan antar-muka dari fungsi-fungsi yang dikandungnya.

Pustaka yang paling sering dipakai adalah Pustaka Standar C, yang berisi fungsi-fungsi standar yang berasal dari ANSI C. Pustaka standar ini sekarang telah terkandung dalam hampir setiap kompiler C yang dipakai.

Contoh Hello, World! 

Contoh "hello, world", yang muncul pada edisi pertama dari K&R, telah menjadi model untuk program pengantar di sebagian besar buku teks pemrograman. Programnya mem-print "hello, world" ke output standar, yang biasanya berupa terminal atau tampilan layar.

Versi aslinya adalah:main()
{
    printf("hello, world\n");
}Berikut ini adalah contoh program sederhana yang akan mencetak kalimat "Hello, World!" dengan menggunakan pustaka stdio.h (ANSI C):
     #include <stdio.h>
     int main(void) 
     {
         printf("Hello, World!\n");
         return 0;
     }Baris pertama program berisi arahan preprocessing, ditunjukkan oleh #include. Ini menyebabkan kompiler mengganti baris itu dengan seluruh teks dari standard header stdio.h, yang berisi deklarasi untuk fungsi input dan output standar seperti printf dan scanf. Tanda kurung sudut di sekitar stdio.h mengindikasikan bahwa stdio.h terletak menggunakan strategi pencarian yang lebih memilih header yang disediakan dengan kompiler ke header yang lain memiliki nama yang sama, sebagai lawan dari tanda kutip ganda yang biasanya menyertakan file header lokal atau khusus proyek.

Penggunaan 

C digunakan luar untuk pemrograman sistem dalam mengimplementasikan sistem operasi dan pengaplikasian sistem tertanam. Ini untuk beberapa alasan:

 Kode yang dihasilkan setelah kompilasi tidak menuntut banyak fitur sistem, dan dapat dipanggil dari beberapa kode boot secara langsung - itu sederhana untuk dijalankan.
 Pernyataan dan ekspresi bahasa C biasanya memetakan dengan baik ke urutan instruksi untuk prosesor target, dan akibatnya ada permintaan run-time yang rendah pada sumber daya sistem - ini cepat untuk dijalankan.
 Bahasanya membuatnya mudah untuk melapisi struktur ke blok data biner, memungkinkan data untuk dipahami, dinavigasi dan dimodifikasi - ini dapat menulis struktur data, bahkan file sistem.
 Tergantung pada penghubung dan lingkungan, kode C juga dapat memanggil perpustakaan yang ditulis dalam bahasa rakitan, dan dapat dipanggil dari bahasa rakitan - ini beroperasi dengan baik dengan kode lain.
 C memiliki ekosistem yang sangat matang dan luas, termasuk kompiler sumber terbuka, debugger dan utilitas, dan merupakan standar de facto. Kemungkinan driver sudah ada di C, atau ada arsitektur CPU yang mirip dengan back-end kompiler C, jadi ada pengurangan insentif untuk memilih bahasa lain.

Perbandingan dengan C++ 

C++ pada awalnya disebut sebagai "C dengan Kelas" (C With Classes) dan diciptakan untuk memiliki fitur pemrograman berorientasi objek. Karena C++ berdasarkan dari C, maka kebanyakan kode C bisa dirakit di kompilator C++ dengan mudah. Perbedaan kecil contohnya kata "new" dan "delete" yang terdapat di kode C tidak bisa dirakit di C++ karena kata-kata ini adalah kata dipesan C++. Pustaka C biasanya bisa diimpor ke pustaka C++, tapi karena kompilator C dan C++ memiliki "name mangling" yang berbeda, maka perubahan kecil di kode C perlu dilakukan.

Referensi

Sumber 

 
 By courtesy of the author, also at

Bacaan lanjutan 

  (archive)
  (source)
  (free)
  (archive)
  (archive)
 
 
 
  (free)

Pranala luar 
 Situs web resmi ISO C Working Group
 ISO/IEC 9899, dokumen resmi C, termasuk C99 Rationale
  
 comp.lang.c Frequently Asked Questions
 A History of C, oleh Dennis Ritchie
 Programming C di Wikibooks

 
C
Bahasa pemrograman prosedural
Artikel kelas awal bertopik teknologi informasi