Bilgisayar programlama
Bilgisayar programlama, bir bilgisayarın işleyişini demetleyen programlar ya da komut listeleri geliştirme işlemi ya da çalışmasıdır. Bilgisayar sistemleri, donanım hardware) ve yazılımdan (software) oluşur. Donanım, bilgisayarın elektronik ve fiziksel parçalarını kapsar. Yazılımsa, donanımın belleğinde bulunan ve donanım bileşenlerini denetleyen programları içerir. Yazılım programı olmayan bir bilgisayar, sürücüsüz bir otobüs kadar yararsızdır.
Programlar iki temel öbeğe ayrılabilir: İşletim sistemi programlan (bilgisayarın dil yorumu ve giriş-çıkış gibi en temel işlemlerini denetler); uygulama programları (bilgisayarın yeteneklerini, ücret bordrosu hazırlama, mekanik tasarımlar yaratma ve yazılı metinleri işleme gibi belirli işleri yerine getirecek biçimde düzenler).
Bilgisayar programları, "programlama dilleri" denilen kesin yazımlarla ifade edilir. Basit bilgisayar işlemlerinin programları, sıradan kullanıcı için izlenmesi zor olan ve yavaş çalışan düşük düzeyli dillerde yazılır. Yüksek düzeyli diller, makinenin gerektirdiği kesin anlamar ile kullanıcının konuşma dili arasında bir uzlaşma sağlar. Uygulama programları tasarlamakta sık sık kullanılan yüksek düzeyli diller arasında, genellikle kişisel bilgisayar programlan için kullanılan BASİC, genellikle düşük düzeyli programların yazılmasında kullanılan C, iş uygulamarı için kullanılan COBOL ve PASCAL sayılabilir.Programada çok önemli bir etkinlik, bir programın aşamalarının bir ya da daha çok dilde ayrıntılı olarak dile getirilmesidir.
Bir bilgisayarın programlanması, şu aşamalara ayrılabilir:Gerekli koşulların tanımlanması; tasarım özelliği; kodlama; sınama; bakım. Gerekli koşulların tanımlandığı aşama, programın yerine getirmesi gereken işlemlerin nicelik olarak belirlenmesinden oluşur.Örnek olarak, bir ücret bordrosu programı için gerekli koşullar, kaç aylık çekinin işlenmesi, hangi hesaplamaların yapılması ve bilgisayar sisteminin yönlendirildiği bilgilerin nasıl saklanması gerektiğidir. Tasarım özelliği aşamasında, işlem adımlan ve veri saklama yapıları daha ayrıntılı biçimde nicelenerek, gerekli koşulları yerine getirecek yönergeler sağlanır. Bunu yapmak için bir algoritma (ya da adım adım işlem) geliştirilir. Kodlama aşaması, tasarımın, seçilen programlama dilinde dile getirilen adımlara dönüştürüldüğü aşamadır. Sınama aşaması, gerekli koşullar ve tasarım özellikleri bakımından programın doğruluğunun onaylandığı aşamadır: Program, sınanıp doğru olduğu saptandıktan sonra, kullanıma sunulur. Son aşama, güçlendirmelerin ve düzeltmelerin yapıldığı bakım aşamasıdır; programlamanın en uzun ve en masraflı aşaması budur.
Programlamanın bu aşamalarını örneklemek için, gerçek sayılardan oluşan bir listenin toplamını bulmaya yönelik bir programın tasarımı aşağıda verilmiştir:
GEREKLİ KOŞULLAR
Girdi — ilk sayı olan N'nin, ondan sonra kaç sayının geleceğini gösterdiği bir sayı listesi.
Çıktı — N'yi izleyen sayıların toplamı.
İşlev — N sayısının toplamını hesaplayıp yazıcıdan vermek.
Dil - BASİC.
Makine — kişisel bilgisayar.
İstisnalar —program, makinenin taşması nedeniyle başarısız olmamalıdır.
TASARIM ÖZELLİĞİ:
Bileşenler — program, girdi, çıktı ve hesaplama bölümlerinden oluşan tek bir bileşen olacaktır.
Veri yapıları — sayılar, N ve X basit değişkenleri olarak saklanacaktır; burada N bir tamsayı, X de bir tamsayı ya da gerçek sayıdır.
İşlevsellik — program, N sıfırdan küçük ya da sıfıra eşit olduğu zaman, toplamın sıfır olmasını sağlamak için denetim uygulayacak, tersi durumda, klavyeyle makineye verildikçe her sayıyı ardarda toplayarak toplamı hesaplayacaktır.
KODLAMA:
Programın BASİC dilinde yazılışı aşağıda verilmiştir. Program bilgisayara şöyle girilecektir:
10 REM Program to read N, X/1 X/2,...X/N and display the sum
20 İNPUT "Enter N="; N 25 SUM - 0 30 FOR I - 1 to N 35 İNPUT X 40 SUM = SUM + X 50 NEXT I
60 PRINT "Sum-"; SUM 99 END
Notlar: BASİC dilinde, her satırın başındaki büyüyen sayılar, her adımı belirtmeye yarar. Satır 10, programın ne yapacağını kullanıcıya anlatarak programı belgelendiren biraçıklamadır(REM), satır 20, N değerinin verilmesini isteyen, sonra da kullanıcının N'yi girmesini bekleyen komuttur; satır 25, toplamı sıfıra eşitler; satır 30, 35 ve 40 numaralı ifadelerin I—1,2,3, ...,N için N kez tekrarlanacağını belirtir; satır 60/ yanıtın ekranda gösterilmesini sağlar. 40 numaralı ifadede, SUM değeri, 40'ın her tekrarlanışında X kadar artırılır.
SINAMA:
Olgu 1 —N=0 olsun; SUM=0 sonucunu elde etmek için programı çalıştırın.
Olgu 2 — N-1 olsun; SUM=5 sonucunu almak için X=5'le programı çalıştırın.
Olgu 3 — SUM—2 sonucunu almak için N—3, X—1 ,-2,3 olsun.
BAKIM
Program, kullanıldığı süre içinde birçok kez değiştirilebilir. ........
Örnek olarak, kullanıcı, N değeri sıfırdan küçük olduğu zaman programın hata uyarısı yazmasını isteyebilir.
Bilgisayar programlama, masraflı ve zaman alıcı bir uğraştır. Günümüzde, programcının üretkenliğini artıracak yaklaşımlar aranmaktadır. Bunlar arasında, kullanımı daha az çaba gerektiren daha yüksek düzeyli ya da daha güçlü programların bulunması, gerekli koşul analizi, tasarım özelliği, kodlama, sınama ve bakım sürecini otomatikleştirerek programcıların işini kolaylaştıran yardımcı programların geliştirilmesi; programlamanın evrelerini daha kısa sürede tamamlamak için gerekli zihinsel çabayı azaltan yeni programlama yöntemlerinin bulunması sayılabilir.
Bilgisayar programcıları, kusurların erken giderilmesinin üretkenliği artırdığını öğrenmişlerdir. Kusurların erken giderilmesi, tasarım özelliğinde olabilecek kusurların kodlamadan önce ortaya çıkarılması anlamına gelir. Bir kusurun kodlama aşamasından sonra giderilmesi çok daha pahalıya mal olur.
Bakım, programlamada en pahalı aşama olduğu için, yakın dönemdeki çalışmalarda, özgün programda yapılacak değişikliklere olanak tanıyan tasarım, kodlama ve deneme tekniklerine ağırlık verilmiştir. Bu tekniklerin birinde, hata, açıklama, menü ve yardım mesajları koddan ayrılmakta, böylece de bu mesajların değiştirilmesi kolaylaşmaktadır. Yapılandırılmış programlama denilen daha eski bir teknik de, programı anlaşılabilir parçalara bölerek bakım maliyetini azaltmaktadır.
CASE (Computer-Aided Software Engineering — Bilgisayar Destekli Yazılım Mühendisliği) adı altında birçok yeni programlama tekniği geliştirilmiştir. CASE programları, bilgisayar programlama sürecinin çeşitli evrelerini otomatikleştirir. Programın başka pek çok bölümünü etkileyebilen bir değişiklik yapıldığında, ilgili bilgisayar programını otomatik olarak yeniden yazan bir program, CASE aracına örnek gösterilebilir. Bazı CASE araçları da, tıpkı bir yapının standart ve birbirinin yerine kullanılabilen parçaları (pencereler, elektrik anahtarları) gibi yeniden kullanılabilen hazır parçalar sağlayarak programcıya yardımcı olur. Gelecekte programcılar, gerekli koşulların analizine daha çok zaman, tasarıma, kodlamaya, sınamaya ve bakımaysa daha az zaman harcayacaklardır; çünkü bu evreler bir ölçüde ya da bütünüyle otomatikleştirilecektir.