Son ziyaretiniz: Zaman: 24 Eyl 2014, 02:24


Tüm zamanlar UTC + 2 saat




Yeni başlık gönder Başlığa cevap ver  [ 1 mesaj ] 
Yazar Mesaj
 Mesaj Başlığı: C dili hakkında genel bilgi
MesajGönderilme zamanı: 04 Haz 2010, 16:42 
Gigabyte
Kullanıcı avatarı
Mesajlar: 1632
1.1 C’nin gelişimi
C Dennis Ritchie tarafından DEC PDP-11 üzerinde geliştirilmiş bir programlama dili. C BCPL dilinden türetilen B dilinin 1970’lerde geliştirilmesiyle yaratılmış. C’nin geliştirilme amacı, sistem seviyesine daha yakın ve kullanımı daha kolay bir dil yaratmak. Uzun yıllar boyunca C dilinin standardı Unix işletim sistemi ile birlikte tanımlıydı. Daha sonra 1983’te C dilinin standardize edilmesi için bir komite oluşturuldu (ANSI) ve bu işlem yaklaşık 9 yıl sürdü. 1989’da ilk ANSI C standardı tanımlanmıştı. Daha sonra 1995’te C standardına eklemeler yapıldı. Bu dilin son hali ise 1999’da tanımlandı ve buna C99 adı verildi. 90’lı yıllarda ise C’ye object mantığı eklenerek C++ dilinin geliştirilmesine ağırlık verildi ama bu gene de C’nin yaygınlığını azaltmadı.
1.2 Programlama Dilleri Hiyerarşisi
Programlama dilleri High (Yüksek), Middle (Orta) ve Low (Düşük) seviye olarak 3 kategoriye ayrılmıştır. Bu kategorizasyonda kullanılan kriter söz konusu programlama dilinin programcı veya makineye olan yakınlığıdır. Örneğin Assembly gibi makineye yakın programlama dilleri Low Level olarak tanımlanırken, Basic gibi kullanıcıya daha anlaşılır gelen programlama dilleri ise High Level olarak tanımlanmaktadır;
High Level Basic
Pascal
Cobol
Medium Level C
C++
Java
Low Level Assemble
Middle Level bir dil olarak C hem makineye hem de programcıya yakındır. Örneğin C ile bitler, bytelar ve adresler üzerinde de işlem yapılabildiği gibi, C syntax bakımından da kullanıcının anlayabileceği bir yapıdadır. C aynı zamanda kolaylıkla port edilebilir bir dildir. Yani bir platform için yazılmış bir C programını, bazı platform-spesifik değişikliklerle başka bir platforma taşımak mümkündür.
C’nin High Level programlama dillerinden farkları şöyle sıralanabilir: Data tipi çevirimlerinde diğer High Level programlama dilleri kadar katı kuralları yoktur. Neredeyse bütün tipler arasında çevirim yapılabilir. Diğer diller gibi run-time (çalışma anı) hata kontrolü yoktur; dizi indisi aşılması gibi. Bu kontrolleri programcının yapması beklenir. İlk kurala benzer bir şekilde C parametre ve argüman tipleri arasında data tipi uyumunu şart koşmaz. C bit, byte ve adresler üzerinde işlem yapılmasına da izin vererek sistem programlama seviyesine daha yakın bir yerde durur. C diğer High Level programlama dillerinden farklı olarak çok az keyword içerir – 32 adet. Buna karşın BASIC 100’ün üstünde keyword içermektedir.
1.3 C’nin gücü
C genelde ‘programcının dili’ olarak anılır. Bunun sebebi C’nin geliştirilme amacıdır. Örneğin COBOL programın verimini artırmak veya kodun güvenilirliğini artırmak için değil, programcı olmayanların program yazıp hazır programları kolayca anlayabilmeleri için tasarlanmıştı. Aynı şekilde BASIC de programcı olmayan kişilerin basit problemleri çözebilmeleri için tasarlanmıştı.
Fakat C çalışan programcılar tarafından, programcının isteklerini karşılayacak şekilde geliştirildi: az sayıda kısıtlama, function tanımlama, block yapısı ve az sayıda keyword. Böylece C kullanılarak assembly dilinin verimi ve Pascal veya Modula-2 dilinin kullanım kolaylığını elde edebiliriz.
C’nin ilk başarısını yakalamasının esas sebebi assembly language yerine kullanılabilmesiydi. Kodlaması, debug edilmesi ve okunması oldukça zor olan assembly language yerine C dilinin kullanılması gerçek bir avantaj. Bir diğer önemli nokta da assembly dilinin port edilememesi.
C sistem dili olarak da tanımlanabilir. C’nin geliştirilme sebebi işletim sistemi yazılmasında kullanmaktı. Bütün UNIX implementasyonlarının ve Windows 95’in de C’de kodlanmış olması C’nin bu konuda ne kadar güçlü olduğunu göstermektedir.
1.4 C Kodunu oluşturan parçalar
Bir C programının en önemli parçaları ‘function’ adı verilen prosedürlerderdir. Bu prosedürlerden en önemlisi main() dir. main() prosedürü yazılan programın akışı hakkında genel yapıyı içerir. Bunun dışındaki prosedürler main() veya diğer prosedürler tarafından çağırılmak üzere kodlanır.
Örnek bir C kodu verip gerekli kod parçalarını bunun üzerinde gösterecek olursak:

#include
void main(void)
{
char name[10];
printf(“Adınızı giriniz:\n”);
scanf(“%s”, name);
printf(“Merhaba %s”, name);
}
Yukarıdaki koda baktığımızda birkaç parçaya ayrılmış olduğunu görülür: #include : Bir programın başında kullanılan #include satırları, program içinde kullanılacak fonksiyonların (string fonksiyonları, aritmetik fonksiyonlar, vs.) nerede tanımlanmış olduğunu söyler. void main(void): Daha önce de belirtildiği gibi main() fonksiyonu bir C programında olmak zorundadır. main() fonksiyonu program çalıştırıldığında çalışacak esas kodu içerir. char name[10]: Fonksiyon tanımından sonra gelen ilk satırlar fonksiyon içinde kullanılacak değişkenlerin tanımlandığı yerlerdir. printf ve scanf: Yazılan bütün C programlarında kullanıcıdan veri girişi almak için scanf, ekrana çıktı almak için ise printf komutlarını kullanılır. { }: C programlarında en önemli unsurlardan biri de blokları belirleyen parantezlerdir. Bu parantezler genelde bir kod parçasını ayırmak için kullanılır; örneğin bir karşılaştırma sonucuna göre yapılacak işlemleri veya bir döngü içinde yapılacak işlemleri ayırmak için. Bu parantezlerin yerleştirilmesine dikkat edilmelidir çünkü yanlış yerleştirilmiş veya eksik/fazla yazılmış bir parantez programın yanlış çalışmasına veya hiç çalışmamasına yol açabilir.
Bunun yanında bir C programı yazarken dikkat edilecek en önemli şeylerden biri bu dilin case-sensitive oluşu yani program içinde geçen karakterlerin büyük/küçük harf yazılmasına dikkat etmesidir. Yani printf, Printf ve PRINTF hepsi birbirinden bağımsız üç farklı fonksiyon gibi algılanır. Aynı şey kullanılan değişken isimleri için de geçerlidir. Örnek programda kullanılan name adlı değişkeni ekranda yazdırırken ismini Name olarak versek alacağımız şey name değişkenini içeriği değil bir hatadır.

_________________
http://ercsoft.net


Başa Dön
Çevrimdışı Profil Özel mesaj gönder E-posta  
 
Eskiden itibaren mesajları göster:  Sırala  
Yeni başlık gönder Başlığa cevap ver  [ 1 mesaj ] 

Tüm zamanlar UTC + 2 saat


Bu foruma yeni başlıklar gönderemezsiniz
Bu forumdaki başlıklara cevap veremezsiniz
Bu forumdaki mesajlarınızı düzenleyemezsiniz
Bu forumdaki mesajlarınızı silemezsiniz
Bu foruma eklentiler gönderemezsiniz

Aranacak:
Geçiş yap:  
Powered by phpBB