It is well documented that an ABAP program is more than just a piece of source code. Let’s wrap up some facts.
In most programming languages, a program is merely a textwritten in a programming language that is compiled and linked into an executable file or that can be directly interpreted. In ABAP, a program consists of a text plus program attributes. You must maintain the program attributes, when you create a program or you can look up the program attributes for any existing program by choosing → Attributes in the ABAP Editor.
There are a lot of program attributes that are relevant for the program development. For example the program’s Title that can be translated into another language, the program’s Original language that steers the translation process for program texts, the Package of a program that steers its transportation and visibility, and so on.
But there are also program attributes that influence the execution of a program in the ABAP runtime environment. Those attributes affect the compiler, the semantics of ABAP statements, and the allowed contents of a program. Such important program attributes are:
- Program type. Each program has a program type. The program type defines, which building block a program might contain, how it can be executed, and if it supports screens.
- Fixed point arithmetic. This attribute defines, whether for numerical data objects of data type p (packed numbers) is the decimal point is relevant in calculations or assignments or if it is omitted. Normally, this attribute is always switched on and you might ask, why it can be switched off at all. Well, in very ancient times packed numbers had no real decimal point. It was taken into account only for presentation purposes. In order to stay downward compatible, for the introduction of fixed point arithmetic this switch was needed. In fact there are still programs that switch fixed point arithmetic off – for example financial programs that calculate on the basis of cents instead of dollars.
- Unicode checks active. This attribute defines, whether the stricter syntax and semantics rules that are needed in Unicode systems are applied to a program. In Unicode systems it is mandatory to switch it on. In non Unicode systems it is highly recommended to do so. Unicode programs are better programs. Many dangerous and error prone programming styles are not possible any more – for example, structures that contain numerical components
are not treaded as one large character field any more but its fragment view is taken into account.