ABAP Compiler or Interpreter?
This question has been asked several times and been answered in several ways.
But still i am repeating the same question since i couldnt found an exact answer.
Does ABAP have a compiler or an Interpreter or both ?
I have gone through several answers and documents regarding this.
Some says YES but some says NO.
If it is YES, could someone please explain why?
Also is this compilation takes place at OS level?
Expecting your kind response
Thank and Regards
Essentially ABAP uses the same model as Java, so ABAP programs are compiled to a byte code, which is then interpreted/run by a virtual machine. The generated byte code is platform dependent though for ABAP.
It's basically similar to the [write once run anywhere|http://en.wikipedia.org/wiki/Write_once,_run_anywhere] approach as opposed to the compilation to native processor instructions, which means that your resulting code is platform dependent (thus requiring code changes when [porting|http://en.wikipedia.org/wiki/Porting] it to another platform). So for ABAP you only need to regenerate the code for different platforms, but you don't need to adapt the source code (omitting changes though here for possible updates due to language changes, e.g. due to Unicode enabling).
E.g. see the short comment in [Overview of SAP Netweaver AS|http://help.sap.com/saphelp_nw2004s/helpdata/en/fc/eb2e97358411d1829f0000e829fbfe/frameset.htm]:
All ABAP applications run on software processors (virtual machines) within this component.
And in the guide [System Copy for SAP Systems Based on NW 7.0 SR3 ABAP|http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/00f3087e-2620-2b10-d58a-c50b66c1578e] you'll find:
34. ABAP Program Loads
The ABAP loads are platform-dependent programs that are generated during runtime and stored in database tables.