C/C++ Box [HH Dökümanları]+[Tarihi gelişimi]

ServerErr0r

uid=0(root)
Katılım
12 Eyl 2009
Mesajlar
2,330
Reaction score
0
Puanları
0
C TARİHİ

C'nin ilk gelişme safhaları 1969 ile 1974 arasında AT&T Bell Laboratuvarları'nda gerçekleşti. Ritchie'ye göre, en yaratıcı devre 1972 idi. Dilin pek çok özelliği "B" adlı bir dilden türediği için, yeni dile "C" adı verildi. "B" adının kökeni konusunda ise söylentiler değişik: Ken Thompson B'nin BCPL programlama dilinden türediğini söylemektedir, ancak Thompson eşi Bonnie'nin onuruna adını Bon koyduğu bir programlama dili de geliştirmiştir.

1973'e kadar C yeterince güçlü bir hale gelmiş ve ilk başta PDP-11/20 assembly dili ile yazılan UNIX'in çekirdeğinin büyük kısmı C ile yeniden yazılmıştı.

Böylece UNIX, çekirdeği bir assembly dili ile yazılmayan ilk işletim sistemlerinden biri olmuştu.

1978'de Ritchie ve Brian Kernighan The C Programming Language (C Programlama Dili) kitabının ilk baskısını yaptılar. C programcıları tarafından "K&R" olarak bilinen bu kitap, C dilinin gayriresmi standardı olarak kullanıldı. C'nin bu versiyonu bugün "K&R C" olarak adlandırılır. Bu kitabın ikinci baskısı ise aşağıda anlatılan ANSI C standardını içerir.

K&R dilde şu değişiklikleri yaptı:

struct veri tipleri eklendi
long int veri tipi eklendi
unsigned int veri tipi eklendi
=+ operatörü += olarak değiştirildi (çünkü =+ C'nin leksikal ayrıştırıcısının kafasını karıştırıyordu)
K&R C genellikle tüm C derleyicilerinin desteklemek zorunda olduğu dilin en temel kısmı olarak kabul edilir. Uzun yıllar boyunca, ANSI C'nin kabul edilişinden sonra bile, yüksek taşınabilirlik (portability) istendiğinde, K&R C, C programcıları tarafından "ortak payda" olarak kabul edilmiştir çünkü bazı derleyiciler henüz ANSI C'yi desteklemek üzere güncellenmemişlerdi ve zaten iyi yazılmış bir K&R C programı aynı zamanda ANSI C'yi de destekler.

K&R C'nin yayımlanmasını izleyen yıllar içine dile AT&T'nin derleyicilerinin ve bazı başka bilgisayar üreticileri tarafından desteklenen kimi "gayriresmi" özellikler eklendi. Bunların içinde aşağıdaki özellikler de vardı:

- void fonksiyonlar ve void * veri tipi
- struct ya da union veri tipi döndüren fonksiyonlar
- her bir struct'ın alan adları için ayrı bir ad alanı
- struct veri tipleri için atama
- bir nesneyi yazmaya karşı korumalı yapmak için const anahtar sözcüğü
- standart bir C kütüphanesi
- enumeration'lar
- single-precision float tipi

1970'lerin sonunda C, en çok kullanılan mikrobilgisayar dili olarak BASIC'in önüne geçmeye başladı. 1980'lerde ise, IBM PC ile kullanılmak üzere benimsenmesiyle birlikte popülaritesi iyice artmaya başladı. Aynı zamanda, Bell Laboratuvarları'nda Bjarne Stroustrup ve iş arkadaşları C'ye nesneye yönelim eklemek üzere çalışmaya başlamışlardı. C bugün UNIX dünyasında en çok kullanılan dil olarak kalırken, Stroustrup'un geliştirip C++ adını verdiği dil Microsoft Windows işletim sisteminde en önemli dil oldu.

1983'te Amerikan Ulusal Standartlar Enstitüsü (ANSI) bir C standardı oluşturmak için bir kurul oluşturdu. Uzun ve yorucu bir çalışmadan sonra, bu kurul standardı 1989'da tamamladı ve standart ANSI X3.159-1989 "Programming Language C (C Programlama Dili)" olarak yayımlandı. Dilin bu versiyonu genellikle ANSI C olarak adlandırılır. 1990'da bu standart, küçük değişikliklerle Uluslararası Standartlar Örgütü (ISO) tarafından da benimsenip ISO/IEC 9899:1990 olarak yayımlandı.

ANSI C'yi oluşturmanın amaçlarıdan biri K&R C'yi içeren ve dile sonradan katılan "gayriresmi" özellikleri de dile katan bir standart oluşturmaktı. Standart k fonksiyon prototiplerini ve daha yetenekli bir önişlemciyi de standarda ekledi.

Bugün artık ANSI C neredeyse tüm derleyiciler tarafından desteklenmektedir. Günümüzde yazılmakta olan C programlarının çoğunluğu ANSI C standardına uygun olarak yazılmaktadır. Yalnızca standart C kullanılarak yazılmış bir program, standarda uyumlu her derleyici ile doğru bir biçimde derlenip çalıştırılabilir. Ancak, standart olmayan kütüphaneler kullanılarak yazılmış programlar belli bir platform ya da derleyici gerektirebilirler...

ANSI standartlaştırma işleminden sonra C dili uzun bir süre oldukça sabit kaldı, ancak C++ gelişmeyi sürdürdü. Buna bağlı olarak, 1990'ların sonunda 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 standart ANSI tarafından da benimsendi.

C/C++ HH Döküman Listesi:

http://www.hackhell.com/gorsel-egitimler/433846-c-c-gorsel-egitim-videolari-turkce.html

http://www.hackhell.com/gorsel-egit...egitim-derslerihhampfadetoblack-farkiyla.html

http://www.hackhell.com/delphi-visual-basic-c-c-c-java/627385-c-dersleri-ve-ders-notlari.html


http://www.hackhell.com/delphi-visual-basic-c-c-c-java/595325-dev-c-4992-super-yazilim-editoru.html

http://www.hackhell.com/delphi-visual-basic-c-c-c-java/603187-programming-with-c.html

http://www.hackhell.com/delphi-visual-basic-c-c-c-java/345514-visual-c-kitabi.html

http://www.hackhell.com/delphi-visual-basic-c-c-c-java/596306-temel-c-si-derslaeri.html

http://www.hackhell.com/delphi-visu...sional-v111038-win32-64-september-2009-a.html
 
C NEDIR ?
C programlama dili, Dennis Ritchie tarafindan Bell laboratuarlarinda
yaratilmistir. PDP-11 ile Unix altinda calismak icin yaratilmis olmasina
ragmen, ilgi uzerine MS-DOS altinda calisacak hale getirilmistir.
Basitligi, olusan kodun kucuklugu, ve her cesit programlamada
kullanilabilmesi, C yi populer bir dil yapmistir.

C, cok kestirme olmasi nedeni ile, yeni bilgisayarlara baslayanlar icin
ogrenmesi zordur. Bir programci, C ile ust seviyelerden, assebly'ye
yaklasan alt seviyelere kadar programlama yapabilir. C nin sagladigi bu
rahatligin yaninda, tehlikeleride de vardir. Ornegin, makineyi
kilitleyebilecek bir program yazmak, Pascal yada BASIC de yazmaktan cok
daha kolaydir. Bir Pascal derleyicisinin fark edip uyaracagi bir hatayi, C
derleyicileri fark etmeyebilir. C de, kendi basinizasiniz..

NIYE C?

Bu gun IBM-PC icin yazilan piyasadaki yeni programlarin yuzde 75'i, C ile
yaziliyor. MicroSoft, Macro Assembler 4.0 i cikardiktan sonra, onu C ile
yazdiklarini acikladi. Herhalde icinde birkac assembler rutin vardir ama,
cogunlugu C ile yazilmistir.

C, bir komite degilde, bir kisi tarafindan yazilmis oldugundan, cok
kullanisli bir lisandir, fakat cok iyi tanimlanmamistir. C icin bir
standart yoktur, ama ANSI grubu, bu konuda calismaktadir. Isin ilgincligi,
bir standart olmamasina ragmen, degisiklikleri cok azdir. Halbuki iyi
tanimi olan Pascal dilinin, derleyicileri birbirinden cok farklidir, ve
bir Pascal programini bir bilgisayardan digerine gecirmek zordur..

C nin Tasinabilirlik referanslari iyi olmasina ragmen, derleyiciler
arasinda farkliliklar vardir. Bu degisiklikler genellikle BIOS
fonksiyonlari gibi standart olmayan seyler kullanildiginda kendini
gosterir.


TANIMLAYICI ISIMLERI

Fonksiyon ve degisken isimleri, harfler ve rakkamlardan olusabilir. Ilk
harf ya bir harf yada alt-cizgi karakteri olmak zorundadir. geri kalanlar
ise, harf, rakkam yada alt cizgi olabilir. Iki nokta onemlidir:

(1) Buyuk ve kucuk harfler farklidir. Bir programda "ISIM", "iSiM" ve
"isim", degisik tanimlayicilardir.

(2) C'de, en fazla sekiz karakter onemlidir. Bir tanimlayici 8 karakterden
uzun olabilir, fakat ilk sekizi sayilir. Bu derleyiciniz icin boyle
olmayabilir.

DERLEYICI

Bu derste bircok ornek program sunacagim. Bunlari istediginiz herhangi bir
derleyici ile derleyebilirsiniz, fakat kullanim kolayligi bakimindan
QuickC derleyicisini tercih etmenizi tavsiye ederim.


c++ dersleri 2.bölüm

ILK C PROGRAMINIZ

En basit C programi:

main()
{
}

Bu bir programdir, ve bunu kisaltmanin, basitlestirmenin bir yolu yoktur.
Isin kotu tarafi, bu program birsey yapmaz. Buradaki en onemli kelime,
main() sozcugudur. Her programda olmasi gereken bu sozcuk, daha sonra
gorecegimiz gibi, ilk satirda olmak zorunda degildir, fakat bir giris
noktasi saglamasi nedeni ile gereklidir. Bunu takiben, iki tane parantez
vardir. Bunlar da, main'in bir fonksiyon oldugunu belirtir. (Bir
fonksiyonun tam olarak nelerden olustugunu daha sonra gorecegiz)
Programin kendisi ise, iki kume isareti arasinda yer alir.

BIRSEYLER YAPAN BIR PROGRAM:

Daha ilginc bir program:

main()
{
printf("Bu bir satirlik yazidir.");
}

Bu programin, ayni diger program gibi, main, ve kume isaretleri vardir.
Icinde yer alan fonksiyonun, bir satiri ekrana getirmesi icin, satiri " "
isaretleri arasina aliyoruz. Ayrica fonksiyonun parametresi oldugunu
belirtmek icin de, cevresine parantez koyuyoruz.

Satirin sonundaki noktali virgule dikkatinizi cekerim: Bir satirin
bittigini derleyiciye bildirmek icin, C dilinde ; noktali virgul
kullanilir.

DAHA COK SEY YAZAN BIR PROGRAM

main()
{
printf("Bu bir satirlik yazidir.n");
printf("Bu bir baska ");
printf(" satirdir.n");
printf("Bu ucuncu satirdir.n");
}


Bu programda, 4 tane islenecek komut vardir. Satirlar bu sirada islenir.
Ilk satirin sonundaki tuhaf ters bolu isareti, ondan sonra gelecek
karakterin bir kontrol karakteri oldugunu belirtiyor. Bu durumda n harfi,
yeni bir satir istegini belirtir. Yani, cursor, ekranin sol basina, ve bir
satir asagiya kayar. Katarin herhangi bir yerinde yeni bir satir isteyince,
"n" komutunu verebilirsiniz. Hatta bir kelimenin ortasina bile koyup,
kelimeyi iki satira bolebilirsiniz.

Ilk komut, metini ekrana yazar, ve bir satir asagi iner. Ikinci komut,
yazdiktan sonra, yeni satir yapmadan, ucuncu komutun icindekileri ekrana
yazar. Bu komutun sonunda, yeni satira gecilir. Dorduncu komut ise, ucuncu
satiri yazar, ve bir return karakteri sunar.


RAKAMLAR YAZALIM

main()
{
int index;

index = 13;
printf("Indexin degeri simdi %dn",index);
index = 27;
printf("Indexin degeri simdi %dn",index);
index = 10;
printf("Indexin degeri simdi %dn",index);
}

Bu programda ise, ilk defa olarak bir degisken kullaniyoruz. main() ve {
isaretlerine artik alismis olmalisiniz. Bunun altinda "int index" diye bir
satir yer aliyor. Bu satir, "index" isimli bir tamsayi degiskenini
tanimliyor. Cogu mikrobilgisayarlar icin, 'int' tipi bir degiskenin
alabilecegi degerler, -32768 ila 32767 dir. 'index' ismi ise,
TANIMLAYICILAR da bahsettigimiz kurallara uyan herhangi birsey olabilir.
Bu satirin sonunda da, satirin bittigini belirten ; noktali virgul yer
alir.

Bir satirda birden fazla tam sayi tanimlanabilir, fakat henuz biz bununla
ortaligi karistirmayacagiz.

Programi incelerken, uc tane atama satiri oldugunu, ve bu satirlarin
altinda da degerlerin yazildigini goruyoruz. Once 13 atanir, ve ekrana
yazilir, sonra 27 ve 10.

RAKAMLARI NASIL YAZARIZ

Sozumuze sadik kalmak icin, tekrar printf komutuna donelim, ve nasil
calistigini gorelim. Gordugunuz gibi, butun satirlar, birbiri ile ayni, ve
diger orneklerden farki, icindeki % isareti. Bu harf, printf'e ekrana
yazmayi durdurup, ozel birsey yapmasini soyler. % isaretinden sonra gelen
harf, d, bir tamsayi yazilacagini belirtir. Bundan sonra, yeni satira
geciren tanidik n isaretini goruyoruz.

Den-denler arasinda kalan butun harfler, printf komutu ile ekrana
cikacaklari tanimlar. Bundan sonraki virgul ve "index" sozcugu yer alir.
printf komutu buradan degiskenin degerlerini okur. Daha fazla %d ekleyerek
,ve bunlari yine virgul ile birbirine ekleyerek, birden fazla degiskenin
de bu komut ile goruntulenmesini saglayabiliriz. Hatirlamaniz gereken
onemli bir nokta, saha tanimlayici %d ile gecirdiginiz degisken miktari,
ayni kalmalidir, yoksa bir runtime hatasi verir.

BILGI SATIRLARI NASIL EKLENIR

/* Bu satiri, derleyici kullanmaz */

main() /* Bir satir daha */
{
printf("Bilgi satirlarinin nasil eklenecegini ");
/* Bilgi satirlari,
bir satirdan uzun olabilir.
*/
printf("goruyoruz.n");
}

/* Ve programin sonu... */



Programa aciklik katmak icin, eklenebilecek bilgiler, derleyici tarafindan
uzerinden atlanir. Lutfen yukaridaki programi, iyi bir ornek olarak
almayin. Son derece daginik bir sekilde katilmis bilgi satirlari, sadece
kullanimini gostermek amaci iledir. Bilgi satirlari, /* isaretleri ile
baslar, ve */ isareti ile sona erir.

Dikkat etmeniz gereken bir nokta, birkac satirdan olusan bilgi
satirlarinda bulunan program komutlarinin, isleme konmayacagidir.

Bilgi satirlari, programin nasil calistigini gostermesi bakimindan cok
onemlidir. Yazdiginiz bir programin, bir baskasi tarafindan okunabilmesi,
yada siz nasil calistigini unuttuktan sonra hatirlayabilmeniz icin, mumkun
oldugu kadar cok bilgi satiri eklemekte fayda vardir.

Bazi derleyiciler ic ice bilgi satirlarini kabul ederler, fakat genelde,
ic ice bilgi satirlari kabul edilmez.

IYI SAYFA DIZIMI

Yazdiginiz bir program, kolay anlasilir olmalidir. Bunun icin, duzgun bir
sekilde programlamak cok onemlidir. C derleyicileri, komutlar arasindaki
bosluklari goz onune almaz, ve bu nedenle de programlariniza aciklik
katmak icin, dilediginiz gibi bosluk ve bos satir birakabilirsiniz.

Su iki programi karsilastiralim:

main() /* Program buradan basliyor */
{
printf("iyi yazis,");
printf ("programin anlasilmasini kolaylastirirn");
}

ve:

main() /* Program buradan basliyor */ {printf("iyi yazis,"); printf
("programin anlasilmasini kolaylastirirn");}


Odev bence ödev her zaman gereklidir bunları yapmaya çalışın yaparsanız kKENDİ KENDİNİZE az da olsa c++'da ilerlemiş olacaksınız)

1. Ekrana kendi isminizi yazacak bir program yazin.
2. Programa ayri satirlarda, iki "printf" satiri daha ekleyerek,
adresinizi ve telefon numaranizi da yazdirin.
 
İşte size temel C derslerini içeren bir kaynak daha, muratselim










Bizi izLemye devam edin...
 
Geri
Üst