Neden C yerine tamamen C++ kullanılmıyor?

Hocam konu standart kütüphane değil konu direkt olarak derleyici örneğin microchip'in pic mikrodenetleyicileri için c++ derleyicisi yok fakat c derleyicisi var . Bana güvenmediysen stackoverflow'da neden c++ yerine c kullanmalıyım sorusuna yaklaşık 180 upvote almış yanıttan alıntı bırakıyorum şuraya :
  • your platform doesn't provide C++ (a C compiler is much easier to implement),

Ayrıca Rust Swift gibi dillerin c kaynak koduna derlenmesi gibi olay yok saydığın diller lvvm arka ucuna sahip dillerdir .Llvm dahil Hicbir derleyici bir yuksek seviye dili diger yuksek seviye dile cevirmez kaynak kodu okur sonra ya assembly komutlarina donusturur yada o anda yorumlar ve kodu calistirir.
Rust'ı VC++ kurulu olmayan bir bilgisayara kur ve derlemeyi dene.


Rust kurulum sayfasından alıntı:
It looks like you’re running Windows. To start using Rust, download the installer, then run the program and follow the onscreen instructions. You may need to install the Visual Studio C++ Build tools when prompted to do so. If you are not on Windows see "Other Installation Methods".
Swift için gerekli olanlar (Windows'ta)
ComponentVisual Studio ID
MSVC v142 - VS 2019 C++ x64/x86 build tools (v14.25)1Microsoft.VisualStudio.Component.VC.Tools.x86.x64
Windows Universal C RuntimeMicrosoft.VisualStudio.Component.Windows10SDK
Windows 10 SDK (10.0.17763.0)2Microsoft.VisualStudio.Component.Windows10SDK.1776
 
"Rust uses LLVM to generate code but that output still needs to be linked. MSVC and MinGW provide the linker which is used to link together object files and libraries to produce a binary."
lvvm hakkında yazı
Tercümesi:
Rust LLVM'i kod çıktısı verebilmek için kullanıyor. Ama bu çıktının önce yünlendirmesi gerekiyor. MSVC (VisualC++) ve MingW (Windows için gcc) bu yönlendiriciyi Objekt dosyaları ile Kütüphaneleri bir çalıştırılabilir dosya çıkartabilmek için sunuyorlar.

Ben de LLVM kurulu değil. Ama Rust VC++ sayesinde derliyor.

LLVM açılımı : Low Level Virtual Maschine. Türkçesi : Düşük Seviyeli Sanal Makine.
 
Tamam da "İnline Assembly" diller ne oluyor? Ve hangi diller?
BBC BASIC for Windows uniquely incorporates an assembler which generates 32-bit code and accepts all 80486 instructions and some Pentium-specific instructions (except special-register and privileged instructions), including floating-point and Multi Media Extensions. You can access the Windows™ Application Program Interface both from BASIC and from assembler code, allowing an experienced programmer to produce sophisticated applications.
 
Tamam da "Inline Assembly" diller ne oluyor? Ve hangi diller?
Herhangi bir yerde pat diye Assembly dilinin faydalarından yararlanabilen diller.

C ve C++'ta genelde şöyle kullanımlara sahiptirler:
C:
asm volatile("mov eax,10");
asm("push eax");
 
C++ ile Assemblyi kullanırken extern olarak belirtip return ve parametre tiplerini içeren bir taslak oluşturup aynı dizi içerisindeki .asm uzantılı dosya içerisine procedure yazıyordum.

C++:
extern "C" int WhileTest();

Kod:
;NESTED LOOPS
WhileTest proc
    lea rbx, i
    mov rcx, 0
    mov i, 1
    while02:
        cmp i, 2
        jg endwhile02
        mov j, 1
        while03:
            cmp j, 3
            jg endwhile03
            inc j
            inc rcx
            jmp while03
        endwhile03:
            nop
            inc i
            jmp while02
    endwhile02:
        nop
    ret
WhileTest endp
 

Geri
Yukarı