Monday, January 30, 2012

Programlama dilleri: Neden bu kadar çoklar?

Neden birden fazla programlama dili vardır?

Bilgisayarın anladığı dil makine dilidir, bu dilde program yazmak oldukça zordur ve hatalara neden olabilir.

Makine dili ikilik sayı sisteminden oluşur (1 ve 0).

Makine dilinde bir "Merhaba dünya!" programı
10111011 00010001 00000001 10111001 00001010 00000000 10110100 00001110 10001010 00000111 01000011 11001101 00010000 11100010 11111001 11001101 00100000 01001101 01100101 01110010 01101000 01100001 01100010 01100001 00100000 01100100 11111100 01101110 01111001 01100001 00100001

Yukarıdaki makine dili ile yazılmış programı anlamak için biraz uğraşmak gerekiyor, hata payı da yüksek. Mühendisler daha kolay program yazmak için programlama dillerini oluşturmuşlardır, her programlama dili farklı bir amaca hizmet eder. Örneğin Fortran matematiksel işlemler içindir, PHP Genel Ağ tabanlı uygulamalar içindir. C'de bir işletim sistemi yazılabilir ama bunu Fortran'da yapmak boşa uğraştır.

Programlama dilleri anlaşılabilirliğe göre düşük seviyeli, orta seviyeli, yüksek seviyeli, çok yüksek seviyeli şeklinde sınıflandırılmaktadır. Bir dilin "yüksek seviyeli" olması anlaşılablirliğinin o kadar yüksek olduğunu belirtir.

Düşük seviyeli diller

  • Makine dili
    Az önce açıkladım.
  • Assembly
    Makine dilinin yazımını kolaylaştırmak için geliştirilmiştir. Programın çalışma hızı açısından iyidir ancak uzun kodlar ile yazılan programlar için elverişsizdir. Mühendisler Assembly'i makinenin anlayabileceği dil olan makine diline çeviren programlar yazmışlardır, bu programlar genel olarak assembler olarak bilinir.
    Assembly'de "Merhaba dünya!" programı
    mov ax,cs
    mov ds,ax
    mov ah,9
    mov dx, offset Merhaba
    int 21h
    xor ax,ax
    int 21h

    Merhaba:
        db "Merhaba dünya!",13,10,"$"

Orta seviyeli diller

Oldukça esnek programlama olanağı sunarlar, Yüksek seviyeli dillere göre yazımı daha zordur ancak en çok kullanılanlar da bunlardır, en rahat programlar bu dillerde yazılır. C, C++, C#, Java gibi dillerdir.

C'de "Merhaba dünya!" programı
#include <stdio.h>
main()
{
    printf("Merhaba dünya!");
}


Java'da "Merhaba dünya!" programı
public class Merhaba
{
    public static void main(String[] args)
   {
      System.out.println("Merhaba dünya!");
   }
}

Yüksek seviyeli diller

Bu dillerle bir program daha kısa sürede yazılabilir. BASIC, Pascal gibi dillerdir.

BASIC'de "Merhaba dünya!" programı
CLS
PRINT "Merhaba dünya!"
END

Çok yüksek seviyeli diller

Programda egemenliğin yazılımcının elinde olmasını kısıtlar, bunlar ile yazılabilecek programlar kısıtlıdır. Öğrenmesi kolaydır. Visual Basic örnek olarak verilebilir.
Visual Basic'de "Merhaba dünya!" programı

Private Sub Form_Load()
Print "Hello World"
End Sub



Assembly'in çalışma hızı kendisinden daha yüksek seviyeli dillere göre en fazla 20 kattır ancak Assembly'de yazılan bir programın bitirilme süresi kendisinden daha yüksek seviyeli dillere göre 100 kattır.


Yapay zekaya yönelik diller

Aslında hemen hemen tüm dillerde yapay zeka uygulamaları gerçekleştirilebilir ancak bu iş için özelleşmiş diller vardır. BOO, CLIPS, Constraint, Declarative, Functional, Gödel, LISP, Logic-based, Mercury,Miranda, Oz, Pop-11, Prolog, R, SAIL, Scheme, Smalltalk, Squeak.

No comments:

Post a Comment