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ış
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)
- Yapısal (structured) (kontrast: Yapısal olmayan (non-structured))
- 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
Programlama paradigmalari programlama dillerini ozelliklerine gore siniflandirmanin bir yoludur Diller birden fazla paradigma icinde siniflandirilabilir Bazi paradigmalar temel olarak izin verilmesi veya islem sirasinin yurutme modeli tarafindan tanimlanip tanimlanmadigi gibi dilin icin cikarimlarla ilgilidir Diger paradigmalar bir kodu kod tarafindan degistirilen durumla birlikte birimler halinde gruplamak gibi esas olarak kodun duzenlenme sekliyle ilgilidir Yine de digerleri esas olarak sozdizimi ve dilbilgisi stiliyle ilgilenir Yaygin programlama paradigmalari sunlari icerir Programcinin makineye durumunu nasil degistirecegini bildirdigi emirli Emirleri prosedurler halinde gruplandiran yordamsal Komutlari uzerinde calistiklari durumun bir parcasi ile gruplandiran nesne yonelimli Programcinin istenen sonucun ozelliklerini nadiren bildirdigi ancak nasil hesaplanacagini aciklamadigi bildirimsel Istenen hesaplama sonucunun bir dizi fonksiyon cagiriminin sonucu olarak goruldugu fonksiyonel programlama Bir gercekler ve kurallar sistemi hakkindaki bir sorunun cevabi olarak tanimlanan sonucun bildirildigi mantiksal programlama Sonucun bir optimizasyon probleminin cozumu olarak bildirildigi matematiksel programlama Istenen sonucun veri akislari ve degisikligin yayilmasi ile bildirildigi Programin kendisine atifta bulunmasini saglayan gibi teknikler de bir programlama paradigmasi olarak dusunulebilir Ancak bu ana paradigmalarla uyumludur ve bu nedenle kendi basina gercek bir paradigma degildir Ornegin emirli paradigmaya giren dillerin iki ana ozelligi vardir islemlerin gerceklestigi sirayi bu sirayi acikca kontrol eden yapilarla belirtirler ve herhangi bir zamanda bir durumun degistirilebilecegi yan etkilere izin verirler Bir kod birimi icinde zamanin farkli bir noktasinda farkli bir kod birimi okunabilir Kod birimleri arasindaki iletisim acik degildir Bu arada nesne yonelimli programlamada kod yalnizca nesnenin parcasi olan kod tarafindan degistirilen bir durumu iceren nesneler halinde duzenlenir Nesne yonelimli dillerin cogu ayni zamanda emirli dillerdir Buna karsilik bildirimsel paradigmaya uyan diller islemlerin yurutulecegi sirayi belirtmez Bunun yerine sistemde her birinin yurutulmesine izin verilen kosullarla birlikte bir dizi kullanilabilir islem saglarlar Dilin yurutme modelinin uygulanmasi hangi islemlerin yurutulmekte serbest oldugunu izler ve sirayi bagimsiz olarak secer Daha fazlasi icin Genel bakisgore cesitli programlama paradigmalarina genel bakis 5 Yazilim muhendisliginin bir surec olarak farkli metodolojilerle tanimlanmasi gibi programlama dilleri de hesaplama modelleri olarak farkli paradigmalarla tanimlanir Bazi diller tek bir paradigmayi desteklemek uzere tasarlanmistir Smalltalk nesne yonelimli programlamayi destekler Haskell islevsel programlamayi destekler diger programlama dilleri ise birden cok paradigmayi destekler Object Pascal C Java JavaScript C Scala Visual Basic Common Lisp gibi Sema Perl PHP Python Ruby ve F Ornegin C Object Pascal veya PHP ile yazilmis programlar tamamen prosedurel ya da tamamen nesne yonelimli olabilir Ya da her ikisinin veya diger paradigmalarin ogelerini icerebilir Yazilim tasarimcilari ve programcilar bu paradigma ogelerinin nasil kullanilacagina karar verirler Nesne yonelimli programlamada programlar bir dizi etkilesimli nesne olarak ele alinir Islevsel programlamada programlar durumsuz islev degerlendirmeleri dizisi olarak ele alinir Cok islemcili bilgisayarlari veya sistemleri programlarken programlamada programlar mantiksal olarak paylasilan veri yapilari uzerinde hareket eden eszamanli islemler kumesi olarak ele alinir Pek cok programlama paradigmasi tesvik ettikleri teknikler kadar yasakladiklari tekniklerle de bilinir Ornegin islevsel programlama kullanimina izin vermezken yapilandirilmis programlama goto git ifadesinin kullanimina izin vermez Kismen bu nedenle yeni paradigmalar genellikle daha onceki tarzlara aliskin olanlar tarafindan doktriner veya asiri kati olarak kabul edilir Yine de belirli tekniklerden kacinmak program davranisini anlamayi ve program dogrulugu ile ilgili teoremleri kanitlamayi kolaylastirabilir Programlama paradigmalari yalnizca bir UPA kullanarak bir cagrilmasina izin veren de karsilastirilabilir Programlama modelleri yurutme modelinin ozelliklerine gore paradigmalar olarak da siniflandirilabilir Paralel hesaplama icin bir dil yerine bir programlama modeli kullanmak yaygindir Bunun nedeni paralel donanimin ayrintilarinin donanimi programlamak icin kullanilan soyutlamalara sizmasidir Bu programcinin algoritmadaki kaliplari yurutme modelindeki kaliplarla eslestirmek zorunda kalmasina neden olur donanimin soyutlamaya sizmasi nedeniyle Sonuc olarak hicbir paralel programlama dili tum hesaplama problemlerine iyi esleme yapamaz Bu nedenle bir temel sirali dil kullanmak ve bir programlama modeli araciligiyla paralel yurutme modellerine UPA cagrilari eklemek daha uygundur Bu tur paralel programlama modelleri paylasilan bellek kodda gorunen yer kavramlari vb gibi donanimi yansitan soyutlamalara gore siniflandirilabilir Bunlar yalnizca paralel diller ve programlama modelleri icin gecerli olan programlama paradigmasinin lezzetleri olarak kabul edilebilir ParadigmalarBildirimsel declarative kontrast Zorunlu imperative Fonksiyonel functional Hucre yonelimli cell oriented dd dd kontrast kontrast Mantik logic Otomatik automatic Sablon template dd dd Olaya dayali event driven Servis odakliParalel hesaplama parallel computing Yapisal structured kontrast Yapisal olmayan non structured Moduler modular Nesne yonelimli object oriented gore Cephe yonelimli aspect oriented Prototip tabanli prototype based dd dd Yapisal olmayan non structured kontrast Yapisal structured Dizi array kontrast Tekrarlamali iterative Zorunlu imperative Yordamsal procedural Kaynakca Normark 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 kaynagindan arsivlendi Erisim tarihi 20 Subat 2014 PDF University of Georgia 23 Agustos 2010 7 Mart 2012 tarihinde kaynagindan PDF arsivlendi Erisim tarihi 20 Kasim 2013 PDF info ucl ac be 12 Mayis 2009 10 Temmuz 2009 tarihinde kaynagindan PDF arsivlendi Erisim tarihi 27 Ocak 2014 Concepts Techniques and Models of Computer Programming MIT Press 2004 ISBN 978 0 262 22069 9 14 Nisan 2021 tarihinde kaynagindan Erisim 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 kaynagindan PDF arsivlendi