[SOLVED] Arduino language

For example, an alternative to gcc is clang. If I personally perform steps 1-10 can I just pass it off to clang? Why or why not?

If you can find an avr-clang, yes that should work. A Google search seems to show such a program exists, or is a work in progress.

Finally, based on the fact that steps 1-10 are performed how would you feel about my using the nomenclature "Arduino C++ templating language", which would make it clear that:

1: Code produced in the Arduino templating language is not ready to be passed on to GCC directly. There is a bit of translationn involved.

2: It is a light translation that results in C++ code that is ready to be passed to the compiler.

I don't know about the words "templating language" - what does that mean?

I think I would say:

The Arduino "sketch" files (that is, the .ino files) are concatenated, and then pre-processed by the IDE to add function prototypes for you. The concatenated file is also scanned for #include statements which guide the IDE as to what additional libraries to include in the build process. In addition, any .cpp, .c and .asm files are also added to the build process without modification.

Once that is done the files are compiled using avr-g++. The resulting object files are combined using avr-ar. This is then linked using avr-g++. Then the resulting .elf file is turned into a .hex file using avr-objcopy.

I don't like the idea of trying to describe it as another language. It is just a build process using an existing language: C++. In a similar vein some compilers pre-process include files to save time in programs where many .cpp files all use the same include files. This is not turning it into another language, this is just a convenience for the programmer.