Programlama paradigmaları, programlama dillerini özelliklerine göre sınıflandırmanın bir yoludur. Diller birden fazla paradigma içinde sınıflandırılabilir.
Bazı paradigmalar, temel olarak, izin verilmesi veya işlem sırasının yürütme modeli tarafından tanımlanıp tanımlanmadığı gibi dilin için çıkarımlarla ilgilidir. Diğer paradigmalar, bir kodu, kod tarafından değiştirilen durumla birlikte birimler halinde gruplamak gibi, esas olarak kodun düzenlenme şekliyle ilgilidir. Yine de diğerleri esas olarak sözdizimi ve dilbilgisi stiliyle ilgilenir.
Yaygın programlama paradigmaları şunları içerir:
- Programcının, makineye durumunu nasıl değiştireceğini bildirdiği (), emirli;
- Emirleri prosedürler halinde gruplandıran, yordamsal.
- Komutları, üzerinde çalıştıkları durumun bir parçası ile gruplandıran nesne yönelimli.
- Programcının, istenen sonucun özelliklerini nadiren bildirdiği, ancak nasıl hesaplanacağını açıklamadığı, (bildirimsel);
- İstenen hesaplama sonucunun, bir dizi fonksiyon çağırımının sonucu olarak görüldüğü, fonksiyonel programlama.
- Bir gerçekler ve kurallar sistemi hakkındaki bir sorunun cevabı olarak tanımlanan sonucun bildirildiği, mantıksal programlama.
- Sonucun, bir optimizasyon probleminin çözümü olarak bildirildiği matematiksel programlama.
- İstenen sonucun veri akışları ve değişikliğin yayılması ile bildirildiği .
Programın kendisine atıfta bulunmasını sağlayan gibi, teknikler de bir programlama paradigması olarak düşünülebilir. Ancak bu, ana paradigmalarla uyumludur ve bu nedenle kendi başına gerçek bir paradigma değildir.
Örneğin, emirli paradigmaya giren dillerin iki ana özelliği vardır: işlemlerin gerçekleştiği sırayı, bu sırayı açıkça kontrol eden yapılarla belirtirler ve herhangi bir zamanda bir durumun değiştirilebileceği yan etkilere izin verirler. Bir kod birimi içinde, zamanın farklı bir noktasında farklı bir kod birimi okunabilir. Kod birimleri arasındaki iletişim açık değildir. Bu arada, nesne yönelimli programlamada kod, yalnızca nesnenin parçası olan kod tarafından değiştirilen bir durumu içeren nesneler halinde düzenlenir. Nesne yönelimli dillerin çoğu aynı zamanda emirli dillerdir. Buna karşılık, bildirimsel paradigmaya uyan diller, işlemlerin yürütüleceği sırayı belirtmez. Bunun yerine, sistemde her birinin yürütülmesine izin verilen koşullarla birlikte bir dizi kullanılabilir işlem sağlarlar. Dilin yürütme modelinin uygulanması, hangi işlemlerin yürütülmekte serbest olduğunu izler ve sırayı bağımsız olarak seçer. Daha fazlası için, .
Genel bakış
![image](https://www.wikipedia.tr-tr.nina.az/image/aHR0cHM6Ly93d3cud2lraXBlZGlhLnRyLXRyLm5pbmEuYXovaW1hZ2UvYUhSMGNITTZMeTkxY0d4dllXUXVkMmxyYVcxbFpHbGhMbTl5Wnk5M2FXdHBjR1ZrYVdFdlkyOXRiVzl1Y3k5MGFIVnRZaTltTDJZM0wxQnliMmR5WVcxdGFXNW5YM0JoY21Ga2FXZHRjeTV6ZG1jdk1qVXdjSGd0VUhKdlozSmhiVzFwYm1kZmNHRnlZV1JwWjIxekxuTjJaeTV3Ym1jPS5wbmc=.png)
Yazılım mühendisliğinin (bir süreç olarak) farklı metodolojilerle tanımlanması gibi, programlama dilleri de (hesaplama modelleri olarak) farklı paradigmalarla tanımlanır. Bazı diller tek bir paradigmayı desteklemek üzere tasarlanmıştır (Smalltalk nesne yönelimli programlamayı destekler, Haskell işlevsel programlamayı destekler), diğer programlama dilleri ise birden çok paradigmayı destekler (Object Pascal, , Java, JavaScript, C#, Scala, Visual Basic, Common Lisp gibi), Şema, Perl, PHP, Python, Ruby, ve (F#)). Örneğin, C++, Object Pascal veya PHP ile yazılmış programlar tamamen prosedürel ya da tamamen nesne yönelimli olabilir. Ya da her ikisinin veya diğer paradigmaların öğelerini içerebilir. Yazılım tasarımcıları ve programcılar bu paradigma öğelerinin nasıl kullanılacağına karar verirler.
Nesne yönelimli programlamada, programlar bir dizi etkileşimli nesne olarak ele alınır. İşlevsel programlamada, programlar durumsuz işlev değerlendirmeleri dizisi olarak ele alınır. Çok işlemcili bilgisayarları veya sistemleri programlarken, programlamada, programlar mantıksal olarak paylaşılan veri yapıları üzerinde hareket eden eşzamanlı işlemler kümesi olarak ele alınır.
Pek çok programlama paradigması, teşvik ettikleri teknikler kadar yasakladıkları tekniklerle de bilinir. Örneğin, işlevsel programlama kullanımına izin vermezken, yapılandırılmış programlama, (goto) (git) ifadesinin kullanımına izin vermez. Kısmen, bu nedenle, yeni paradigmalar genellikle daha önceki tarzlara alışkın olanlar tarafından doktriner veya aşırı katı olarak kabul edilir. Yine de, belirli tekniklerden kaçınmak, program davranışını anlamayı ve program doğruluğu ile ilgili (teoremleri kanıtlamayı) kolaylaştırabilir.
Programlama paradigmaları, yalnızca bir UPA kullanarak bir çağrılmasına izin veren de karşılaştırılabilir. Programlama modelleri, yürütme modelinin özelliklerine göre paradigmalar olarak da sınıflandırılabilir.
Paralel hesaplama için, bir dil yerine bir programlama modeli kullanmak yaygındır. Bunun nedeni, paralel donanımın ayrıntılarının donanımı programlamak için kullanılan soyutlamalara sızmasıdır. Bu, programcının algoritmadaki kalıpları, yürütme modelindeki kalıplarla eşleştirmek zorunda kalmasına neden olur (donanımın soyutlamaya sızması nedeniyle). Sonuç olarak, hiçbir paralel programlama dili tüm hesaplama problemlerine iyi eşleme yapamaz. Bu nedenle, bir temel sıralı dil kullanmak ve bir programlama modeli aracılığıyla paralel yürütme modellerine (UPA) çağrıları eklemek daha uygundur. Bu tür paralel programlama modelleri, (paylaşılan bellek), , kodda görünen yer kavramları vb. gibi donanımı yansıtan soyutlamalara göre sınıflandırılabilir. Bunlar, yalnızca paralel diller ve programlama modelleri için geçerli olan programlama paradigmasının lezzetleri olarak kabul edilebilir.
Paradigmalar
- (Bildirimsel (declarative)) (kontrast: Zorunlu (imperative))
- (kontrast: )
- (kontrast: )
- Mantık (logic)
- (Otomatik (automatic))
- (Şablon (template))
- Yapısal (structured) (kontrast: (Yapısal olmayan (non-structured)))
- göre:
- (Cephe yönelimli (aspect-oriented))
- (Prototip tabanlı (prototype-based))
- (Yapısal olmayan (non-structured)) (kontrast: Yapısal (structured))
- (Dizi (array)) (kontrast: )
- Tekrarlamalı (iterative)
Kaynakça
- ^ Nørmark, Kurt. Overview of the four main programming paradigms 24 Ocak 2018 tarihinde Wayback Machine sitesinde .. Aalborg University, 9 May 2011. Retrieved 22 September 2012.
- ^ . cgi.csc.liv.ac.uk. 11 Ekim 1999. 28 Ocak 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Şubat 2014.
- ^ (PDF). University of Georgia. 23 Ağustos 2010. 7 Mart 2012 tarihinde kaynağından (PDF) arşivlendi. Erişim tarihi: 20 Kasım 2013.
- ^ (PDF). info.ucl.ac.be. 12 Mayıs 2009. 10 Temmuz 2009 tarihinde kaynağından (PDF) arşivlendi. Erişim tarihi: 27 Ocak 2014.
- ^ Concepts, Techniques, and Models of Computer Programming. MIT Press. 2004. ISBN . 14 Nisan 2021 tarihinde kaynağından . Erişim tarihi: 2 Ekim 2021.
- ^ Frank Rubin (March 1987). (PDF). Communications of the ACM. 30 (3): 195-196. doi:10.1145/214748.315722. 20 Mart 2009 tarihinde kaynağından (PDF) arşivlendi.
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar