08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<br />

"Prosedürel programlama" ile "yapısal programlama" çoğu zaman aynı anlamda kullanılır.<br />

Yapısal programlama bir programlama tekniğidir. Bugün artık hemen hemen bütün<br />

programlama dilleri yapısal programlamayı az çok destekleyecek şekilde<br />

tasarlanmaktadır. Yapısal programlama fikri 1960'lı yıllarda geliştirilmiştir. Yapısal<br />

programlama tekniği dört ana ilke üzerine kuruludur:<br />

1. Böl ve üstesinden gel (divide and conquer)<br />

Tek bir bütün olarak yazılması zor olan programlar, daha küçük ve üstesinden daha kolay<br />

gelinebilecek parçalara bölünürler. Yani program, bölünebilecek küçük parçalarına ayrılır<br />

(functional decomposition). Bu parçalar alt program, işlev, prosedür, vs. olarak<br />

isimlendirilir. Alt programlamanın sağladığı faydalar daha önce açıklanmıştı.<br />

2. Veri gizleme (Data hiding)<br />

Yapısal programlama tekniğinde, programın diğer parçalarından ulaşılamayan, yalnızca<br />

belli bir bilinirlik alanı olan, yani kodun yalnızca belli bir kısmında kullanılacak değişkenler<br />

tanımlanabilir. Bu tür değişkenler genel olarak "yerel değişkenler" (local variables) olarak<br />

isimlendirilirler. Değişkenlerin bilinirlik alanlarının kısıtlanabilmesi hata yapma riskini<br />

azalttığı gibi, programların daha kolay değiştirilebilmesini, program parçalarının başka<br />

programlarda tekrar kullanabilmesini de sağlar. Alt programların, daha geniş şekliyle<br />

modüllerin, bir işi nasıl yaptığı bilgisi, o alt programın ya da modülün kullanıcısından<br />

gizlenir. Kullanıcı (client) için alt programın ya da modülün işi nasıl yaptığı değil, ne iş<br />

yaptığı önemlidir.<br />

3. Tek giriş ve tek çıkış (single entry single exit)<br />

Yapısal programlama tekniğini destekleyen dillerde her bir altprogram parçasına girmek<br />

için tek bir giriş ve tek bir çıkış mekanizması vardır. Bu araç programın yukarıdan aşağı<br />

olarak akışı ile uyum halindedir. Program parçalarına ancak tek bir noktadan girilebilir.<br />

4. Döngüler, diğer kontrol yapıları<br />

Yapısal programlama tekniğinde döngüler ve diğer kontrol deyimleri sıklıkla kullanılır.<br />

Artık kullanımda olan hemen hemen bütün programlama dilleri az ya da çok yapısal<br />

programlama tekniğini destekler.<br />

Nesneye yönelimli programlama<br />

Nesneye yönelimlilik (object orientation) de bir programlama tekniğidir.<br />

Yapısal programlama tekniği 1960lı yıllarda gündeme gelmişken, nesneye yönelimli<br />

programlama tekniği 1980'li yıllarda yaygınlaşmıştır.<br />

Bu teknik, kaynak kodların çok büyümesi sonucunda ortaya çıkan gereksinim yüzünden<br />

geliştirilmiştir. C dilinin tasarlandığı yıllarda, akla gelebilecek en büyük programların bile<br />

kaynak kodları ancak birkaç bin satırdı. Bilgisayar donanımındaki gelişmeler, kullanıcıların<br />

bilgisayar programlarından beklentilerinin artması ve grafik arayüzünün etkin olarak<br />

kullanılmasıyla, bilgisayar programlarının boyutu çok büyüdü. Kullanımda olan birçok<br />

programın büyüklüğü yüzbin satırlarla hatta milyon satırlarla ölçülmektedir.<br />

Nesneye yönelmiş programlama tekniği, herşeyden önce büyük programların daha iyi<br />

yazılması için tasarlanmış bir tekniktir. C dilinin yaratıldığı yıllarda böyle bir tekniğin<br />

ortaya çıkması söz konusu değildi, çünkü programlar bugünkü ölçülere göre zaten çok<br />

küçüktü.<br />

Nesneye yönelmiş programlama tekniğinde, programa ilişkin veri ile bu veriyi işleyen<br />

kod, nesne isimli bir birim altında birleştirilir. Yani bu tekniğin yapı taşları nesnelerdir. Bu<br />

tekniğin prosedürel programlamada en önemli farkı, programcının programlama dilinin<br />

düzleminde değil de doğrudan problemin kendi düzleminde düşünmesi, programı<br />

kurgulamasıdır. Bu da gerçek hayata ilişkin bir problemin yazılımda çok daha iyi<br />

modellenmesini sağlar.<br />

Nesne yönelimli programlama tekniğinin yaygın olarak kullanılmaya başlanmasıyla birlikte<br />

birçok programlama dilinin bünyesine bu tekniğin uygulanmasını kolaylaştırıcı araçlar<br />

eklenerek, yeni sürümleri oluşturulmuştur. Örneğin C++ dili, C diline nesne yönelimli<br />

programlama tekniğini uygulayabilmek için bazı eklemelerin yapılmasıyla geliştirilmiştir.<br />

9/529

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!