| Richard 2008-03-13, 6:56 pm |
| On Mar 14, 9:37 am, "SeaSideSam" <SeaSideSam@TheBeach> wrote:
> robert. it took me a while but i finally removed all the 'personal' stuff and what remained was this....
> ******************************
> If my program, loaded and running, CALLs a subroutine for the first
> then it will create a new working-storage for that. When I CANCEL it
> will destroy that area and make it available for reuse by another.
>
> This could happen even if the program was linked so that the program
> code loaded with the run unit.
>
> In OO COBOL a new object will dynamically create a new working-storage
> for itself.
> *********************************
>
> you make some claims here as if they were 'absolutes'. 'When I CANCEL...' and 'In OO...' are the two i am refering to.
No, they are not absolutes. "When _I_ CANCEL" refers to the code that
I construct and run using the compilers that are available to me. If I
had said "When YOU CANCEL" I may have been wrong. If I had said "When
a CANCEL is done.. " that would have been an absolute.
> In OO COBOL a new object will dynamically create a new working-storage
> for itself.
The whole point of OO is that any number of objects can be created,
each with their own data area and methods. A new, or a class factory,
_will_ create a new data area for the object because it cannot be done
at compile or run-time load, the number and types of objects is
unknown until the code executes to create them.
> i've noticed that you are a sensitive fellow so i'm letting it be known that i have no desire to get in a pissing contest with you, but my 30+ years as a professional computer programmer taught me that there are few 'absolutes' when it comes to hardware
and software vendors and the way they 'interpret' and 'implement' a standard.
>
You are quite right, that is why I carefully confine my statements to
what happens in "my programs" and "when I" do something. I make no
comments about how your programs work or when you do something.
> as an aside... i have yet to see an implementation that 'destroys' anything other than a pointer when a called program returns control to the calling program regardless of the method. any decent ibm assembler programmer from the 70's or 80's could demo
nstrate this for you.
>
Well in _my_ programs, or at least most of them, a CANCEL will reduce
the memory used by the run unit and make it available for other
programs or a subsequent dynamic CALL. In fact if LOCAL-STORAGE is
used (which I have done) then this will be freed (destroyed) by the
EXIT PROGRAM and a new area created when the program is CALLed again.
It is possible for a CALLed program to be re-entered (which is the
whole point of LOCAL-STORAGE) and this will then create several LOCAL-
STORAGE each of which will be destroyed on the appropriate EXIT
PROGRAM.
It may well be true that on an IBM mainframe 40 years ago the memory
given to a program by the OS was a fixed sized block that remained
until the run-unit completed, I couldn't comment having never worked
on 360 series, but you weren't saying that as an absolute were you ?
No, you had qualified this limiting it to only what you have seen.
> with the exception of the personal stuff i am enjoying the exchange. and since i haven't been paid to program for... geee... 15 years now... i not only find the exchange informative but entertaining as well.
>
> have a good day.
|