A computer-implemented method for compiling and executing a user program code, the method comprising: - receiving a program code comprising a sequence of array instructions for at least one input array data structure (A, B, C, D, F) storing multiple elements of a respective common data type, and function meta information, FMI, referring to the array instructions, the FMI allowing for determining an output size information of an output array data structure of each array instruction of the sequence of array instructions for an input size information of the at least one input array data structure (A, B, C, D, F); - generating (II, 10, 20), from the program code, a first program segment, generating the first program segment comprising: • determining, at runtime, a runtime size information of a respective runtime instance of the at least one input array data structure (A, B, C, D, F); and • including (22...28), from the sequence of array instructions and based on the runtime size information, the function meta information and the array instructions, array instructions into the first program segment as corresponding array operations; - receiving (III, 30) hardware information of a processing unit; - compiling (IV, 30), based on the first program segment, the runtime size information and the hardware information, a first compute kernel which is executable on the processing unit, wherein the compute kernel is compiled by a JIT-compiler; and - executing (V, 40) the first compute kernel on the processing unit using the runtime instance of the at least one input array data structure (A, B, C, D, F) as input. - receiving a program code comprising a sequence of array instructions for at least one input array data structure (A, B, C, D, F) storing multiple elements of a respective common data type, and function meta information, FMI, referring to the array instructions, the FMI allowing for determining an output size information of an output array data structure of each array instruction of the sequence of array instructions for an input size information of the at least one input array data structure (A, B, C, D, F); - generating (II, 10, 20), from the program code, a first program segment, generating the first program segment comprising: • determining, at runtime, a runtime size information of a respective runtime instance of the at least one input array data structure (A, B, C, D, F); and • including (22...28), from the sequence of array instructions and based on the runtime size information, the function meta information and the array instructions, array instructions into the first program segment as corresponding array operations; • determining, at runtime, a runtime size information of a respective runtime instance of the at least one input array data structure (A, B, C, D, F); and • including (22...28), from the sequence of array instructions and based on the runtime size information, the function meta information and the array instructions, array instructions into the first program segment as corresponding array operations; - receiving (III, 30) hardware information of a processing unit; - compiling (IV, 30), based on the first program segment, the runtime size information and the hardware information, a first compute kernel which is executable on the processing unit, wherein the compute kernel is compiled by a JIT-compiler; and - executing (V, 40) the first compute kernel on the processing unit using the runtime instance of the at least one input array data structure (A, B, C, D, F) as input.