A machine-readable medium, on which are stored instructions, comprising instructions that when executed cause a programmable device to: receive, on a development system, source code written in a programming language, wherein the source code includes shaders and compute kernels; parse, on the development system, the source code to create parsed source code; and generate, on the development system, an intermediate representation from the parsed source code wherein the intermediate representation is programming language independent and machine independent; and link, on the development system, the intermediate representation with a library to form an optimized intermediate representation, wherein the library complies with a language model that defines qualifiers, comprising: address space qualifiers that specify a region of memory where a function variable or argument is allocated; shader function qualifiers and kernel function qualifiers that restrict how a function may be used, wherein graphics functions may be declared with a shader function qualifier and computer and graphics functions may be declared with a kernel function qualifier; attribute qualifiers that identify a location of a resource to use for a function argument; and sampling and interpolation qualifiers for return types of vertex functions and arguments to fragment functions, wherein the optimized intermediate representation is for compilation on an embedded graphics processing unit, GPU, compiler of a user system to yield a GPU native code that is executable on a GPU of the user system. receive, on a development system, source code written in a programming language, wherein the source code includes shaders and compute kernels; parse, on the development system, the source code to create parsed source code; and generate, on the development system, an intermediate representation from the parsed source code wherein the intermediate representation is programming language independent and machine independent; and link, on the development system, the intermediate representation with a library to form an optimized intermediate representation, wherein the library complies with a language model that defines qualifiers, comprising: address space qualifiers that specify a region of memory where a function variable or argument is allocated; shader function qualifiers and kernel function qualifiers that restrict how a function may be used, wherein graphics functions may be declared with a shader function qualifier and computer and graphics functions may be declared with a kernel function qualifier; attribute qualifiers that identify a location of a resource to use for a function argument; and sampling and interpolation qualifiers for return types of vertex functions and arguments to fragment functions, address space qualifiers that specify a region of memory where a function variable or argument is allocated; shader function qualifiers and kernel function qualifiers that restrict how a function may be used, wherein graphics functions may be declared with a shader function qualifier and computer and graphics functions may be declared with a kernel function qualifier; attribute qualifiers that identify a location of a resource to use for a function argument; and sampling and interpolation qualifiers for return types of vertex functions and arguments to fragment functions, wherein the optimized intermediate representation is for compilation on an embedded graphics processing unit, GPU, compiler of a user system to yield a GPU native code that is executable on a GPU of the user system.