I'm trying to understand the names of different parts of popular compilers. The compilers I'm comparing are the GNU Compiler Collection, Apple LLVM, and Microsoft Visual C++. (Are these the correct names for the compilers?) Is the following table correct:
GCC | Apple LLVM | MSVC | |
---|---|---|---|
Backend | GCC | LLVM | MSVC |
C frontend | gcc | clang | MSVC |
C++ frontend | g++ | clang++ | MSVC |
Also; if I'm compiling my C++ source files with the command clang++
on a mac:
$ clang++ --version
Apple LLVM version 10.0.1 (clang-1001.0.46.4)
Target: x86_64-apple-darwin18.5.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
what's the name of the compiler I'm using? Should I say I'm using Apple Clang? Or Apple LLVM? Or something else?
CL.EXE
(for Compiler/Linker). – Eljaycl.exe
as the compiler driver. The C front end (c1.dll
), C++ front end (c1xx.dll
), and compiler back end (c2.dll
) are separate DLLs loaded bycl.exe
. – 1201ProgramAlarm