Programlama Dillerinin Sınıflandırılması

Programlama Dillerinin Sınıflandırılması

Programlama dillerinin bir çok açıdan sınıflandırması yapılabilir. Bu kesimde yer alan sınıflandırma, dilleri genel amaçlı ve alana özel dil olarak iki ana sınıf altında kategorize etmektedir. Bu başlıklar altında ise sırasıyla veri türü sistemi ve “paradigma” olarak da adlandırılan dilin modeli kategorilerine göre sınıflandırmalar yapılmıştır.

Bu sınıflandırmada amacımız, diller arasında bir “iyi-kötü” ayrımı yapmak değil, bir karşılaştırma olanağı sağlamak ve PHP dilinin diğer programlama dilleri arasındaki yerini netleştirmektedir. Evet bu yazıdan sonra PHP programlama diline giriş yapacağız.

Zira her dil, geliştirilecek uygulamanın özelliklerine bağlı olarak farklı nitelikleri ile tercih edilebilir  ya da edilmeyebilir. Tabi burada, uygulamayı geliştirecek programcının mesleki tecrübesi de uygun programlama dilinin seçiminde önemli bir rol oynayacaktır. Zira bir programcı için her zaman en iyi programlama dili, kendisinin en iyi bildiği programlama dili olacaktır.

Programlama dilleri amaçlarına göre, “genel amaçlı” ve “alana özel dil” olarak iki kategoride gruplandırılmıştır. Genel amaçlı diller, ek fonksiyon kütüphanelerinin yardımıyla genişleyebilen yapılarının da sayesinde pek çok alanda uygulama geliştirmeye uygun araçlardır. PHP dili de bu kategori altında sınıflandırılmıştır.

Alana özel diller ise, belirli amaçları gerçekleştirmek üzere tasarlanmıştır. Örneğin SQL, veri tabanlarında sorgulama işlemlerini gerçekleştirmek üzere geliştirilmiş yapısal bir dildir.

Programlama dilleri, veri türlü sistemlerine göre statik ve dinamik olarak iki farklı kategoride sınıflandırılabilir.

Statik sistemde değişkenlerin türleri, çalışma anında değil, derleme anında kontrol edilir. Dinamik sistemde ise tersine tür denetimi çalışma anında gerçekleştirilir. Bu durumda türler, değişkenlerle değil doğrudan değerlerle ilişkilendirilir.

PHP programlama dili, dinamik veri türü sistemine sahiptir. Bu sistem, PHP’ye önemli bir üstünlük sağlamaktadır. Dinamik dillerde çalışma-anında girilen verilere bağlı olarak yeni veri türlerinin türetilmesi de mümkün olmaktadır.

Paradigma olarak da adlandırılan, dilin modeli olarak ifade edebileceğimiz sınıflandırma yöntemine göre beş farklı kategori ortaya çıkmaktadır. Ancak bu kategorilere göre Programlama dilleri ayrık olarak sınıflandırılmazlar, bir dil birden çok kategoriye dahil olabilir. Resimde dillerin bu kategorilere göre sınıflandırılması verilmiştir.

Zorunlu programlama olarak çevirebileceğimiz imperatif paradigmaya göre, bilgisayara bir işlemin gerçekleştirilmesi için gereken bütün komut dizeleri verilmektedir. İmperatif programlama, deklaratif, yani bildirimsel programlamanın tersi durum olarak betimlenebilir.

Deklaratif  paradigmaya göre bilgisayara bir işlemin yapılması için gereken emir doğrudan verilir, işlemin nasıl gerçekleştirileceği ile ilgili olarak herhangi bir bilgi verilmez.        Doğrudan sorgulama ifadelerinin yer aldığı SQL dili bu kategoriye güzel bir örnektir.

Prosedürel programlama, 1960’lı yıllardan sonra popüler olmuş bir akımdır. İmperatif programlamanın bir alt türü olarak düşünülebilir. Bu paradigmaya göre gerçekleştirilecek işlemler bilgisayara alt program olarak adlandırabileceğimiz prosedürler şeklinde bildirilir. Daha önceki modellerde yer alan sapma deyimleri, bu modelle birlikte terk edilmiştir.

Fonksiyonel programlama dilleri ise tümüyle fonksiyonlar üzerine kurulmuş bir  dil modeli olarak karşımıza çıkar. Hemen hemen bütün fonksiyonel programlama dilleri, temelleri 1930’lu yıllarda atılmış olan Lambda Analizi (Lambda Calculus) üzerine inşa edilmilştir.

Nesne yönelimli yaklaşımda, sınıflar altında gruplanan nesneler ve onların çeşitli etkileşimleri söz konusudur. Son yıllarda popülaritesi giderek artan bu yaklaşım, bir çok programlama dili tarafından desteklenmeye başlanmıştır.

PHP Programlama dilinin bu sınıflandırmadaki yerine bakacak olursak,    imperatif, yani zorunlu programlama modeli altında yer alan prosedürel paradigmaya dahil olduğunu görürüz.

Her ne kadar geliştirilmeye başlandığı yıllarda yapılandırılmış bir internet programlama dili olarak tasarlansa da PHP, en son sürümleri ile artık nesne yönelimli programlamaya büyük ölçüde uygun hale getirilmiştir. Dolayısıyla bu sınıflandırma içersinde yakın bir gelecekte nesne yönelimli programlama dilleri kümesine dahil olacağını öngörebiliriz.