First, where did the comment about DDMs come from? And what does it have to do with the discussion?
Next, I will check in the Programming Guide latter, but I believe all the excerpt you posted is saying is that Variables in an LDA (whether internal or external) are initialized at the time the “object” is about to be executed, which of course is true.
I wandered through the documentation and did not even find your quote (are you sure it was in the programming guide?).
However, it is all very straight forward. An external LDA does not appear in your source code. However, when you STOW an object with an external LDA, the resultant “stuff” (definitions, edit masks, INITs etc) appears in the object code. Thus, once it is STOW’ed, you no longer need the source definition.
If I understand you correctly, I don’t the the source definition of the LDA at runtime. I even don’t need the object code of the LDA. The only thing I need is the object code of the program.
LOCAL USING LDA is a shorthand for
LOCAL
1 blabla
…
and enables reusage of data definitions and initializations.
A saved only data area can not be included into the program. It must be stowed. What does it mean to stow a data area? In early versions of Natural for Unix the STOW did the following:
Syntax check the “comments” in the source code (comments are the parts of the source code the editor works on)
Add a DEFINE DATA LOCAL/PARAMETER statement to the source code defining all the data
Save the modified source code, no compiled object!
Mark the object as “compiled” in the filedir.sag.
If you then saved the object again, the DEFINE DATA got lost, but the compile flag did not. At compile time, the compiler complained about an empty object.
Today a compiled object is created in Unix, too. This compiled object does also contain nothing else but a DEFINE DATA, but I think, not in a human readable format (can’t check now).
The only data area that behaves like a “program” is the GDA. A GDA is not incorporated into the object code of the using program, but only a reference to it. That’s the reason, why a GDA must be available at runtime.
Sorry. I re-read what I wrote and realize the confusion. When I said “your” I was not referring to your code. Also, in the next two sentences, “you” does not mean you, Matthias.
I was writing as if you/your referred to any programmer.