Terminoloji standardize olmaktan uzak olsa da, büyük programlama paradigmalarını kategorize etmenin ortak bir yolu
- Usul
- Fonksiyonel
- Mantıksal
- Nesne odaklı
- genel
Prosedürel programlamanın nasıl bir şey olduğunu zaten biliyor gibisiniz.
Gelen fonksiyonel dillerde fonksiyonlar birinci sınıf nesneleri olarak kabul edilir. Başka bir deyişle, bir işlevi başka bir işleve argüman olarak iletebilir veya bir işlev başka bir işlev döndürebilir. İşlevsel paradigma, lambda hesabına dayanır ve işlevsel dil örnekleri LISP, Şema ve Haskel'dir. İlginçtir, JavaScript ayrıca işlevsel programlamayı da destekler.
Gelen mantıksal programlama aşağıdaki gibi kuruluşlar arasındaki ilişkileri açıklayan yüklemler'ıN tanımlamak president(Obama, USA)
veya president(Medvedev, Russia)
. Bu tahminler çok karmaşık olabilir ve sadece değişmez değerleri değil değişkenleri içerir. Tüm öngörülerinizi belirledikten sonra, sisteminizle ilgili sorular sorabilir ve mantıksal olarak tutarlı cevaplar alabilirsiniz.
Mantıksal programlamadaki büyük fikir, bilgisayara bir şeylerin nasıl hesaplanacağını söylemek yerine, ona şeylerin ne olduğunu söylemektir . Örnek: PROLOG.
Nesneye yönelik paradigma, bir şekilde prosedürel programlamanın bir uzantısıdır. Prosedürel programlamada, tamsayılı ve değişkenler gibi ilkel türler, diziler veya listeler gibi bileşik türler ve yapılar gibi kullanıcı tanımlı türler olabilir. Ayrıca veriler üzerinde çalışan prosedürleriniz de vardır. Buna karşılık, OO'da hem verileri hem de prosedürleri içeren nesnelere sahipsiniz. Bu, kapsülleme, kalıtım ve polimorfizm gibi güzel şeylere sahip olmanızı sağlar. Örnekler: Smalltalk, C ++, Java, C #.
Genel programlama ilk olarak Ada'da 1983 yılında tanıtıldı ve C ++ 'da şablonların tanıtılmasından sonra yaygınlaştı. Bu, üzerinde çalıştığı gerçek veri türlerini belirtmeden kod yazabilmeniz ve derleyicinin çözmesini sağlamaktır. Mesela yazmak yerine
void swap(int, int);
void swap(float, float);
....
sen yaz
void swap(T, T);
bir kez ve derleyicide, ne olursa olsun T
, kodda kullanıldığında ne olacağı için belirli bir kod oluşturmasını sağlayın swap()
.
Genel programlama, C ++, Java ve C # ile farklı derecelerde desteklenir.
C ++ gibi birçok dilin birden fazla paradigmayı desteklediğine dikkat etmek önemlidir. Bir dilin belirli bir paradigmayı desteklediği söylendiğinde bile, paradigmanın tüm özelliklerini desteklemeyeceği doğrudur. Belirli bir paradigma için hangi özelliklerin gerekli olduğu konusunda çok fazla anlaşmazlık olduğunu söylemeye gerek yok.