Standart C Programlama Dili


0.1. C Dilinin Kısa Bir Tarihi

unix işletim sistemi ile C programlama dili birbirleriyle yakından ilişkilidir. Tarihleri 70’lerin başında başlar. İlginç olan şey de, AT&T Bell Laboratuvarları’ndan Ken Thompson tarafından yazılan bir bilgisayar oyun programından kaynaklanmalarıdır. Thompson, programını bir PDP-7 bilgisayarına uyarlamak istediğinde, bu küçük makine hakkında çok şey öğrendi, ancak işletim sistemini pek beğenmedi. Bunun üzerine, o zamanlar daha büyük bir makinede kullanılan MULTICS işletim sisteminin basitleştirilmiş ve değiştirilmiş bir uyarlamasını yazmaya karar verdi. Daha sonra, Dennis M. Ritchie de ona katıldı ve Brian W. Kernighan tarafından UNICS (Uniplexed Information and Computing Service—Birleştirilmiş Bilgi ve Hesaplama Hizmeti) adı verilen işletim sisteminin ilk uyarlaması doğdu. Bu üç kişi C ve unix’in tarihinde en önemli rolü oynadılar. Başlangıçta, Thompson, daha önceleri 1967 civarında geliştirilen BCPL adlı “tipsiz” dilden de büyük ölçüde etkilenerek B dilini tasarımladı. Bundan sonra, Ritchie unix’i daha kolay bir şekilde yazma amacıyla C adında yeni bir dil tasarımladı. 1973 yılında ise Ritchie ve Thompson C’yi kullanarak unix’i yeni baştan yazdılar. Sonuç o kadar iyiydi ki, 1983’te ACM’in Turing Ödülü’nü almaya hak kazandılar.

O zamandan beri, C çok değişmedi. Dilde yapılan bazı küçük genişletmeler, Dennis M. Ritchie tarafından hazırlanan The C Programming Language—Reference Manual (C Programlama Dili—Başvuru Elkitabı) adlı, 1983 basımlı, Bell Laboratuvarları yayınında anlatılmaktadır. ANSI’nin X3J11 komitesi tarafından 1988 Ekim’inde sunulan, C Standardının bir taslağı bu değişiklikleri resmîleştirmekte ve kendi başına yenilerini eklemektedir. Yapılan düzenlemelerle, birtakım programcı hatalarını azaltmak için derleyici kontrolleri artırılmış ve dile yararlı birkaç özellik daha katılmıştır. Bu düzenlemelerin sonucunda, pratik olarak birbirinin aynı olan, iki resmî standart ortaya çıktı:

  • ANSI/ISO-IEC 9899-1990[1992]: C dili için oluşturulmuş ANSI (yani Amerikan) standardı. Bu doküman resmen American National Standard for Information Systems-Programming Language C (X3.159-1989) dokümanının yerine geçmiştir.
  • International Standard C ISO/IEC 9899:1990(E): C dili için ISO tarafından kabul edilen uluslararası standart.

Yaygın olarak, “C89” veya “C90” olarak bilinen bu ANSI/ISO standartlaştırma işleminden sonra, aradan geçen on yıla yakın bir süre içinde C dili oldukça sabit kaldı; diğer yandan C++ dili gelişmesini sürdürdü. Buna bağlı olarak, 1990’ların sonunda C dilinin ISO standardı güncellendi ve 1999’da ISO 9899:1999 olarak yayımlandı. 2000 yılının Mart’ında ise, “C99” olarak bilinen bu yeni standart ANSI tarafından da benimsendi. C standardının son durumuna resmî ISO/IEC web sitesinin JTC1/SC22/WG14 - C Sayfası’ndan ulaşılabilir.

Tasarımcılarının felsefesine aykırı olduğu için dilin daha fazla genişletilmesi beklenmemelidir. Bunun yerine, bu dilden yeni diller ortaya çıkmaktadır. Bir örnek, C++’dır. Bu dil, nesneye yönelik programlama ve veri soyutlama teknikleri sağlarken, Standart C ile uyumlu kalmaya çaba göstermektedir. Bu özellikleri, dili daha kapsamlı bir uygulama programlama dili yapmaktadır. Zamanla C++’nın C’nin yerini alması söz konusu olabilir, ancak yine de C++ öğrenecek birisinin önce Standart C’yi bilmesi gerekmektedir.