<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def bind(self):
 """Activate this Shader, making it the currently-bound program. Any Mesh.draw() calls after bind() will have their data processed by this Shader. To unbind, call Shader.unbind(). Example:: shader.bind() mesh.draw() shader.unbind() .. note:: Shader.bind() and Shader.unbind() can be also be called implicitly by using the 'with' statement. Example of with statement with Shader:: with shader: mesh.draw() """

        if not self.is_linked:
            if not self.is_compiled:
                self.compile()
            self.link()
        super(self.__class__, self).bind()