Portal:OpenGL Objects/Program Objects
A Program Object stores the executable code and uniform state for one or more Shader stages. The most common means of building them involves the creation of Shader Objects, which represent strings of text in the OpenGL Shading Language. Shader objects are compiled, and if successful, one or more shader objects is linked into a program.
In both cases, the user can query whether compilation or linking failed, and the error messages produced by any such failures.