NVIDIA's Cg Toolkit should be able to compile (or translate) shaders offline and spit errors. Another option is to create a tiny executable yourself that takes in a shader file and tries to compile it with your GPU driver's compiler (or perhaps such a compiler is already provided for you by the vendor). Though I think at least in the latter cases many compilers are too forgiving to catch all errors.

Related question:
Multiplatform GLSL shader validator?

Build-time GLSL syntax validation
In gas discharge lamps, for example, a current composed of ionized atoms excites the electrons of the atoms of the gas, and when they fall back to their ground state photons are emitted. Why is the reverse process (energy transfer of an excited electron to a free electron) never mentioned? Is it not possible or is the characteristic time involved too low for the electron to "wait" for an electron to pass? 

I have read about losing excitation energy as heat in chemistry oriented articles, but they don't go too deep. Here is an example.
