lanetli adlı üyeden alıntı: mesajı görüntüle
Doğru sen haklısın C bir makine programlama dili değil..

C üzerine 1000 lerce kitap yazan, bu kitapların genelleme olarak başında diğer diller ile C nin karşılaştırmasını yapan ve bu karşılaştırmalarda C nin bir makine programlama dili olduğunu söyleyen sayın yazarlar ve yazarlarımızın olduğu gibi bende haksızım..

ve bu arada ben tartışmıyorum.
Bu kaynaklardan birkaç tanesini örnek gösterbilirmisiniz ?

Üst tarafta da çokca yazıldığı gibi C bir makina dili değildir hatta hiç bir dil makina dili değildir. Makina dili dediğimiz sadece 0 ve 1 lerdir. Assembly ise, bu bit dizisinin bire bir karşılıklarının olduğu bir dildir. Yani sürekli rakamlarla kodlamak yerine bunu daha okunulabilir hale getirilmişidir. Diğer programlama dillerinin sınıflandırılmasına girmeyeceğim.

Küçük bir örnek olarak LC3 dediğimiz bilgisayarın atası sayılabilecek 16 bitlik 8 registera sahip basit işlemleri yapaiblen bir devrenin assembly ve bit code karşılıklarını verirsek makine dili ve assembly arasındaki ilişkiyi daha kolay gösterebiliriz.

LC3 Assembly sinde

ADD R0,R1,R2
işlem satırı uygulandığında R2 isimli registerdaki ve R1 isimli registerdaki veri birbiri ile toplanır ve yeniden R0 isimli registera kaydedilir.

Bu işlem makina dilinde şu koda karşılık gelmektedir (tam olarak karşiliklarini hatırlamıyorum ama sistematik olarak doğu)


0001 000 001 0 00 010
(ADD) (R0) (R1) (R2)

Yani assembly ile makine dili birebir karşılıklıdır.


Diğer dillere gelince, herhangi bir dilde yazdığımız kod derleyici tarafından assemly'e çevrilir. Ancak, her derleyici farklı çevrimler yapabilir. Bu yüzden aynı kod parçasini 2 farklı derleyicide derlediğinizde performans farkı ortaya çıkabilir.