Life Hunter
Lapis Toplayıcısı
- En iyi cevaplar
- 0
C Assembly ye göre yüksek seviyeli bir dildir. Fortran da öyle.Yanlış öğrenmişsiniz, C# da bir işlem 1000 tane makine kodu gerektiriyorsa C++'da aynı şekilde 1000 tane makine kodu gerektiriyor. Lakin siz C#'da bir işlem yaparken 1000 makine kodunun örnek vermek gerekirse sadece %20'ini değiştirebiliyorsanız C++'da ise %40'ını değiştirebiliyorsunuz. İşlem sayısı gene aynı, sadece işlem şekline müdahale edebiliyorsunuz. Kısacası size daha çok optimize ve detay, düzenleme yapma olağanı tanıyor. Tabi ne kadar olanak o kadar da o dili zorlaştırıyor.
Assembly'de Hello World Örneği (IBM-PC);
C#'da;PHP:dosseg .model small .stack 100h .data hello_message db 'Hello, World!',0dh,0ah,'$' .code main proc mov ax,@data mov ds,ax mov ah,9 mov dx,offset hello_message int 21h mov ax,4C00h int 21h main endp end main
Siz şimdi diyorsunuz ki C# daha çok işlem yapıyor, hayır. İşlem sayısı aynı, sadece Assembly'de o yapılan işlemleri detaylı bir şekilde değiştirebiliyorsunuz farkları budur.[DOUBLEPOST=1437313192][/DOUBLEPOST]PHP:using System; class Program { public static void Main(string[] args) { Console.WriteLine("Hello, world!"); } }
C yüksek seviyeli bir değildir, düşük seviyeli bir dildir. Sen C ile Java'da yaptığın her şeyi yaparsın, C++'da yaptığın her şeyi de, Lua'dakileri de. Düşük seviyeli diller daha fazla optimize edilebilen dillerdir ve yüksek seviyeli dillerin yapabildiği her şeyi yapabilirler. Dilleri kendi kategorisinde şu iyidir bu iyidir diye belki kıyaslayabilirsin lakin C ile C#'ı kıyaslamak, C++ ile Java'yı kıyaslamak, Assembly ile C++'yı kıyaslamak saçmalıktan ibarettir.
Java ve C#'a göre düşük seviyeli kalır ama Assemmbly ye göre kıyaslarsan yüksek seviyeli bir dil olur.
Makine koduna gelirsek, tabii ki 1000 makine kodunu örnek olarak verdim ama bazı kısımlarda C++ daha az makine kodu kullanır. Örnek vermek gerekirse, C# da bir değişkene ilk olarak 0 değeri atanır. Ama C++ da değişkene ilk değer atanmaz. Değişkenin ait olduğu hafıza hücresinde daha önceden hangi değer varsa değişken o değeri alır. Bunun sebebide daha fazla makine kodu kullanılmasından kaçınmaktır. Ayrıca C# programcıya kodun hatasını söylemekte daha sıkı davranır. Ama C++ daha gevşektir bu konuda. Programcıya güvenir. Eğer debug etme konusunda c# kadar sıkı davranırsa daha fazla makine kodu kullanılır ve bu da performansı etkiler.
Ayrıca yüksek seviyeli diller ile yapılabilen şeyler C++ ile de yapılır. Ama bazı işlemler daha kısa sürer. O yüzden bazı yerlerde yüksek seviyeli diller kullanmak daha mantıklı olur.
Son düzenleme: