Programlama dilleri bazen karmaşık gelebilir. Bunun en önemli nedeni pek çok programlama dilinin sayıca oldukça fazla olmasıdır. Bilgisayar bilimcileri günümüzde programlama dillerini çeşitli paradigmalara göre tasnif etme yoluna başvurur. Buna göre ortaya çıkan yaklaşımlar gerek yazılım mühendisliği bölümlerinde okuyan öğrencilerin gerekse de yazılım hakkında bilgi sahibi olmak isteyen kullanıcıların daha anlaşılabilir bir yöntem edinmelerine yardımcı olur.
Zorunlu programlama dilleri nedir?
Zorunlu dillerdeki programlama modeli, her bir ifadenin bir bellek deposu üzerinde bir etkisi olduğu bir anda ifade paradigmasına dayanır. Zorunlu programlama, bir kişinin bellek deposundaki hücrelerin içeriğini değiştirmesine izin veren atama ifadesinin etrafında toplanmıştır.
generic
type Stack_Elt is private;
package Stack is
type S is private;
procedure lnit (A_Stk : in out S);
procedure Push (value : in Stack_Elt; A_Stk : in out S);
procedure Pop (A_Stk; in out S);
function Top (A_Stk : in S) return Stack_Elt;
function Empty (A_stk : in S) return BOOLEAN;
private
type Stk;
type S is access Stk;
end Stack;
Daha basit bir ifadeyle zorunlu programa dilleri bir kodun nasıl yazılacağını söyler. Bildirimli programlama dilleri ise bir kodun ne yapması gerektiğini söyler.
Zorunlu programlama dillerinin uygulama modeli, operasyon işlevlerini taklit etmeleridir. Zorunlu dillerin doğası gereği, işlemleri her zaman işlev olarak gerçekleştirmezler. Çoğu zaman, bir tür örneğinin durumunu değiştiren işlemler, yeni bir tür örneği oluşturup döndürmez, ancak istemciye ait orijinal örneği değiştirmek için yan etkileri kullanır.[1]
Dezavantajları
Zorunlu dillerde programların yazılması, hatalarının ayıklanması ve bakımı bildirimsel dillerde yazılanlara kıyasla genellikle daha zordur. Zorunlu programlama, bir çözüm prosedürünün “nasıl” belirlendiğine daha fazla vurgu yapar. Zorunlu dillerde yazılan programlar genellikle kod boyutu açısından daha büyüktür ve bildirimsel dillerde yazılan programlara kıyasla daha hızlı çalışır. Zorunlu dillerin sağlam bir matematiksel temeli yoktur.[2]
Örnekleri
1973’te Massachusetts Institute of Technology (MIT) bünyesinde çalışan Amerikalı bilgisayar bilimci Barbara Liskov ve öğrencileri soyut veri türlerini (abstract data types) birleştirmenin bir yolunu buldu ve CLU programlama dilini oluşturdular.[3] Günümüzde ise Modula-2 ve Ada programlama dilleri dil tasarımı aşamasında soyut veri türlerine daha fazla önem vermiştir.
Zorunlu programlama dillerine Pascal, C ve Java örnek olarak gösterilmektedir.[4]
Dipnotlar
[1] (Morris & Tamm, 1993, s. 3)
[2] “CS3671: Programming Languages: Lecture 1.” https://personal.utdallas.edu/~gupta/courses/apl/lec1.html. Erişim tarihi: 5 Ağu. 2022.
[3] Kapsamlı bir kullanım bulamamakla birlikte, CLU, günümüzde yaygın olarak kullanılan birçok özelliği tanıttı ve nesne yönelimli programlama dillerinin (OOP) geliştirilmesinde bir adım olarak kabul edildi.
[4] “CS3671: Programming Languages: Lecture 1.” https://personal.utdallas.edu/~gupta/courses/apl/lec1.html. Erişim tarihi: 5 Ağu. 2022.

