Programlama dillerini çeşitli açılardan sınıflandırabiliriz. En sık kullanılan sınıflandırmalar:
1. Seviyelerine göre sınıflandırma.
2. Uygulama alanlarına göre sınıflandırma.
Bilgisayar Dillerinin Seviyelerine Göre Sınıflandırması ve Seviyelerine Göre
Bir programlama dilinin seviyesi deyince o programlama dilinin insan algısına olan yakınlığınınderecesini anlıyoruz. Bir programlama dili insan algılasına ne kadar yakınsa o kadar yüksek
seviyeli demektir (high level). Yine bir programlama dili bilgisayarın elektronik yapısına ve
çalışma biçimine ne kadar yakınsa o kadar düşük seviyeli (low level) demektir. Yüksek seviyeli
dillerle çalışmak programcı açısından kolaydır. Algoritma yoktur. Bu dillerde yalnızca nelerin
yapılacağı programa bildirilir ama nasıl yapılacağı bildirilmez. Genel olarak programlama dilinin
seviyesi yükseldikçe , o dilin öğrenilmesi ve o dilde program yazılması kolaylaşır.
Bir bilgisayar yalnızca kendi makine dilini doğrudan anlayabilir. Makine dili bilgisayarın doğal
dilidir ve bilgisayarın donanımsal tasarımına bağlıdır. Bilgisayarların geliştirilmesiyle birlikte
onlara iş yaptırmak için kullanılan ilk diller de makine dilleri olmuştur. Bu yüzden makine
dillerine 1. kuşak diller de diyebiliriz.
Makine dilinin programlarda kullanılmasında karşılaşılan iki temel problem vardır. Makine
dilinde yazılan kodlar doğrudan makinanın işlemcisine, donanım parçalarına verilen
komutlardır. Değişik bir CPU kullanıldığında ya da bellek organizasyonu farklı bir şekilde
yapıldığında artık program çalışmayacak ve programın tekrar yazılması gerekecektir. Çünkü
makine dili yalnızca belirli bir CPU ya da CPU serisine uygulanabilir. Makine dili taşınabilir
(portable) değildir. Diğer önemli bir problem ise, makine dilinde kod yazmanın çok zahmetli
olmasıdır.Yazmanın çok zaman alıcı ve uğraştırıcı olmasının yanı sıra yazılan programı okumak
ya da algılamak da o denli zordur. Özellikle program boyutu büyüdüğünde artık makine dili
programlarını geliştirmek, daha büyütmek iyice karmaşık bir hale gelir.
Başlangıçta yalnızca makine dili vardı. Bu yüzden makine dilleri 1. kuşak diller olarak da
isimlendirilir. Yazılımın ve donanımın tarihsel gelişimi içerisinde makine dilinden, insan
algılamasına çok yakın yüksek seviyeli dillere (4. kuşak diller) kadar uzanan bir süreç söz
konusudur. Bu tarihsel süreci ana hatlarıyla inceleyelim :
1950 li yılların hemen başlarında makine dili kullanımın getirdiği problemleri ortadan
kaldırmaya yönelik çalışmalar yoğunlaştı. Bu yıllarda makine dilleri bilgisayarın çok sınırlı olan
belleğine yükleniyor ve programlar böyle çalıştırılıyordu. İlk önce makine dilinin algılanma ve
anlaşılma zorluğunu kısmen de olsa ortadan kaldıran bir adım atıldı. Sembolik makine dilleri
geliştirildi. Sembolik makine dilleri (Assembly languages) yalnızca 1 ve 0 dan oluşan makine
dilleri yerine İngilizce bazı kısaltma sözcüklerden oluşuyordu. Sembolik makine dillerinin
kullanımı kısa sürede yaygınlaştı. Ancak sembolik makine dillerinin makine dillerine göre çok
önemli bir dezavantajı söz konusuydu. Bu dillerde yazılan programlar makine dilinde yazılan
programlar gibi bilgisayarın belleğine yükleniyor ancak programın çalıştırılma aşamasında
yorumlayıcı (interpreter) bir program yardımıyla sembolik dilin komutları, bilgisayar tarafından
komut komut makine diline çevriliyor ve oluşan makine kodu çalıştırılıyordu. Yani bilgisayar,
programı çalışma aşamasında önce yorumluyarak makine diline çeviriyor daha sonra makine
diline çevrilmiş komutları icra ediyordu. Bu şekilde çalıştırılan programların hızı neredeyse 30
kat yavaşlıyordu.
Bu dönemde özellikle iki yorumlayıcı program öne çıkmıştı: John Mauchly nin UNIVAC 1 için
yazdığı yorumlayıcı (1950) ve John Backus tarafından 1953 yılında IBM 701 için yazılan
"Speedcoding" yorumlama sistemi. Bu tür yorumlayıcılar makine koduna göre çok yavaş
çalışsalar da programcıların verimlerini artırıyorlardı. Ama özellikle eski makine dili
programcıları yorumlayıcıların çok yavaş olduklarını, yalnızca makine dilinde yazılanların gerçek
program deneceğini söylüyorlardı.
Bu sorunun da üstesinden gelindi. O zamanlar için çok parlak kabul edilebilecek fikir şuydu:
Her defasında yazılan kod, kodun çalıştırılması sırasında makine diline çevireceğine,
geliştirilecek bir başka program sembolik dilinde yazılan kodu bir kez makine diline çevirsin ve
artık program ne zaman çalıştırılmak istense, bilgisayar yorumlama olmaksızın yalnızca
makine kodunu çalıştırsın. Bu fikiri geliştiren Grace Hopper isimli bir bayandı. Grace Hopper'ın
buluşuna "compiler" derleyici ismi verildi. (Grace Hopper aynı zamanda Cobol dilini geliştiren
ekipten biridir, bug(böcek) sözcüğünü ilk olarak Grace Hopper kullanmıştır.) Artık programcılar
sembolik sözcüklerden oluşan Assembly programlarını kullanıyor. Yazdıkları programlar
derleyici tarafından makine koduna dönüştürülüyor ve makine kodu eski hızından birşey
kaybetmeksizin tam hızla çalışıyordu. Assembly diller 2. kuşak diller olarak tarihte yerini aldı.
Assembly dillerinin kullanılmaya başlamasıyla bilgisayar kullanımı hızla arttı. Ancak en basit
işlemlerin bile bilgisayara yaptırılması için bir çok komut gerekmesi, programlama prosesini
daha hızlı bir hale getirmek için arayışları başlatmış, bunun sonucunda da daha yüksek seviyeli
programlama dilleri geliştirilmeye başlanmıştır
deneme
YanıtlaSilMeraba
YanıtlaSilBu yorum yazar tarafından silindi.
YanıtlaSil