İçeriğe atla

Zorunlu programlama

Bilgisayar biliminde zorunlu programlama ya da emperatif programlama, programın durumunu değiştiren ifadeler kullanan yazılımın programlama paradigması'dır. Doğal dillerdeki zorunlu kipin komutları ifade etmesi gibi, zorunlu program da bilgisayar'ın gerçekleştireceği komutlardan oluşur. Zorunlu programlama, beklenen sonuçlarının üst düzey tanımlarından ziyade programın nasıl adım adım çalıştığını açıklamaya odaklanır.[1]

Terim genellikle, programın sonuca "nasıl" ulaşacağının tüm ayrıntılarını belirtmeden programın "neyi" başarması gerektiğine odaklanan bildirimsel programlama'nın aksine kullanılır.[2]

Zorunlu programlamada, programcı, bilgisayarın belirli bir görevi nasıl gerçekleştirmesi gerektiğini adım adım tanımlar. Bu tür programlama, düşük seviyeli donanım etkileşimleri ve bellek yönetimi gerektiren durumlarda yaygın olarak kullanılır.[3]

Yordamsal Programlama

Yordamsal programlama, programın bir veya daha fazla yordamdan (alt programlar veya işlevler olarak da adlandırılır) oluşturulduğu bir zorunlu programlama türüdür. Terimler genellikle eşanlamlı olarak kullanılır ancak yordamların kullanımının, zorunlu programların nasıl göründüğü ve nasıl yapılandırıldıkları üzerinde çarpıcı etkisi vardır. Durum değişikliklerinin yordamlara yerelleştirildiği veya açık argümanlar ve yordamlardan geri dönüşlerle sınırlandırıldığı ağır yordamsal programlama yapısal yapılandırılmış programlama biçimidir. 1960'lardan bu yana, yapısal programlama ve genel olarak modüler programlama, zorunlu programların sürdürülebilirliği ve genel kalitesini iyileştirme teknikleri olarak tanıtıldı. Nesne yönelimli programlama arkasındaki kavramlar bu yaklaşımı büyütmeye çalışır.[4]

Tarihçe

Zorunlu programlama, bilgisayar biliminin başlangıcına kadar uzanır ve Assembly dili gibi düşük seviyeli programlama dillerinde kullanılmıştır. Zamanla, Fortran, C, ve Pascal gibi yüksek seviyeli dillerde de benimsenmiştir.[5]

Uygulama Alanları

Zorunlu programlama, özellikle performansın kritik olduğu durumlarda ve sistem programlamada kullanılır. İşletim sistemleri, gömülü sistemler ve gerçek zamanlı uygulamalar bu paradigmayı yaygın olarak kullanır.[6]

Avantajları ve dezavantajları

Zorunlu programlama, işlemlerin sıralı ve kontrol edilebilir olmasını sağlar, bu da hataların izlenmesini ve yönetilmesini kolaylaştırır. Ancak, bu yaklaşım, karmaşık ve büyük yazılım projelerinde bakım ve sürdürülebilirlik sorunlarına yol açabilir.[7]

Kaynakça

  1. ^ Harold Abelson, Gerald Jay Sussman (1996). Structure and Interpretation of Computer Programs. MIT Press. ISBN 978-0262510875. 
  2. ^ Peter Van Roy, Seif Haridi (2004). Programming Paradigms. MIT Press. ISBN 978-0262220699. 
  3. ^ Terrence W. Pratt, Marvin V. Zelkowitz (2001). Programming Languages: Design and Implementation. Prentice Hall. ISBN 978-0130276784 |isbn= değerini kontrol edin: checksum (yardım). 
  4. ^ Michael L. Scott (2009). Programming Language Pragmatics. Morgan Kaufmann. ISBN 978-0123745149. 
  5. ^ Jean E. Sammet (1969). Programming Languages: History and Fundamentals. Prentice Hall. ISBN 978-0137299885 |isbn= değerini kontrol edin: checksum (yardım). 
  6. ^ Abraham Silberschatz, Peter Baer Galvin, Greg Gagne (2008). Operating System Concepts. John Wiley & Sons. ISBN 978-0470128725. 
  7. ^ Andrew Hunt, David Thomas (1999). The Pragmatic Programmer: Your Journey to Mastery. Addison-Wesley Professional. ISBN 978-0201616224. 

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Programlama dili</span>

Programlama dili, yazılımcının bir algoritmayı ifade etmek amacıyla, bir bilgisayara ne yapmasını istediğini anlatmasının tektipleştirilmiş yoludur. Programlama dilleri, yazılımcının bilgisayara hangi veri üzerinde işlem yapacağını, verinin nasıl depolanıp iletileceğini, hangi koşullarda hangi işlemlerin yapılacağını tam olarak anlatmasını sağlar.

<span class="mw-page-title-main">C (programlama dili)</span> programlama dili

C, yapısal bir programlama dilidir. Bell Laboratuvarları'nda, Ken Thompson ve Dennis Ritchie tarafından UNIX işletim sistemini geliştirebilmek amacıyla B dilinden türetilmiştir. Geliştirilme tarihi 1972 olmasına rağmen yaygınlaşması Brian Kernighan ve Dennis M. Ritchie tarafından yayımlanan "C Programlama Dili" kitabından sonra hızlanmıştır. Günümüzde neredeyse tüm işletim sistemlerinin yapımında %95'lere varan oranda kullanılmış, hâlen daha sistem, sürücü yazılımı, işletim sistemi modülleri ve hız gereken her yerde kullanılan oldukça yaygın ve sınırları belirsiz oldukça keskin bir dildir. Keskinliği, programcıya sonsuz özgürlüğün yanında çok büyük hatalar yapabilme olanağı sağlamasıdır. Programlamanın gelişim süreciyle beraber programlamanın karmaşıklaşması, gereksinimlerin artması ile uygulama programlarında nesne yönelimliliğin ortaya çıkmasından sonra C programcıları büyük ölçüde nesne yönelimliliği destekleyen C++ diline geçmişlerdir.

<span class="mw-page-title-main">Pascal (programlama dili)</span> yüksek seviyeli programlama dili

Pascal bilgisayar programlama dili pek çok öğrenciye bilgisayar programlamayı öğreten ve çeşitli versiyonları bugün hâlâ yaygın olarak kullanılmaya devam eden en önemli programlama dillerinden biridir. İlk Macintosh işletim sisteminin çoğu ve TeX Pascal ile yazılmıştır.

Fortran, özellikle sayısal hesaplama ve bilimsel hesaplama için uygun olan genel amaçlı, yordamsal, zorunlu programlama dilidir.

<span class="mw-page-title-main">Yazılım</span> bilgisayarın somut olmayan çalıştırılabilir bileşeni

Yazılım, değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik aygıtların birbirleriyle haberleşebilmesini ve uyumunu sağlayarak görevlerini ya da kullanılabilirliklerini geliştirmeye yarayan makine komutlarıdır.

Yapısal programlama, programlama dilleri kullanılarak yazılan, mantıksal bütünlük gösteren bloklara (bölümlere) bölünebilirler. Bu yolla uzun ve karmaşık programların, bloklara ayırarak daha kolay biçimde yazılabilmesi mümkün olmaktadır.

<span class="mw-page-title-main">Ada (programlama dili)</span> programlama dili

Ada, yapısal, statik tipli, zorunlu, geniş spektrumlu ve nesne yönelimli bir üst düzey bilgisayar programlama dilidir. Pascal ve diğer dillerin genişletilmiş halidir. Gömülü design-by-contract (DbC), güçlü yazımı, açık eşzamanlı, senkronize mesaj geçişi, korunmuş objeli ve belirsiz bir dildir. Ada kod güvenliğini ve sürdürebilirliğini derleyicide hataları bularak geliştirdi.

<span class="mw-page-title-main">Yordamsal programlama</span>

Yordamsal programlama, yordamların çağrılması mantığına dayanan bir yöntemdir. Fonksiyon, altyordam, altprogram, metot gibi de adlandırılan yordamlar içlerinde hesaplama adımları barındıran program parçacıklarıdır. Tanımlanmış yordamlar program sırasında herhangi bir zamanda çağrılabilirler. Yordamlar diğer yordamların içindende çağrılabilecekleri gibi kendi kendilerini de çağırabilirler.

<span class="mw-page-title-main">Makine dili</span>

Makine dili, mikroişlemci ya da mikrodenetleyici gibi komut işleme yeteneğine sahip entegrelerin işleyebilecekleri, yapısına göre değişebilen ama genellikle her biri 8 adet 0-1'den (bit) ibaret komutlardan oluşan dile verilen addır. Her bir komutun mnemonic olarak adlandırılan bir tanımı ve işlem kodu olarak adlandırılan bir sayı karşılığı vardır. Mnemonic'ler, op kodun ne işe yaradığını hatırda tutmaya yarar. Örneğin Z-80 mikroişlemcisinde bir alt yordamı çağırmak için kullanılan komutun mnemonic'i Call NNdir ve program yazarken Call NN mnemonic'inin işlem kodu olan "205" sayısı programa konur. Yani bir makine dili program 205 14 45 195 22 15 gibi ardışık sayılardan, daha doğrusu bu sayıların binary karşılığı olan 0 ve 1'lerden oluşur.

<span class="mw-page-title-main">Assembly</span> uygulanan işlemlerle programlama dilinin birbirine çok yakın olduğu düşük seviye programlama dilleri

Assembly dili, bir işlemcinin komut kümesi üzerine tanımlanmış alt seviye bir dildir. Assembly dili kolay hatırlanabilir semboller tanımlar ve böylece işlemcinin makina koduna karşılık gelen sayı dizilerinin bilinmesine gerek kalmaz. Assembly dili, platformdan bağımsız yüksek seviyeli programlama dillerinin aksine, işlemci mimarisine bağımlıdır. Tipik uygulamaları; cihaz sürücüleri, alt seviyeli dahili (embedded) ve gerçek zamanlı sistemlerdir. Bır assembly programı assembler kullanılarak makine koduna çevrilir.

<span class="mw-page-title-main">Programlama</span> bilgisayar probleminin orijinal formülasyonundan çalıştırılabilir bilgisayar programlarına yönlendiren süreç

Programlama ya da diğer adı ile yazılımlama, bilgisayarın donanıma nasıl davranacağını anlatan, bilgisayara yön veren komutlar, kelimeler, aritmetik işlemlerdir. Diğer bir tanımla programlama, bilgisayar programlarının yazılması, test edilmesi ve bakımının yapılması sürecine verilen isimdir.

<span class="mw-page-title-main">Fonksiyonel programlama</span> programlama pradigması

Bilgisayar biliminde fonksiyonel programlama programların fonksiyonları uygulayarak ve oluşturarak yapıldığı bir programlama paradigmasıdır.

Mikroişlemcilerde kural dışı durumlar, programların çalıştırılması esnasında verilen komutlar neticesinde oluşan hatalardır. Bu hatalar nedeniyle program istenilen şekilde çalışmaz. Hatta işlemcinin kilitlenmesine bile sebep olabilir. Bu tür durumlar normal bir işleyiş olmadığından kural dışı durum oluşturur.

Uzak yordam çağrısı (ya da uzak prosedür çağrısı; İngilizce: Remote Procedure Call , bir diğer adres uzayı üzerinde programcı açıkça bu uzaktan etkileşim detayları kodlama olmadan çalıştırmak için bir alt yordam veya prosedürü sağlayan bilgisayar programına izin veren süreçler arası iletişim teknolojisidir. Sunucu üzerindeki servisleri kontrol ettiğimizde karşımıza çıkan RPC, arka plânda birçok şeyi gerçekleştiren bir servistir. RPC, temelde istemci ve sunucu arasında yapılan işlemlerin iletişimi için tasarlandı. Bir işlemin gerçekleşmesi için bir gönderici ve bir de istemci vardır.. Yani programcı, alt prosedür ister çalışan programın yerelinde ister uzağında olsun, temelde aynı kodu yazar. Bu bir tür istemci-sunucu etkileşimidir ve tipik olarak bir istek-yanıt mesaj geçirme sistemi aracılığıyla uygulanır. Nesne yönelimli programlama modelinde, RPC'ler uzaktan yöntem çağırma ile temsil edilir. RPC modeli bir konum şeffaflığı seviyesini ifade eder, yani çağrı prosedürleri yerel ya da uzak olsun büyük ölçüde aynıdır, ancak genellikle aynı değildirler, bu nedenle yerel çağrılar uzak çağrılardan ayırt edilebilir. Uzak çağrılar genellikle yerel çağrılardan çok daha yavaş ve daha az güvenilirdir, bu nedenle bunları ayırt etmek önemlidir.

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.

Bilgisayar programı, bilgisayara belirli bir işlemi ya da işlemleri gerçekleştirebilmesi için verilen komut ya da komutlar bütünüdür. Bilgisayar programı genellikle bilgisayar programcısı tarafından bir programlama dili kullanılarak yazılır.

Programlama bilgisayarda, bir altyordam bir birim olarak paketlenmiş belirli bir görevi yerine getiren bir dizi program talimatıdır. Bu birim daha sonra söz konusu görevin yapılması gereken her yerde programlarda kullanılabilir.

Kuantum programlama, bir kuantum bilgisayarda çalışabilen, kuantum programları olarak adlandırılan talimat dizilerini birleştirme işlemidir. Kuantum programlama dilleri, yüksek seviyeli yapılar kullanarak kuantum algoritmalarının ifade edilmesine yardımcı olur.

Bilgisayar biliminde, bildirimsel programlama bir programlama paradigmasıdır. —bilgisayar programlarının yapısını ve öğelerini oluşturma stili— bir hesaplamanın mantığını kontrol akışını tanımlamadan ifade eder.

Tanımsız durum, programlamada bir standartın bir durumu tanımlayamacağı durumlara denmektedir.