> BTW - I often see Clang described as "llvm" or "cfe" and I've often wondered
> what they stand for ??

LLVM is "Low Level Virtual Machine". That name is a bit confusing, because this 
isn't the kind of "Virtual Machine" you get from VMWare or the like, but a way 
of representing programs for a non-existent, hence "virtual," computer 
architecture. It was created for use in compilers: you have a front-end that 
translates programming languages into the LLVM representation, and a back-end 
that generates object files for a specific processor and operating system. That 
means that to create compilers for X different languages to run on Y different 
platforms, you only need to write X front-ends and Y backends, rather than X*Y 
separate compilers. "cfe" is the "C front-end" which also handles C++ and the 
"Objective" variants of C and C++.

https://en.wikipedia.org/wiki/LLVM

The idea of having a well-defined intermediate representation for compilers and 
related tools has been around for nearly sixty years 
(https://en.wikipedia.org/wiki/CPL_(programming_language)) but LLVM seems to be 
the most successful implementation to date.

--
John Dallman

-----------------
Siemens Industry Software Limited is a limited company registered in England 
and Wales.
Registered number: 3476850.
Registered office: Faraday House, Sir William Siemens Square, Frimley, Surrey, 
GU16 8QD.
_______________________________________________
cfe-users mailing list
cfe-users@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users

Reply via email to