A computer program, designed as part of a firmware of a control device in an automation system, comprising instructions that cause the control device to perform the following steps for data exchange between program modules (11, 12, 13) which can be executed on the control device as part of an overall application for execution on the control device by a real-time operating system: - providing a global data space in which the program modules can store variable values so that other program modules can access them; - configuring the computer program using a description file, wherein the description file comprises meta information that describes which variables a program module offers by using ports; - storing the meta information of the description file, wherein the stored meta information comprises at least one variable; - providing at least one connector, wherein the connector denotes a functionality of the computer program which provides a connection from one of the program modules to another one of the program modules, wherein the connector describes the manner in which data of the at least one variable is written and read in a memory, so that a connection can be established between the program modules (11, 12, 13), so that the at least one variable can be exchanged between one of the program modules and the computer program; - publishing variables provided by one of the program modules (11, 12, 13) for at least one second program module of the program modules (11, 12, 13), so that the published variables can be accessed by at least the second program module, further comprising instructions that cause the control device to perform the following step: - providing a programming interface that enables a program module (11, 12, 13) to search the meta information. - providing a global data space in which the program modules can store variable values so that other program modules can access them; - configuring the computer program using a description file, wherein the description file comprises meta information that describes which variables a program module offers by using ports; - storing the meta information of the description file, wherein the stored meta information comprises at least one variable; - providing at least one connector, wherein the connector denotes a functionality of the computer program which provides a connection from one of the program modules to another one of the program modules, wherein the connector describes the manner in which data of the at least one variable is written and read in a memory, so that a connection can be established between the program modules (11, 12, 13), so that the at least one variable can be exchanged between one of the program modules and the computer program; - publishing variables provided by one of the program modules (11, 12, 13) for at least one second program module of the program modules (11, 12, 13), so that the published variables can be accessed by at least the second program module, further comprising instructions that cause the control device to perform the following step: - providing a programming interface that enables a program module (11, 12, 13) to search the meta information. - providing a programming interface that enables a program module (11, 12, 13) to search the meta information.