Translate

İzleyiciler

19 Mayıs 2011 Perşembe

Makine Dili Nedir ? ( Programlama Dilleri )

Makine Dili

Her bilgisayarın anlayacağı kendi makine dili vardır. Örneğin, Pentium işlemcinin makine dili, Sparc işlemciden farklıdır. Makine dilindeki bir komut, bit (0 ya da 1) gruplarından oluşur. Örneğin, makine dilinin bir komutu iki değerin toplanması ya da bir değerin ana belleğin bir bölgesinde saklanması gibi basit işlemleri içerir. İnsanların makine dilinde program yazması hemen hemen olanaksızdır. Örneğin, makine dilinde iki sayının toplanması,
01000110011101000111101010000010010101101000010
biçiminde ifade edilir.

Makine dili mikroişlemci ya da mikrodenetleyici gibi komut işleme yeteneğine sahip entegrelerin işleyebilecekleri komutlardan ve buna uygun söz diziminden oluşan dile verilen addır. Makine dili, işlemcinin verilen komutlar doğrultusunda çalıştırılmasını sağlayan ve işlemci mimarisine göre değişen en alt seviyedeki programlama dilidir. Bu dil sadece 0 ve 1 binary ikililerinin anlamlı kombinasyonlarından meydana gelmektedir. Bu nedenle, makine dilinin anlaşılması çok güçtür. 0 ve 1 ikilileri işlemcinin instruction seti doğrultusunda işleme (process) uygulanacak operasyon, operasyonun gerçekleştirileceği verinin hafızada bulunduğu adres ve hafızaya ulaşım yolları gibi bilgileri ifade edecek şekilde biraraya gelmekte ve işlemci tarafından decode edilerek gerekli işlemin yerine getirilmesi sağlanmaktadır. Diğer proglamlama dillerin gerektirdiği derleyici ya da yorumlayıcı kullanımını gerektirmediğinden ve donanımı doğrudan kontrol etme gücü olduğundan kullanılır.
Kullanılan işlemcinin komut setinden ibaret olan makina dili komutları donanıma bağımlıdır. Günümüzde kullanılan i386 (32bit intel) ve i486 gibi işlemci standartlarının herbirine ait birer komut seti bulunmaktadır ve bu komut seti yalnız o mimariye yöneliktir. Bunun temelinde yatan asıl sebep işlemcinin hafıza birimi üzerinden okuduğu bir veri parçasının (bir ya da birkaç bayt) işlemciye bir emir teşkil edicek bir ifade olabilmesi için bu veri parçasının işlemci üzerinde donanımsal olarak bir işleme karşılık gelmesi gerekliliğinden kaynaklanır.
Örneğin: 1 0011 0111 gibi 9 bitlik bir wordu düşünecek olursak burada sol baştaki 1 biti indirect adresleme yapıldığını, bu bitten sonraki 4 bit olan 0011 çarpma işleminin yapılması gerektiğini geriye kalan 4 bit 0111 ise hafızanın 0111 adresine gidilmesi gerektiğini belirtebilmektedir. Bu düzen tabi ki farklı işlemci mimarileri için farklı olacaktır.

Assembly Dili
Assembly programlama dili, çoğu zaman özel alanlarda geliştirilen programlarda kullanılan alt düzel bir Programlama dili olarak tanımlanır. Bu dilin komutları, bilgisayarın doğrudan işlettiği makine dili komutlarının birebir karşı lığıdır. Bu nedenle bu dil için makine dili de denilebilir.
Her ne kadar uzman programcıların özel alanlarda kullandığı bir dil olarak tanımlansa da, programcılar istedikleri takdirde her türlü uygulamayı bu dil ile geliştirebilirler yada kullandıkları üst düzey dil altından çağırabilecekler i procedurler yazabilirler. Çünkü hemen hemen her dilde Assembly için destek bulunmaktadır.
Dilin en büyük avantajı CPU çevrebirimlerinin ve ana belleğin çok iyi bir şekilde kontrolünü sağlamasıdır. Ayrıca işletim sistem fonksiyonlarını da çok kolaylıkla kullanmak mümkündür. Assembly program dili derleyicisi kullanılan komutların birebir makine dili karşılıklarını üretir. Bu nedenle bu dil ile oluşturulan programlar olabilecek en kısa programlar olurlar.
Bir Assembly programı çalışabilir bir programın tüm kesimlerinin tam olarak tanıtılması ile oluşturulabilir. Bu nedenle bir Assembly programda minimum üç ana kesim bulunmalıdır.

Yüksek Seviyeli Programlama Dilleri
Makine dilinde çok sayıda komutla yapılabilecek bir iş, yüksek seviyeli programlama dilinin bir komutu ile yapılabilir. Bu yüksek seviyeli diller, İngilizce ya da Türkçe gibi doğal bir dil değil, kendi yapısı ve dilbilgisi kuralları olan, insanlar için anlaşılması kolay olan dillerdir.
Yüksek seviyeli programlama dilinde yazılan bir program, derleyici (compiler) dediğimiz yazılımlar tarafından, makine dilindeki denk bir programa dönüştürülür. Bilgisayar tarafından çalıştırılacak olan program, makine dilindeki programdır. Bazı yüksek seviyeli programlama dilleri arasında Pascal, Fortran, Basic, C, C++, Cobol, Lisp ve Prolog sayılabilir. Bu dillerin birkaçında, iki sayının toplanması şöyle ifade edilir:
C:=A+B; (Pascal)
C=A+B; ( C )
C=A+B (Fortran)
Bazen yüksek seviyeli programlama dilinde yazılmış bir program, makine diline çevrilmek yerine başka bir ara dile çevrilebilir. Bu ara dildeki komutlar, hiçbir makineye bağımlı değildir. Bu ara dildeki programlar, o dilin yorumlayıcısı (interpreter) olarak bilinen yazılımlar tarafından çalıştırılır. Bunun amacı, ara dildeki programların değişik bilgisayarlarda hiçbir değişikliğe uğramadan kullanılabilmesidir.

Hiç yorum yok:

Yorum Gönder

Computer - Internet Technology Design World -----------Bilim ve Teknik -----------internet,oyun,bilgisayar,bilişim,Programlama,Bilim Network,Msn,Yahoo,messenger,Gmail,Hotmail