0.1. Yazılım Geliştirme
Sistem gerçekleştirme aşamalarından programlama, test ve dokümantasyon adımları yazılım geliştirme olarak adlandırılır. Bu adım, yazılım mühendisleri ve programcılar tarafından gerçekleştirilir. Yazılım mühendisleri ve programcılar bu amaçla, program yazarlar. Program, belli bir görevi yapmak için bilgisayarın izlenmesi gereken komutlar dizisidir. Yazılım geliştirme (veya programlama) için izlenmesi gereken aşamalar şunlardır:
1. Program analizi
2. Program tasarımı
3. Program kodlanması
4. Program testi
5. Program belgeleme ve bakım
Bu aşamaları sırayla inceleyelim.
0.1.1. Program Analizi
Program analizi veya tanımı, şu aşamalardan oluşur:
1. Program amaçlarının saptanması: Çözülmek istenen problemin açık tanımı yapılmalıdır. Yazılması gereken programın hedefleri saptanmalıdır.
2. Girdilerin saptanması: Programa veri olarak neler girileceği belirlenmelidir.
3. Çıktıların saptanması: Program çıktılarının neler olacağı belirlenmelidir. Raporlar, grafikler ekranda görüntülenebilir veya yazıcıdan bastırılabilir.
4. İşlemlerin tanımlanması: Programa girilen verinin çıktıya dönüştürülürken yapılması gereken işlemler tanımlanmalıdır.
5. Program gerçekleştirme yapılabilirliğinin araştırılması: Programın gerçekleştirilmesi için bütçenin durumu, süresi, eleman yeterliliği gözden geçirilmelidir.
6. Analizin belgelenmesi: Programın hedefleri, girdisi, çıktısı ve gereken işlemler, daha sonra başvuru amacıyla belgelenmelidir.
0.1.2. Program Tasarımı
Program tasarımı, iki aşamadan oluşur. İlk aşamada, program mantığı belirlenerek sıradüzen diyagramı (hierachy chart) hazırlanır. Daha sonra, ayrıntılı tasarım yapılarak, program, sözdekod (pseudocode) veya akış diyagramı (flowchart) yollarından biriyle açıklanır. Ayrıntılı tasarımda, sırasal, koşul, döngü gibi çeşitli kontrol yapıları kullanılır.
Satış elemanlarının maaşlarını hesaplayan bir örnek üzerinde bu aşamaları anlatalım. Çalışanların maaşları, taban maaş ve satış komisyonlarının toplamından oluşuyor. Satış elemanınının aldığı komisyon, belli bir kotayı aşarsa %10, kotanın altında kalırsa %5 olarak hesaplanıyor.
7. Program mantığını belirleme: Programın taslağını çıkarmaktır. Bunu yapmak için, yukarıdan aşağıya tasarım yapılır. En üst modülden başlayarak işlemler, en alt düzeye kadar detaylandırılır. Şekildeki sıradüzen diyagramında, "bordro işlemi", "rapor başlığını görüntüle" ve "işçi maaşını hesapla" kısımlarından oluşmaktadır. "işçi maaşını hesapla" kısmı da, "maaş hesapla" ve "maaş görüntüle" kısımlarından oluşmaktadır.
8. ·******* Ayrıntılı tasarım: Bir önceki aşamada çıkarılan taslağın ayrıntılarını oluşturmaktır. Ayrıntıları anlatmak için iki değişik yaklaşım bulunmaktadır. Birisi yazıyla sözdekod, diğeri çizimle akış diyagramı.
Sözdekod
BAŞLA
taban ve kotayı girdi olarak al
rapor başlığını çıktı olarak yaz
DO WHILE çalışan var
çalışanın satışını girdi olarak al
IF satış > kota THEN
maaş = taban + satış * 0.1
ELSE
maaş = taban + satış * 0.05
ENDIF
maaşı çıktı olarak yaz
END DO
DUR
Akış Diyagramı
Ayrıntılı tasarımda komutların işlenme sırasını gösteren çeşitli kontrol yapıları kullanılır. Bunlar, sırasal, koşul ve döngüdür.
Sırasal: Her komut, bir öncekini izler. Örnekte, taban ve kotayı okuyan komut ile rapor başlığını yazan komutlar sırasaldır.
Koşul: Bir seçim belirtir. Bir karara bağlı olarak iki değişik yol önerir. Örnekte, satışın kotadan büyük olup olmadığına göre iki şekilde maaş hesaplanmaktadır.
Döngü: Belli bir koşul sağlanana kadar bir işlemin tekrarlanmasıdır. Örnekte, çalışan olduğu sürece maaş hesaplama işlemi devam etmektedir.
0.1.3. Program Kodlaması
Çoğu kişi, kodlamayı programlama olarak sanırlar. Ancak kodlama, programlama aşamalarından yalnız biridir. Şu aşamalardan oluşur:
1. Programlama dili seçimi: Yüzlerce programlama dili vardır. Bütün diller her amaca uygun değildir. Bazı diller matematiksel işlemler için, bazıları veritabanı yönetimi için daha uygundur. Bu dillerden, programın amacına uygun olanı veya kurumda yaygın olarak kullanılanı, programlama yapmak için seçilir.
2. Programın yazılması: Program, kağıt kalem veya bilgisayar kullanılarak seçilen programlama dilinin kurallarına göre yazılır. Program, daha sonra üzerinde başka programcıların değişiklik yapmasına olanak tanıyacak şekilde kolay anlaşılır ve açıklayıcı olmalıdır.
0.1.4. Program Testi
Programı yazanlar kodlama sırasında hata yapabilirler. İki tür hata vardır: sözdizimi (syntax) ve mantık (semantic veya logic).
1. Sözdizimi hatası, seçilen programlama dilinin kurallarına uyulmamasıdır. Örneğin, Pascal dilinde her komut noktalı virgül ( işaretiyle biter. Eğer programcı, komutlardan birinin sonunda yanlışlıkla bu işareti yazmayı unutursa, program sözdizimi hatası nedeniyle çalışmaz.
2. Mantık hatası, programın istenen işlevi gerçekleştirmemesi veya yanlış olarak gerçekleştirmesidir. Örneğin, öğrencilerin girilen notlarından ortalama hesaplayarak dersten başarılı olup olmadıklarını rapor halinde sunan bir program, başarısız olması gereken öğrencilerde dahil olmak üzere herkesi başarılı veya başarılı olması gereken öğrenciyi başarısız olarak sunuyorsa, programda mantık hatası vardır ve yanlış çalışmaktadır.
Program testi sırasında program, sözdizimi ve mantık hatalarından temizlenir. Hataların temizlenmesi (debug) için çeşitli yöntemlerden bir ya da bir kaç tanesi kullanılabilir:
Masabaşı inceleme: Programcı, kağıda basılı programı masasında elle kontrol ederek sözdizimi veya mantık hatalarını düzeltmeye çalışır. Ayrıca mantık hatalarını bulmak için, örnek verinin program komutları tarafından nasıl işlendiği el veya hesap makinesi ile takip ederek doğru sonuçlar elde edip etmediğini bulmaya çalışır.
Dil çevirmen program: Daha önce öğrendiğimiz gibi, programlar, dil çevirmen program tarafından makine diline çevrilip çalıştırılır. Program çalıştırılmadan önce, programın sözdizimi hatasının olmaması gerekir. Dil çevirmen program, sözdizimi hatalarının bulunmasına yardımcı olur.
Gerçek veriyle çalıştırma (alfa testi): Programın bütün sözdizimi hataları temizlendikten sonra, mantık hatası olup olmadığı araştırılır. Bunun için çıktısı bilinen girdiler verilerek programın doğru sonuçlara ulaşıp ulaşmadığına bakılır ve mantık hataları düzeltilir.
Beta testi: En sonunda, program bir grup potansiyel kullanıcıya deneme için bir süre kullandırılır. Kullanıcılar, karşılaştıkları sorunları programcılara bildirirler.
0.1.5. Program Belgeleme ve Bakımı
Belgeleme, programı ve nasıl kullanılacağını anlatan yazılı açıklamalardır. Aslında belgeleme, yazılım bittikten sonra değil, yazılım geliştirmenin bütün aşamalarında yapılır. Bu aşamada, daha önce hazırlanan belgeler gözden geçirilerek son haline getirilir. Belgeleme, programın içinde, programın nasıl çalıştığını ve ne yaptığını anlatan yorum satırları ve kullanım kılavuzu olarak yapılır. Belgeleme, programda daha sonra yapılacak güncellemeler açısından önemlidir. Hazırlanan belgeler, iki grup açısından önem taşır:
Kullanıcılar, yazılımın nasıl kullanılacağını ya bir eğitim alarak ya da kullanım kılavuzu yardımıyla öğrenirler. Her iki durumda da belgeleme rol oynar. Program bir uyarı veya hata mesajı verdiği zaman yapılacaklar bu belgelerden öğrenilebilir. Bazı yazılımlarda yardım programın içinde bir menü seçeneği olabilir.
Programcılar, gelecekte program güncellemeleri gerektiğinde bu belgelerden yararlanırlar. Üzerinden zaman geçince, programı hazırlayan kişi bile yazılımın işleyişini tam olarak hatırlayamayabilir. Güncellemeyi yapacak diğer programcılar, yeterli belgeleme yapılmamışsa başarılı olamazlar. Programın içindeki yorum satırları dışında akış diyagramları, sözde kod gibi öğeler belgelemeyi tamamlarlar.
Program bakımı, yazılımın hatasız, verimli bir şekilde çalışmasını sağlamak için; ve kurum içi ve dışı değişen gereksinimleri karşılamak için programın sürekli güncellenmesidir. Güncellenmenin sağlıklı şekilde yapılabilmesi için belgelemenin yeterli olması gerekir.
0.2. Programlama Dilleri
Programlama dili, bilgisayara yapması gereken işlemleri bildiren bir kurallar kümesidir. Programcılar, programlama dillerini kullanarak diğer yazılımları üretirler. Her biri değişik türde sorunları çözmek için uygun olan bir çok programlama dili yaratılmıştır. Bu dillerin hepsi bilgisayarın anlayabileceği 0 ve 1'den oluşan biçime dönüştürülmelidir.
En alt düzeyden en yüksek düzeye kadar beş değişik programlama dili nesli vardır. Programlama dilleri bilgisayarın kullandığı 0 ve 1'lere daha yakın olduğunda alt düzey, insanın konuştuğu dile yakın olduğunda yüksek düzey olarak adlandırılır. 1945 yılından itibaren yıllar boyunca beş nesil programlama dili geliştirilmiştir. Bunlar:
Birinci nesil, 1945 - makine dili
İkinci nesil, 1955'ler - çevirici dil
Üçüncü nesil, 1960 başları - yüksek düzey diller (yordamsal diller): Örneğin, COBOL, BASIC, C.
Dördüncü nesil, 1970 başları - çok yüksek düzey diller (soruna-yönelik diller): Örneğin, SQL, FOCUS.
Beşinci nesil, 1980 başları - doğal diller
Nesil Örnek Komut
Birinci: Makine dili 00011011
İkinci: Çevirici dil ADD R1, R2, R3
Üçüncü: Yordamsal diller maas := maas * 2;
Dördüncü: Soruna-yönelik diller FIND ad = "Tolga"
Beşinci: Doğal diller Eğer satış miktarı kotayı geçerse, o zaman maaşı ikiyle çarp.
*
0.2.1. Birinci Nesil: Makine Dili
Makine dili, 0 ve 1'lerden oluşan, bilgisayarın doğal dilidir. Makine dili, bilgisayarın tasarımına göre bilgisayardan bilgisayara değişir. Yani, makineye bağlı dildir. Bilgisayarın ilk yıllarında, bir sonraki nesil diller çıkana kadar kullanımı çok zor olan bu dil kullanıldı. Programcılar, 0 ve 1 sayılarını kullanarak program yazarlardı.
0.2.2. İkinci Nesil: Çevirici Dil
Çevirici dil, sayılar yerine, kolay hatırlanan kelimeler ve kısaltmaları kullanarak program yazılabilen alt düzey bir dildir. Örneğin, LD, MUL, ADD gibi komutlar sayılar yerine kullanılabilir. Kullanımı, makine diline kıyasla biraz daha kolaydır. Ancak, yine de öğrenmesi zor ve hata yapması kolay bir dildir. Makine dili gibi, bilgisayardan bilgisayara değişim gösterir.
İkinci ve daha yüksek nesil dilleri, bilgisayarın anlayabileceği makine diline çeviren programlara gereksinim vardır. Dil çevirmen olarak adlandırılan bu programlar üç çeşittir:
Çevirici program
Derleyici
Yorumlayıcı
Bunlardan çevirici program, çevirici dilinde yazılmış programları makine diline çevirir. Derleyici ve yorumlayıcılar daha yüksek nesil diller için kullanılırlar.
0.2.3. Üçüncü Nesil: Yordamsal Diller
Yüksek düzey veya yordamsal diller, genellikle İngilizce gibi insan dilini andıran dillerdir. Kısaltma veya sayılar yerine, İngilizce dilini andıran komutlar içerir.
Makine bağımlı değildirler. Yani, değişik bilgisayarlarda kullanılabilirler. Bu dillerde yazılmış programları makine diline çeviren dil çevirmenler, derleyici ve yorumlayıcılardır.
·******* Derleyici: Programı çalıştırmadan, önce yüksek düzey dil programının tümünü makine diline çeviren programlardır. Yüksek düzey dil programının komutlarının bulunduğu dosya, kaynak (source) kod; derleyicinin çevirdiği makine dili komutlarının bulunduğu dosya, nesne (object) kod olarak adlandırılır. Nesne kodu, daha sonra çalıştırmak için saklanabilir.
Yorumlayıcı: Yüksek düzey dil programının komutlarını birer birer makine diline çevirip, o an çalıştıran programlardır. Nesne kod saklanmaz, bu yüzden genellikle daha yavaş çalışır. Ancak komutlar teker teker çalıştırıldığı için, hata ayıklamak daha kolay olur.
0.2.4. Dördüncü Nesil: Soruna-Yönelik Diller
Soruna-yönelik diller, kullanımı daha kolay ve program geliştirmek için daha az komutun kullanıldığı dillerdir. Yordamsal diller gibi genel amaçlı değil, belli bir sorunu çözmek için kullanılırlar. Üç tür soruna-yönelik dil vardır:
Rapor üretici: Programcı olmayan son kullanııların rapor üretmeleri için kullanılan dillerdir. Bir veri tabanından alınan bilgileri ekran veya yazıcıda çıkarır. RPG, bu tür bir dildir.
Sorgulama dili: Bir veri tabanı yönetim sisteminden veri getirmek amacıyla kullanılan dildir. Bir komut ya da menü seçenekleriyle kullanılabilir. SQL, bu tür bir dildir.
Uygulama üretici: Önceden tanımlı görevleri yapan program modüllerinin bir araya getirilmelerini sağlayan ve programcı tarafından kullanılan bir araçtır. Programların menülerini ve giriş/çıkış ekranlarını daha hızlı üretmek için kullanılır. FOCUS veri tabanı yönetim sistemi, uygulama üretici aracına sahiptir.
0.2.5. Beşinci Nesil: Doğal Diller
Doğal diler, İngilizce gibi insan dillerini andıran dillerdir. Üzerinde çalışmalar devam etmektedir.
__________________
Sistem gerçekleştirme aşamalarından programlama, test ve dokümantasyon adımları yazılım geliştirme olarak adlandırılır. Bu adım, yazılım mühendisleri ve programcılar tarafından gerçekleştirilir. Yazılım mühendisleri ve programcılar bu amaçla, program yazarlar. Program, belli bir görevi yapmak için bilgisayarın izlenmesi gereken komutlar dizisidir. Yazılım geliştirme (veya programlama) için izlenmesi gereken aşamalar şunlardır:
1. Program analizi
2. Program tasarımı
3. Program kodlanması
4. Program testi
5. Program belgeleme ve bakım
Bu aşamaları sırayla inceleyelim.
0.1.1. Program Analizi
Program analizi veya tanımı, şu aşamalardan oluşur:
1. Program amaçlarının saptanması: Çözülmek istenen problemin açık tanımı yapılmalıdır. Yazılması gereken programın hedefleri saptanmalıdır.
2. Girdilerin saptanması: Programa veri olarak neler girileceği belirlenmelidir.
3. Çıktıların saptanması: Program çıktılarının neler olacağı belirlenmelidir. Raporlar, grafikler ekranda görüntülenebilir veya yazıcıdan bastırılabilir.
4. İşlemlerin tanımlanması: Programa girilen verinin çıktıya dönüştürülürken yapılması gereken işlemler tanımlanmalıdır.
5. Program gerçekleştirme yapılabilirliğinin araştırılması: Programın gerçekleştirilmesi için bütçenin durumu, süresi, eleman yeterliliği gözden geçirilmelidir.
6. Analizin belgelenmesi: Programın hedefleri, girdisi, çıktısı ve gereken işlemler, daha sonra başvuru amacıyla belgelenmelidir.
0.1.2. Program Tasarımı
Program tasarımı, iki aşamadan oluşur. İlk aşamada, program mantığı belirlenerek sıradüzen diyagramı (hierachy chart) hazırlanır. Daha sonra, ayrıntılı tasarım yapılarak, program, sözdekod (pseudocode) veya akış diyagramı (flowchart) yollarından biriyle açıklanır. Ayrıntılı tasarımda, sırasal, koşul, döngü gibi çeşitli kontrol yapıları kullanılır.
Satış elemanlarının maaşlarını hesaplayan bir örnek üzerinde bu aşamaları anlatalım. Çalışanların maaşları, taban maaş ve satış komisyonlarının toplamından oluşuyor. Satış elemanınının aldığı komisyon, belli bir kotayı aşarsa %10, kotanın altında kalırsa %5 olarak hesaplanıyor.
7. Program mantığını belirleme: Programın taslağını çıkarmaktır. Bunu yapmak için, yukarıdan aşağıya tasarım yapılır. En üst modülden başlayarak işlemler, en alt düzeye kadar detaylandırılır. Şekildeki sıradüzen diyagramında, "bordro işlemi", "rapor başlığını görüntüle" ve "işçi maaşını hesapla" kısımlarından oluşmaktadır. "işçi maaşını hesapla" kısmı da, "maaş hesapla" ve "maaş görüntüle" kısımlarından oluşmaktadır.
8. ·******* Ayrıntılı tasarım: Bir önceki aşamada çıkarılan taslağın ayrıntılarını oluşturmaktır. Ayrıntıları anlatmak için iki değişik yaklaşım bulunmaktadır. Birisi yazıyla sözdekod, diğeri çizimle akış diyagramı.
Sözdekod
BAŞLA
taban ve kotayı girdi olarak al
rapor başlığını çıktı olarak yaz
DO WHILE çalışan var
çalışanın satışını girdi olarak al
IF satış > kota THEN
maaş = taban + satış * 0.1
ELSE
maaş = taban + satış * 0.05
ENDIF
maaşı çıktı olarak yaz
END DO
DUR
Akış Diyagramı
Ayrıntılı tasarımda komutların işlenme sırasını gösteren çeşitli kontrol yapıları kullanılır. Bunlar, sırasal, koşul ve döngüdür.
Sırasal: Her komut, bir öncekini izler. Örnekte, taban ve kotayı okuyan komut ile rapor başlığını yazan komutlar sırasaldır.
Koşul: Bir seçim belirtir. Bir karara bağlı olarak iki değişik yol önerir. Örnekte, satışın kotadan büyük olup olmadığına göre iki şekilde maaş hesaplanmaktadır.
Döngü: Belli bir koşul sağlanana kadar bir işlemin tekrarlanmasıdır. Örnekte, çalışan olduğu sürece maaş hesaplama işlemi devam etmektedir.
0.1.3. Program Kodlaması
Çoğu kişi, kodlamayı programlama olarak sanırlar. Ancak kodlama, programlama aşamalarından yalnız biridir. Şu aşamalardan oluşur:
1. Programlama dili seçimi: Yüzlerce programlama dili vardır. Bütün diller her amaca uygun değildir. Bazı diller matematiksel işlemler için, bazıları veritabanı yönetimi için daha uygundur. Bu dillerden, programın amacına uygun olanı veya kurumda yaygın olarak kullanılanı, programlama yapmak için seçilir.
2. Programın yazılması: Program, kağıt kalem veya bilgisayar kullanılarak seçilen programlama dilinin kurallarına göre yazılır. Program, daha sonra üzerinde başka programcıların değişiklik yapmasına olanak tanıyacak şekilde kolay anlaşılır ve açıklayıcı olmalıdır.
0.1.4. Program Testi
Programı yazanlar kodlama sırasında hata yapabilirler. İki tür hata vardır: sözdizimi (syntax) ve mantık (semantic veya logic).
1. Sözdizimi hatası, seçilen programlama dilinin kurallarına uyulmamasıdır. Örneğin, Pascal dilinde her komut noktalı virgül ( işaretiyle biter. Eğer programcı, komutlardan birinin sonunda yanlışlıkla bu işareti yazmayı unutursa, program sözdizimi hatası nedeniyle çalışmaz.
2. Mantık hatası, programın istenen işlevi gerçekleştirmemesi veya yanlış olarak gerçekleştirmesidir. Örneğin, öğrencilerin girilen notlarından ortalama hesaplayarak dersten başarılı olup olmadıklarını rapor halinde sunan bir program, başarısız olması gereken öğrencilerde dahil olmak üzere herkesi başarılı veya başarılı olması gereken öğrenciyi başarısız olarak sunuyorsa, programda mantık hatası vardır ve yanlış çalışmaktadır.
Program testi sırasında program, sözdizimi ve mantık hatalarından temizlenir. Hataların temizlenmesi (debug) için çeşitli yöntemlerden bir ya da bir kaç tanesi kullanılabilir:
Masabaşı inceleme: Programcı, kağıda basılı programı masasında elle kontrol ederek sözdizimi veya mantık hatalarını düzeltmeye çalışır. Ayrıca mantık hatalarını bulmak için, örnek verinin program komutları tarafından nasıl işlendiği el veya hesap makinesi ile takip ederek doğru sonuçlar elde edip etmediğini bulmaya çalışır.
Dil çevirmen program: Daha önce öğrendiğimiz gibi, programlar, dil çevirmen program tarafından makine diline çevrilip çalıştırılır. Program çalıştırılmadan önce, programın sözdizimi hatasının olmaması gerekir. Dil çevirmen program, sözdizimi hatalarının bulunmasına yardımcı olur.
Gerçek veriyle çalıştırma (alfa testi): Programın bütün sözdizimi hataları temizlendikten sonra, mantık hatası olup olmadığı araştırılır. Bunun için çıktısı bilinen girdiler verilerek programın doğru sonuçlara ulaşıp ulaşmadığına bakılır ve mantık hataları düzeltilir.
Beta testi: En sonunda, program bir grup potansiyel kullanıcıya deneme için bir süre kullandırılır. Kullanıcılar, karşılaştıkları sorunları programcılara bildirirler.
0.1.5. Program Belgeleme ve Bakımı
Belgeleme, programı ve nasıl kullanılacağını anlatan yazılı açıklamalardır. Aslında belgeleme, yazılım bittikten sonra değil, yazılım geliştirmenin bütün aşamalarında yapılır. Bu aşamada, daha önce hazırlanan belgeler gözden geçirilerek son haline getirilir. Belgeleme, programın içinde, programın nasıl çalıştığını ve ne yaptığını anlatan yorum satırları ve kullanım kılavuzu olarak yapılır. Belgeleme, programda daha sonra yapılacak güncellemeler açısından önemlidir. Hazırlanan belgeler, iki grup açısından önem taşır:
Kullanıcılar, yazılımın nasıl kullanılacağını ya bir eğitim alarak ya da kullanım kılavuzu yardımıyla öğrenirler. Her iki durumda da belgeleme rol oynar. Program bir uyarı veya hata mesajı verdiği zaman yapılacaklar bu belgelerden öğrenilebilir. Bazı yazılımlarda yardım programın içinde bir menü seçeneği olabilir.
Programcılar, gelecekte program güncellemeleri gerektiğinde bu belgelerden yararlanırlar. Üzerinden zaman geçince, programı hazırlayan kişi bile yazılımın işleyişini tam olarak hatırlayamayabilir. Güncellemeyi yapacak diğer programcılar, yeterli belgeleme yapılmamışsa başarılı olamazlar. Programın içindeki yorum satırları dışında akış diyagramları, sözde kod gibi öğeler belgelemeyi tamamlarlar.
Program bakımı, yazılımın hatasız, verimli bir şekilde çalışmasını sağlamak için; ve kurum içi ve dışı değişen gereksinimleri karşılamak için programın sürekli güncellenmesidir. Güncellenmenin sağlıklı şekilde yapılabilmesi için belgelemenin yeterli olması gerekir.
0.2. Programlama Dilleri
Programlama dili, bilgisayara yapması gereken işlemleri bildiren bir kurallar kümesidir. Programcılar, programlama dillerini kullanarak diğer yazılımları üretirler. Her biri değişik türde sorunları çözmek için uygun olan bir çok programlama dili yaratılmıştır. Bu dillerin hepsi bilgisayarın anlayabileceği 0 ve 1'den oluşan biçime dönüştürülmelidir.
En alt düzeyden en yüksek düzeye kadar beş değişik programlama dili nesli vardır. Programlama dilleri bilgisayarın kullandığı 0 ve 1'lere daha yakın olduğunda alt düzey, insanın konuştuğu dile yakın olduğunda yüksek düzey olarak adlandırılır. 1945 yılından itibaren yıllar boyunca beş nesil programlama dili geliştirilmiştir. Bunlar:
Birinci nesil, 1945 - makine dili
İkinci nesil, 1955'ler - çevirici dil
Üçüncü nesil, 1960 başları - yüksek düzey diller (yordamsal diller): Örneğin, COBOL, BASIC, C.
Dördüncü nesil, 1970 başları - çok yüksek düzey diller (soruna-yönelik diller): Örneğin, SQL, FOCUS.
Beşinci nesil, 1980 başları - doğal diller
Nesil Örnek Komut
Birinci: Makine dili 00011011
İkinci: Çevirici dil ADD R1, R2, R3
Üçüncü: Yordamsal diller maas := maas * 2;
Dördüncü: Soruna-yönelik diller FIND ad = "Tolga"
Beşinci: Doğal diller Eğer satış miktarı kotayı geçerse, o zaman maaşı ikiyle çarp.
*
0.2.1. Birinci Nesil: Makine Dili
Makine dili, 0 ve 1'lerden oluşan, bilgisayarın doğal dilidir. Makine dili, bilgisayarın tasarımına göre bilgisayardan bilgisayara değişir. Yani, makineye bağlı dildir. Bilgisayarın ilk yıllarında, bir sonraki nesil diller çıkana kadar kullanımı çok zor olan bu dil kullanıldı. Programcılar, 0 ve 1 sayılarını kullanarak program yazarlardı.
0.2.2. İkinci Nesil: Çevirici Dil
Çevirici dil, sayılar yerine, kolay hatırlanan kelimeler ve kısaltmaları kullanarak program yazılabilen alt düzey bir dildir. Örneğin, LD, MUL, ADD gibi komutlar sayılar yerine kullanılabilir. Kullanımı, makine diline kıyasla biraz daha kolaydır. Ancak, yine de öğrenmesi zor ve hata yapması kolay bir dildir. Makine dili gibi, bilgisayardan bilgisayara değişim gösterir.
İkinci ve daha yüksek nesil dilleri, bilgisayarın anlayabileceği makine diline çeviren programlara gereksinim vardır. Dil çevirmen olarak adlandırılan bu programlar üç çeşittir:
Çevirici program
Derleyici
Yorumlayıcı
Bunlardan çevirici program, çevirici dilinde yazılmış programları makine diline çevirir. Derleyici ve yorumlayıcılar daha yüksek nesil diller için kullanılırlar.
0.2.3. Üçüncü Nesil: Yordamsal Diller
Yüksek düzey veya yordamsal diller, genellikle İngilizce gibi insan dilini andıran dillerdir. Kısaltma veya sayılar yerine, İngilizce dilini andıran komutlar içerir.
Makine bağımlı değildirler. Yani, değişik bilgisayarlarda kullanılabilirler. Bu dillerde yazılmış programları makine diline çeviren dil çevirmenler, derleyici ve yorumlayıcılardır.
·******* Derleyici: Programı çalıştırmadan, önce yüksek düzey dil programının tümünü makine diline çeviren programlardır. Yüksek düzey dil programının komutlarının bulunduğu dosya, kaynak (source) kod; derleyicinin çevirdiği makine dili komutlarının bulunduğu dosya, nesne (object) kod olarak adlandırılır. Nesne kodu, daha sonra çalıştırmak için saklanabilir.
Yorumlayıcı: Yüksek düzey dil programının komutlarını birer birer makine diline çevirip, o an çalıştıran programlardır. Nesne kod saklanmaz, bu yüzden genellikle daha yavaş çalışır. Ancak komutlar teker teker çalıştırıldığı için, hata ayıklamak daha kolay olur.
0.2.4. Dördüncü Nesil: Soruna-Yönelik Diller
Soruna-yönelik diller, kullanımı daha kolay ve program geliştirmek için daha az komutun kullanıldığı dillerdir. Yordamsal diller gibi genel amaçlı değil, belli bir sorunu çözmek için kullanılırlar. Üç tür soruna-yönelik dil vardır:
Rapor üretici: Programcı olmayan son kullanııların rapor üretmeleri için kullanılan dillerdir. Bir veri tabanından alınan bilgileri ekran veya yazıcıda çıkarır. RPG, bu tür bir dildir.
Sorgulama dili: Bir veri tabanı yönetim sisteminden veri getirmek amacıyla kullanılan dildir. Bir komut ya da menü seçenekleriyle kullanılabilir. SQL, bu tür bir dildir.
Uygulama üretici: Önceden tanımlı görevleri yapan program modüllerinin bir araya getirilmelerini sağlayan ve programcı tarafından kullanılan bir araçtır. Programların menülerini ve giriş/çıkış ekranlarını daha hızlı üretmek için kullanılır. FOCUS veri tabanı yönetim sistemi, uygulama üretici aracına sahiptir.
0.2.5. Beşinci Nesil: Doğal Diller
Doğal diler, İngilizce gibi insan dillerini andıran dillerdir. Üzerinde çalışmalar devam etmektedir.
__________________