ABAP Compiler or Interpreter?

Hi guys
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
Hareesh

@Sumodh: I agree that some quite a few questions in this forum are silly and could have been answered if the poster would have done some research. However, before I start giving a generic answer or point to forum rules I personally like to take this small challenge: If you think something is really a stupid question that's answered in the documentation, give it a quick try and find a reference that answers the question. If I don't have the time or the question is really silly, I tend to ignore it.
I'm quite often surprised how hard it actually is to prove something seemingly obvious with an official reference from SAP. So if I know the answer, but still am not able to find some official reference (or need some time), then maybe it's not that obvious at all... (well, or possibly my searching techniques suck, but at least from that perspective I'd be at best as skilled as the original poster)
So in this particular case, if you have a good reference, please share it with us. I couldn't find anything really useful and had to give rather odd links in my answer. I usually don't like to just quote some previous forum postings, because among the really insightful answers there's also lots of rubbish out there (and let's be honest, some of the stuff might have been right at some point, but is now simply outdated).
@Hareesh: As you can tell from my perspective your question was completely legitimate: Any question that shows the original poster did some research before asking and is specific enough is ok, but hey, that's just my opinion. So don't get discouraged, obviously in a large community opinions differ from time to time...
@Sandra/PK/Suhas: Thanks for the kind words, but I'm just another one of the tons of average and confused SAP techies (though rather opinionated and a stickler for detail) trying to make sense out of all those applications. Be assured it's me who's following your insightful postings!
Cheers, harald
p.s.: The questions that really amuse me are the really generic ones listing basically the requirements for a task somebody has to solve/implement. Whenever I see nice and detailed answers to such questions I'm really tempted to write to the posters asking them if they'd consider working for me - no salary, health benefits or any of that crap, but I'd offer some really nice highscore system, where I would publish top employees with their scores...
p.p.s.: Darn, another overlong posting. My bad.

Similar Messages

  • ABAP is a compiler or interpreter ?

    ABAP is a compiler or interpreter ? also how is it ? or why ?

    hi there
    Abap to some extent has both...
    Before an ABAP program is executed, the ABAP compiler must translate it into an intermediate language.
    This form of program i.e. the program in this intermediate form is called an ABAP load.
    Then the ABAP virtual machine comes into the picture. ABAP virtual machine is an interpreter for ABAP loads, that is, it can execute ABAP loads.
    You can somewhat correlate the whole scenario with the process of Java compilation-interpret process.
    for further assistance u can check the link below...
    http://www.thaisapclub.com/forums/showthread.php?t=45
    reward if helpful
    regards
    niharika

  • Java is a Compiler or Interpreter?

    Java is a Compiler or Interpreter?

    If you mean the executable called "java" that comes with the jre, it is actually both... it's an interpreter that compiles parts of the code it's interpreting to machine code to make it run faster.

  • Is pl/sql programming language compiler or interpreter language?

    Hello guys,
    Is pl/sql programming language compiler or interpreter language?
    Thanks
    Edited by: Polat on 14.Mar.2012 09:09

    >
    Is pl/sql programming language compiler or interpreter language?
    >
    Both -
    See Compiling PL/SQL Units for Native Execution in the PL/SQL Language Doc
    http://docs.oracle.com/cd/E18283_01/appdev.112/e17126/tuning.htm#sthref1023
    >
    You can usually speed up PL/SQL units by compiling them into native code (processor-dependent system code), which is stored in the SYSTEM tablespace.
    You can natively compile any PL/SQL unit of any type, including those that Oracle Database supplies.
    Natively compiled program units work in all server environments, including shared server configuration (formerly called "multithreaded server") and Oracle Real Application Clusters (Oracle RAC).
    >
    And this from the section How PL/SQL Native Compilation Works
    >
    How PL/SQL Native Compilation Works
    Without native compilation, the PL/SQL statements in a PL/SQL unit are compiled into an intermediate form, system code, which is stored in the catalog and interpreted at run time.
    With PL/SQL native compilation, the PL/SQL statements in a PL/SQL unit are compiled into native code and stored in the catalog. The native code need not be interpreted at run time, so it runs faster.
    Because native compilation applies only to PL/SQL statements, a PL/SQL unit that uses only SQL statements might not run faster when natively compiled, but it does run at least as fast as the corresponding interpreted code. The compiled code and the interpreted code make the same library calls, so their action is the same.

  • 'Hello' does not want to compile and interpret

    I recently downloaded the latest JDK Update 12 from the sun website.
    I typed the basic hello program. The problem is in the compiling and interpreting of the program. In the command prompt, I made a new directory(folder) titled javacoding; in which I also saved the source code for the hello world program. After which i switched to it and I set the path of bin containing the compiler and interpreter to this directory. I typed in the following; javac Hello.java.
    I set the path thus: C:\javacoding> set path =%path%;C:\Program Files\Java\jdk1.6.0_11\bin;.;
    However, the program does not compile and the following message is displayed instead:
    'javac' is not recognized as an internal or external command, operable program or batch file.
    Here is a sample of the program I typed
    class Hello
    /*This program displays Hello*/
    public static void main (String args[])
    //This is the main method
    System.out.println("Hello, World!");
    For the record this was done on a Vista system.
    Thank you.

    Melanie_Green wrote:
    Variable ___________ Value
    Path ______________ C:\Program Files\Java\jdk1.6.0_11\bin;
    // Set this for both user and system variable*@Mel:* Ummm. Not to be too rude, but I'm almost certain that's incorrect, or atleast sub-optimal.
    Presuming that the OP (that's you Ikenna) is a system administrator on there own box, then just set the system PATH... all users will pick it up from there... also setting at the user-level just appends a useless duplicate entry to the PATH, slowing down (unsucessful) path-searches... not that you'd notice.
    *@OP:* Show us a dir of your jdk-bin directory... we'll need the exact command and it's output (at least down to javac.exe)... Question is: Is that directory exactly what's in your PATH? so also show us the command and output of echo %PATH% ... just post the whole command session (typos and all) between a pair of {code} tags.
    Cheers. Keith.

  • Compilation and Interpretation

    class test {
    public static void main() {
    if i am running this program ...it compiles but it doesnt run...
    why it didnt give me a compilation error..
    Could someone tell me what is done during compilation and interpretation..
    Thanks,

    I purposely missed String args[] in the main...
    wat my question is
    why the compiler didnt check the main method signature...its done only when i run...

  • ABAP COMPILATION ERROR

    Hi,
    I am running the following code in abap editor
    DATA:     LEN TYPE I VALUE 10,
         POS TYPE I VALUE 11,
         TEXT(10) VALUE ‘1234567890’
    WRITE AT POS (LEN) TEXT .
    Following error i am getting when i compile
    Field "1234567890" is unknown. It is neithere in on of the specified tables nor defined by a DATA statement.
    Could you please let me know the solution.
    Thanks,
    RamuV

    There appear to be some garbage characters in this line and your WRITE is incorrect. Cut and paste this:
    DATA: len TYPE i VALUE 10,
          pos TYPE i VALUE 11,
          text(10) VALUE '1234567890'.
    WRITE AT pos(len) text .
    Rob

  • NW2004 ABAP: Compiling of SAP programs

    Hi,
    does anybody know how to avoid the time consuming compilation of SAP standard programs when working with NW2004 ABAP?
    Example:
    I installed NW2004 ABAB Version on my PC.
    I can logon to the system and work with it.
    When I call a transaction e. g. SE37 the
    system starts to compile. This compilation is quite
    time consuming.
    When I call the same transaction again it is started
    without compiling.
    That is the standard system behaviour which is fine to me.
    Then I logoff and shutdown the sap system using SAP System Management Console.
    Then I start the sap system again using SAP System Management Console.
    Then I logon to the sap system.
    Then I call transaction SE37 and it starts to compile!!!
    It seems to me that the runtime version of the
    sap programs are not saved in the database.
    Everytime I stop and start the SAP System the
    programs relvant for a transaction are compiled again.
    I extended the space of the database already from 9GB to
    18 GB (2 Volumes).
    I also run transaction SGEN to compile all programs.
    It took 20 hours (the database is filled by 60% now)
    but SGEN did not help.
    The problem remains the same:
    When I start the system and logon the compilation
    takes place.
    Is there a way to avoid the compilation of programs which
    have not been changed since the last compilation?
    Thanks for your help
    Matthias

    Hi all,
    i've the same problem...
    Help.

  • Is Oracle is a compiler or interpretter....?

    Could You Please tell some details...
    Thanks
    Rinson K.E.

    Oracle is a massive set of large programs.
    Some parts are interpreters.
    Others are configurators.
    Others are compilers.
    And the database engine contains a 4GL processor. Fourth Generation Languages are 'descriptive' rather than 'object oriented' or 'procedural'. You describe what you want to occur (insert, select, ...), what results you need (expression list) and the source from which you want the information to be extracted, and the processor creates a set of steps through it's library to fulfill the requirement. Since that has traditionally been a new 'plan' for each time the question is asked, one could call that an interpreter. However, with stored outlines, one could say the plan can be 'compiled'.
    But that says nothing about the PL/SQL engine that also exists in the database kernel.
    Perhaps you could provide some details about what you are asking about.

  • Is java interpreted or a compiled language.

    Im confused all languages aare compiled arent they?
    C++ is compiled into binary, then its ready to execute.
    Java compiled into bytecode and then interpreted bt the JVM, then passed into binary and run?
    Is this right anyone got a definitive answer?
    Cheers

    Im confused all languages aare compiled arent they?Languages are not classified into compiled and interpreted. Implementations of languages are either compilers or interpreters.
    Most implementations of languages are compilers these days. As far as I know there are no Java interpreters. Java is always compiled into bytecode or native code in all implementations I've seen.
    The bytecode can be interpreted as it usually was in the early days of Java, or compiled at run time, or pre-compiled, or can be both interpreted and compiled at run time as HotSpot does.

  • JVM - an interpreter or compiler

    Could someone please give a concise answer for whether 'JVM is an interpreter or compiler'.. Possibly at an interview point of view.
    Thanks

    javac is a compiler to compile source code to bytecode i'e .Class file
    java is a interpreter on behalf of part of JVM takes bytecode to be executed as machine level code
    JVM has both JIT compiler and interpreter to speed up the execution process,
    Internally it maintains HOTSPOT algorithm to execute code
    if loops are there it takes process by compiler otherwise it takes interpreter,
    It also maintains 'Code Verifier' to purify code whether it comes bytecode or not ,
    so that it maintains a securety to mescellaneious files ,So JAVA is more secure Language
    "finally Jvm uses both 'just in time compiler(JIT)' and interpreter.

  • Obsolete ABAP Statements from 2004s - what about your existing code-base?

    Hi
    Note:  This is a question for someone that has a very deep understanding of the SAP compiler either through research or through actually working on the Netweaver Code stack
    Since upgrading from 4.7 to ECC6 the ABAP compiler has become a lot stricter on the use of certain statements in the OO context.
    For instance you're not allowed to use the statement LIKE, but in stead have to use TYPE and internal tables does not have an implicit header line, etc.
    These restrictions are explained in greater detail [here:|http://help.sap.com/abapdocu/en/ABENABAP_OBJECTS_DIFF_TYPES_DATA.htm]
    MY QUESTION:  To what extent does this restriction affect your existing code-base?. 
    We have over a thousand "Classes" written since 1998 in OO as far as it was available at the time.  For the most part each class is its own include in SE38, with the class definition and implementation together in this include.
    Up to now, we could successfully change and activate these classes as long as the main program was pre-existing in 4.7.  Now we are trying to use one of these older classes in a new main program for regression test purposes, and we are getting the following error: 
    "Within classes and interfaces, you can only use "TYPE" to refer to ABAP Dictionary types (not "LIKE" or "STRUCTURE")."
    This error is valid as per the current definition of the SAP language.
    BUT I'm concerned about the confidence we can have that SAP will continue to interpret and execute existing code correctly.  So far it has, but I would like to know wheter that is by chance, or by design.

    Hello Esti
    Thank you for your explanation which shows that I misunderstood your question.
    I would have expected that all of your syntactically incorrect coding would not be executed, irrespective of whether it is an old or a new program. My interpretation of this system behaviour is that the syntax check appears to be release-dependent.
    A possible way to check this would be to manipulate the TRDIR entry for one of your old programs. You will find a field LEVL with the following meaning:
    DE RDIR_LEVL
    Short Text
         Level
    Definition
         System release under which the ABAP/4 program was created or last
         changed.
    Another way would be to copy an old program to a new Z-program which should fail in the syntax check. Check again if you find any significant difference in their TRDIR entries.
    Coming back to you question and the remark by Dion I am convinced that one of the biggest threats for each and every SAP customer is custom coding of poor quality, i.e.
    "spaghetti" coding instead of structured programming
    incomprehensible coding (at least for the developers who did NOT create the program)
    low transparency resulting in high efforts to enhance or improve the coding
    In your case: the possible breakdown of your coding depending on unknown external factors
    Given the huge amount of coding that is affected from these unknown external factors I would classify your situation as "high risk" which demands rather quick actions. How could you communicate this to your management team?
    Here are two possible suggestions:
    (1) It is possible that your entire custom coding may be no longer executable after a SAP release upgrade. Thus, the currenct coding base may prevent one of the next upgrades.
    I guess this is not yet impressive enough for a manager because usually a SAP customer is not forced to upgrade its SAP system in order to get new functionalities which are required for legal reasons.
    (1.a) It is possible that your entire custom coding may no longer be executable after importing ABA and/or BASIS hot packages.
    Given the fact that we need to import such packages quite frequently and sometimes they are mandatory (I think especially of SAP-HR systems) then I would be scared as a manager.
    (2) Assuming that most of your Z-reports are started via Z-transactions and perhaps you are lucky and you have specific roles containing these Z-transactions then you may ask your management team to do a simulation of coding breakdown: remove the role assignments for a couple of users and see what happens.
    (2.a) As an alternative you may try to lock Z-transactions via SM01 and again check for the user reactions.
    If your managment team is still not impressed then I would set up a document with the following contents:
    Explain the problems of the old coding base and why you could not anticipate future changes of the ABAP syntax check
    Describe the possible scenario if the custom coding no longer works after an upgrade or hot package import
    Describe the required actions to make your custom coding compatible to the latest ABAP release
    Most important: urge your management team to sign this document. If one day your custom coding breaks and they are looking for somebody to blame you just take this document out from the bottom of the deck
    Regards
      Uwe

  • ABAP RunTime Error  for tcode : TS01

    Hi Friends,
    Actually we are getting the run time error while creating the standard security transaction using TS01.
    After entering the data in the first screen -- click on the enter -- enter the details inside & click on save button--then it will go run time error.
    Here while calling the method, we are getting the run time error.
    call method cl_class_position_op_trs=>trs_flows_calculate_tax
          exporting
            im_tab_flow         = L_TAB_FLOWS
            im_company_code     = l_company_code
            im_security_account = l_security_account
            im_security_id      = l_security_id
          receiving
            re_tab_flow         = RE_TAB_FLOWS
          exceptions
            failed = 1
            others = 2.
      if sy-subrc <> 0.
         MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4
                  RAISING FAILED.
      endif.
    Actuallly here the problem with the class becuase the class  cl_class_position_op_trs itself has error.
    In the class , in the local classes they are calling again the class cl_class_position_op_trs. becasue of this reason it was going to run time error.
    So we are getting the run time error.
    We have OSS note for the same problem.But i am unable to implement that.
    Please guide me how to implement the OSS note 751947.(Note 751947 - TRS: Syntax error due to ABAP Compiler)
    please find the error details:
    Runtime Errors         SYNTAX_ERROR
           Occurred on     03/12/2008 at 00:26:57
    Syntax error in program "CL_CLASS_POSITION_OP_TRS======CP ".
    What happened?
    The following syntax error occurred in the program
    CL_CLASS_POSITION_OP_TRS======CP :
    "Components of classes declared using "CLASS CL_CLASS_POSITION_OP_TRS D"
    Error in ABAP application program.
    The current ABAP program "CL_CLASS_POSITION_TRS=========CP" had to be
    terminated because one of the
    statements could not be executed.
    This is probably due to an error in the ABAP program.
    What can you do?
    Please eliminate the error by performing a syntax check
    (or an extended program check) on the program "CL_CLASS_POSITION_OP_TRS======CP
    You can also perform the syntax check from the ABAP/4 Editor.
    If the problem persists, proceed as follows:
    Print out the error message (using the "Print" function)
    and make a note of the actions and input that caused the
    error.
    To resolve the problem, contact your SAP system administrator.
    You can use transaction ST22 (ABAP Dump Analysis) to view and administer
    termination messages, especially those beyond their normal deletion date.
    Error analysis
    The following syntax error was found in the program
    CL_CLASS_POSITION_OP_TRS======CP :
    "Components of classes declared using "CLASS CL_CLASS_POSITION_OP_TRS D"
    Regards.
    Lakshmi
    Edited by: lakshmi podile on Mar 14, 2008 8:08 AM

    Did you go through the steps in the note?
    Use transaction SE24 to distribute the local classes into new include structures as follows:
    Call transaction SE24 for the class CL_CLASS_POSITION_OP_TRS.
    Select the following menu option:
    Goto --> Class-local types --> Local Class Definitions/Types
    Confirm the message that proposes conversion into the new structures.
    Choose Utilities --> Regenerate sections from the menu.
    Activate the class and all changed objects.
    Try and do this, and see what happens.
    Good luck.

  • Procedural ABAP refactoring or mass source code replacement

    I am trying to change hard coded values from multiple source codes with respective constant names. Is there a tool to find and replace them according to a rules table. I wouldn't mind even if this tool was not in SAP (eg. Eclipse).
    Thank you in advance,
    Michalis.

    Dear Thomas,
    thank you for your prompt response.
    My idea was (and is) that since the ABAP compiler is embedded in Netweaver, it would be smart to get the compiler functionality together with regular expressions declaration in order to do what unix like systems do for years, replace strings with other strings. The program you suggest is well known for finding literals (substrings) in source, but when it does you never know what is the role of the literal on the source code line (in the particular code statement).
    Of course I agree with you regarding the term refactoring, that a human eye is needed, if I was to do real source code pattern recognition and replacement, but my driving need is more simple and way far from that (at least for now).
    Please keep me posted in case you have any news on the subject.

  • ABAP key word puzzle (Help)

    Hi, everyone.
    I have read the following code:
    CALL METHOD  LR_COLUMNS->SET_COLUMN_POSITION
                                 EXPORTING :
                 !COLUMNNAME = 'VKORG'
                 !POSITION   = 01,
                 !COLUMNNAME = 'AUART'
                 !POSITION   = 02.
    So what does '!' mean? I have try to find something in Help, but it has nothing about '!'.
    Welcome any suggestions!
    Thanks very much.

    Hello James,
    the exclamation mark is nothing more than a hint to the ABAP compiler. It is required when you want use keywords like export, exceptions and so on as formal / actual argument.
    In the given scenario it is no must. But maybe the code is produced by some generator. For a generator not smart enough to no all rules, it is good advice to use exclamation marks for any parameter.
    Regards,
      Klaus

Maybe you are looking for

  • Error while viewing the shared report

    Hi After sharing a worksheet to another user and try to view the report from the other user, it displays the following error: " A measure is missing or is invalid. This worksheet may not display data correctly. Please edit this worksheet using Oracle

  • Sorting records dynamically in REF cursor, based upon a dynamic field

    Hi, I have a REF CURSOR built by using row type, table type and PIPELINE function. I have opened the ref cursor now. I would like to update a field called 'RANK' based upon 'RATIO' field in the REF CURSOR. i.e order the records in the ref cursor by R

  • Clarification about OCI_FO_REAUTH failover event of TAF

    Hello everyone, Can someone explain my the real meaining of the OCI_FO_REAUTH failover event when we are using TAF? All I found is : "OCI_FO_REAUTH indicates that you have multiple authentication handles and failover has occurred after the original a

  • Reloading a grid view

    I have a gridview and records are filtered based on date range selected. Also have a link on the grid that takes me to another page. On the next page I have a link to take me back to the initial page and load the grid view with the same records that

  • 10.5.2 and Photoshop CS3

    After upgrading to Leopard 10.5.2 I now get the error 'Application quit unexpectedly' after I go to close photoshop. This is my console error log: Process: Adobe Photoshop CS3 [300] Path: /Applications/Adobe Photoshop CS3/Adobe Photoshop CS3.app/Cont