Cg surge como alternativa para facilitar la labor al programador.
De esta forma, un programador puede desarrollar un programa (o varias versiones) con la seguridad de que se ejecutará correctamente en aquellos sistemas que acepten ese perfil.
En muchos casos, es condición necesaria que los ciclos sean desenrollables (para esto se debe conocer de antemano el número de veces que se ejecutará).
Por otra parte, se pide que las secuencias de control estén limitadas en cuanto a niveles de anidamiento o bien que el predicado esté formado por variables globales a todo el programa (es decir dentro del programa se sepa ya si el predicado es cierto o falso).
Cg tiene un amplio repertorio de funciones para interactuar con el sistema Cg dentro de la biblioteca gráfica que se esté utilizando, esta sea DirectX u OpenGL.