Programlama Dilleri, Sınıfları ve Kullanım Alanları

Evet, her zaman olduğu gibi işe başlamadan önce, şu sıkıcı kısımları fazla da sıkmadan aktarıp, ardından eğitim video ve örneklerimize geçelim. Bu yazıda, mümkün olduğunca kısaca, programlama dillerinin tarihi, sınıflarına ve uygulama alanlarına göre ayrımından bahsedeceğiz.

Bunları bilmek zorunda mısınız? Tabii ki, hayır. Ama bu işi ileride profesyonel olarak yapmayı planlıyorsanız, az çok bu sıkıcı kısımlardan da haberdar olmak sizin yararınıza olur.

Öncelikle, günümüzde binlerce olan programlama dillerini 3 ana kategoriye ayırıyoruz:

  1. Makine dilleri
  2. Assembly dilleri
  3. Yüksek seviyeli diller
Makine dilleri: Her bilgisayarın, işlemcisinin anlayabileceği kendi dili vardır. Misal: Pentium işlemcinin makine dili ile Sparc işlemcinin makine dili farklıdır.
İkilik tabanda yazılmış, makine dilinde iki sayının toplanması aşağıdaki gibidir:
01000110011101000111101010000010010101101000010
Ya da başka bir örnek daha verelim:

Makine dili:
169 1 160 0 153 0 128 153 0 129 153 130 153 0 131 200 208 241 96
BASIC dili:
 5 FOR I=1 TO 1000: PRINT "A";: NEXT I

Yukarıdaki iki örnekte de amaç, ekrana 1000 kere "A" yazmaktır. Ek olarak, makine dilinde yazılmış program RAM'de 28 bytle'lık yer kaplarken, BASIC'de yazılmış olan program 45 bytle'lık yer kaplamakta ve makine diline göre 30 kat daha yavaştır.

Assemly dilleri:  Makine dilini anlamak zorlaştığında, işi kolaylaştırmak için makine dillinde yazılmış kodların biraz daha anlaşılabilir hale çevrilmiştir. Ama hala çok karışıktır.  Örnek olarak şunu verelim:  Fibonacci serisinde n. fibonacci sayısını bulan programın hem makine dilinde yazılışı hem de Assembly dilinde yazılışı:

Makine dilinde:
8B542408 83FA0077 06B80000 0000C383
FA027706 B8010000 00C353BB 01000000
B9010000 008D0419 83FA0376 078BD98B 


Assembly dilinde:

fib:
    mov edx, [esp+8]
    cmp edx, 0
    ja @f
    mov eax, 0
    ret
    
    @@:
    cmp edx, 2
    ja @f
    mov eax, 1
    ret
    
    @@:
    push ebx
    mov ebx, 1
    mov ecx, 1
    
    @@:
        lea eax, [ebx+ecx]
        cmp edx, 3
        jbe @f
        mov ebx, ecx
        mov ecx, eax
        dec edx
    jmp @b
    
    @@:
    pop ebx
    ret


Görüldüğü gibi, Assembly dilinin de Makine dilinden pek farkı yok gibi. İkisini de anlamak çok güç.

Yüksek seviyeli diller: Yukarıda makine dilinde iki sayının toplamını göstermiştim. 0 ve 1 lerden oluşan... Yüksek seviyeli dillerde bu gibi işlem çok daha kısa,basit ve anlaşılabilir şekilde yapılabiliyor. Mesela, a=2+3; yazdığımızda 2 ile 3 toplanıp, değeri a'ya atanıyor. Görüldüğü gibi programlama dilleri zamanla, anlaşılması güç ve yazması zaman alan kodlardan sıyrılıp, bir çok işlemi tek kodla yapabilecek ve insanların anlayabileceği bir dile dönüşüyor. Bu yüksek seviyeli dillerde yazılan programlar, derleyiciler aracılığıyla makine diline çevrilip, çalıştırılıyor. Örnek; Pascal, Fortran, Basic, Java, C, C++, Cobol, Lisp ve Prolog... gibi diller.


Ama artık programlama dilleri daha fazla kategoride sınıflandırılıyor. Yukarıda biz, genel olarak 3 kategoride sınıflandırdık. Ama programlama dillerini 5 ayrı kategoride de aşağıdaki gibi sınıflandırabiliriz:

  1. Çok yüksek seviyeli diller : VisualBasic, VB.NET, Acces , Foxpro ...
  2. Yüksek seviyeli diller: Pascal ,Basic ,Fortran...
  3. Orta seviyeli diller: C ,C++, C# , Java ,ADA...
  4. Düşük seviyeli diller: Assembly...
  5. Makina dilleri: Bilgisayarın çalışma dilleri 1 ve 0'lardan oluşur...
Seviyesi arttıkça, makine dilinden uzaklaşıp insan diline yaklaşırlar. Ayrıca, çoklu işlemleri tek kod parçacığıyla yaparak, kullanım kolaylığı ve zaman kazancı sağlarlar.

Programlama dilleri ayrıca, kullanım alanlarına göre de bazı kategorilere ayrılırlar. Bunları kısaca ve basitçe şöyle ayıralım:
  1. Bilim ve Mühendislikte: Pascal ,C ,C++ ,Java ,Fortran...
  2. Veritabanı Programcılığında: Dbase ,Acces ,Foxpro ,Sql...
  3. Yapay Zeka Kullanımında: Prolog ,Lisp...
  4. Sistem Programcılığında: C ,C++ ,Java ve sembolik makina dilleri...

Ayrıca ilgilenenler için, programlama dillerinin hangi tarihlerde kimler tarafından yazıldığını gösteren zaman çizelgesine gitmek için buraya bakabilir, programlama dilleri soyağacına buradan ve buradan ulaşabilirsiniz.


Bu arada, bu yazıyı yazarken şuna karar verdik: Bir sonraki yazımızda programlama dillerindeki trendlere dair bazı bilgiler paylaşalım. Hangi programlama dili hangi sebeplerden dolayı tercih ediliyor, hangi sebeplerden ötürü popüler, hangi programlama dillerini bilenlerin iş bulma olasılıkları daha yüksek...vs gibi konularda, merakları ve kafalardaki soru işaretlerini bir nebze olsun giderebilmek için sağlam bir araştırma yaptıktan sonra yazımıza başlayacağız. Böylece sizler de, bu bilgilere ve üstüne kendi yapacağınız araştırmalara göre kendinizi bu dillere yönlendirebilirsiniz. Ama şu kadarını şöyleyelim; yazacağımız yazı sunacağı veriler açısından Türkiye'de bir ilk olabilir- henüz nete gözatmadığımız için, ol-abilir diyerek, konuyu kapatıyoruz:)
Araştırmamızı yapıp, yazıyı yazmaya başladığımızda olup olmadığını hep birlikte göreceğiz:)

Bir sonraki yazımızda görüşmek üzere...

Yazıyı yazarken başvurduğumuz kaynaklardan bazıları:


  1. Kendi üniversite kaynaklarımız*
  2. www.google.com( baktığımız bazı sitelerin adreslerini almayı unuttuk:) )
  3. http://web.firat.edu.tr/iserhatlioglu/BOLUM1.htmhttp://eng.harran.edu.tr/~nbesli/RBT/helptr.htm
  4. http://en.wikipedia.org/wiki/Generational_list_of_programming_languages
  5. http://en.wikipedia.org/wiki/Timeline_of_programming_languageshttp://martinrinehart.com/pages/genealogy-programming-languages.html
  6. http://www.godoro.com/Divisions/Ehil/Mecmua/Magazines/Articles/txt/html/article_ProgrammingAndLanguage.html
  7. http://www.robotiksistem.com/program_nedir_programlama_dilleri.html


Öneri, eleştiri veya özel sorularınızı İletişim sayfamızdaki İletişim Formu aracılığıyla bize iletebilirsiniz.

3 yorum:

Bu yayın hakkında yorumlarınızı belirterek, gidişatımızın şekillendirilmesine katkıda bulunabilirsiniz.
Teşekkürler