Programlama Paradigmaları

TheNeferian

Basın&Medya Ekibi
27 Kas 2022
1,438
1,146
є.ค♡
Programlama Paradigması Nedir?

Programlama paradigmaları, problemleri çözmek veya yazılım geliştirmek için kullanılan farklı yaklaşımları tanımlar. Temel programlama paradigmaları arasında emirli programlama, mantıksal programlama, fonksiyonel programlama ve nesneye dayalı programlama (OOP) bulunur. Bu paradigmalar farklı düşünme ve tasarlama yaklaşımları sunar. Hangi paradigmanın seçileceği, projenin gereksinimlerine ve hedeflerine bağlıdır.

na7otd3.png



1- Emirli Programlama (Imperative Programming):

Emirli programlama ile kastedilen, bir programlama dilinde ki komutların satır şeklinde emirlerden oluşmasıdır.

7ymsya2.png


Mesela bir robota komut verecek olsaydık:

Kolu 15 derece sola döndür
3 metre yürü
Kolu 30 derece sağa döndür


Benzeri emirleri sıralamamız gerekecekti. Bu emirleri bazı kaynaklarda “prosedür” ismi verilmektedir. Burada prosedür ile anlatılmak istenen örneğin kolu döndürme işleminin alt emirlerden oluşmasıdır. Örnek verecek olursak robotun nasıl bir açıyla vücudunu tutacağı, kolun hangi mafsalının kaç derecelik açı yapacağı ve kolun nasıl hareket edeceği gibi emirler bu alt prosedürlerde belirtilir.

Emir paradigmada hesaplamanın
“nasıl?” yapılacağı önemlidir. Bu paradigma bilgisayarın donanımına en uygun olanıdır. Hemen hemen tüm bilgisayarların donanımı makine kodunu çalıştıran tarzda dizayn edilmiştir.

na7otd3.png



2- Mantıksal Programlama (Logic Programming):

Mantıksal programlama, matematikteki mantığı temel alır. Programdaki ifadeler şeklinde yazılır. Bu paradigmanın diğerlerinden farkı yorumlama da yapabilmesidir.

7qb4mfh.png


Mantık programı aksiyon kümeleri ve bir hedef cümlesinden oluşur. Hedef cümlesinin doğruluğu için aksiyomların yeterli olup olmadığını tespiti için çıkarım kaideleri vardır. Mantık programının çalışması aksiyomlardan hedef cümlesinin ispatının kurulmasıyla aynıdır. Bu isim belirli durumların sağlanması ve sağlandığı zaman buna uyan bir tepkinin verilmesinden verilmiştir. Bu dala giren en çok bilinen bir dil “prolog” dilidir. Bu programlama sayesinde programlar hakkında çıkarımlar yapmamız sağlanır.

Bir örnekle açıklamaya çalışalım:


Kardeş(X,Y) :- Ebeveyn(Z,X), Ebeveyn(Z,Y).

Ebeveyn(X,Y) :- Baba(X,Y).

Ebeveyn(X,Y) :- Anne(X,Y).

Anne(Ayşe,Dönüş).

Baba(Ramazan,Dönüş).

Baba(Ramazan,İrem).

Baba(Yasin,Ramazan).


Bu ifadeleri yazdıktan sonra Ramazan ve Dönüş’ün kardeş olup olmadığını sorgulayabiliriz.

na7otd3.png



3- Fonksiyonel Programlama (Functional Programming):

Fonksiyonel programlama, programların çözüm için fonksiyonları kullanma yaklaşımıdır. İşletimsel ve değişken tabanlı paradigmalardan farklı olarak, fonksiyonel programlama daha soyut ve matematiksel bir yaklaşım sunar. Bu programlama türü, fonksiyonların birinci sınıf vatandaş olarak kabul edildiği ve yan etkilerin minimuma indirildiği bir tarzda programlamayı teşvik eder.

91xsy4u.png


Herhangi bir dilin fonksiyonel olması dilde fonksiyon veya prosedüre benzeyen özellikler bulundurması ile sağlanır. Bu özellikleri şu şekilde tanımlayabiliriz:
  • Sıfır veya daha fazla argüman ile çıkış yapabilen.
  • Sıfır veya daha fazla argüman ile giriş yapabilen.
  • İç yapısında dilin izin verdiği alt programları barındıran yapıdır.

Yukarıdaki bu maddeleri bir kara kutu yaklaşımı olarak da düşünebiliriz. Yani alt programların programın geri kalanı ile olan tek bağlantıları almış oldukları ve geri döndürmüş oldukları argümanlardır.

Aşağıda bir adet fonksiyon örneği verilmiştir (JAVA, C, C++, C# dillerinde kabul edilir bir koddur):


int topla (int a, int b){
return a+b;
}


Yukarıdaki kod incelediğimizde, a ve b, fonksiyona verilen argümanlardır. Dönüş değeri olarak tam sayı (integer) tipi kullanılmış ve bu durum return komutu ile belirtilmiştir. a+b eylemi ise bir alt programdır.

na7otd3.png



4- Nesneye Dayalı Programlama (Object-Oriented Programming):

Nesne yönelimli programlama, yazılım geliştirmenin bir paradigmasıdır. Bu paradigma, programlama sürecinde nesnelerin (objects) kullanımını vurgular. Nesneler, veri ve işlevselliği birleştiren birimlerdir. Her nesne, belirli bir sınıfa ait özellikleri ve bu özelliklerle ilişkilendirilmiş metotları içerir.

qnkc9zp.png


Nesne yönelimli programlama kavramı, 1960’ların sonlarına doğru ortaya çıkmıştır. Ancak, OOP’nin daha geniş kabul görmesi ve kullanılabilir hale gelmesi 1980’lerin ortalarına kadar sürmüştür. Simula adlı bir programlama dilindeki çalışmalar, OOP’nin temelini atmıştır. Ancak, OOP’nin popülerleşmesinde en etkili dil, Alan Kay ve ekibinin geliştirdiği Smalltalk dilidir. Smalltalk, OOP’nin temel prensiplerini içeren bir dil olarak kabul edilir ve bu dil, nesne yönelimli programlamayı yaygınlaştırmıştır.

OOP, birçok programlama dilinde geniş bir şekilde kullanılmaktadır.
Java, C++, Python, C#, Ruby gibi popüler diller, OOP prensiplerine dayanır. OOP’nin kullanımı, büyük ve karmaşık yazılım sistemlerinin geliştirilmesini kolaylaştırır. Sınıfların kullanımı, kodun modülerleştirilmesine, bakımının yapılmasına ve tekrar kullanılabilirliğinin artırılmasına olanak tanır. OOP’nin esnekliği, büyük yazılım projelerinin daha sürdürülebilir ve organize bir şekilde yönetilmesine olanak sağlar.


kiijapy.png
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.