Keyboard Shortcuts
ctrl + shift + ? :
Show all keyboard shortcuts
ctrl + g :
Navigate to a group
ctrl + shift + f :
Find
ctrl + / :
Quick actions
esc to dismiss
Likes
Search
C stack/heap memory model assumption and TSO TCB memory model
Hi
?
In a different thread, in a different group (the Turnkey one) somebody mentioned (sorry, I forgot who) that there is a difference between the C (GCC)
memory model (stack plus heap) and the TSO (and I presume other programs) memory model based on Task (?) Control Block.
?
As I was brainwashed by Unix at a very early age (let's say, about 20kgs ago) I found this intriguing, as most OS books
I knew of did not mention anything of the kind.
Did I read too much in that off-hand comment?? If there is a difference, what would be a good pointer to a summary of the topic before losing oneself in the overall IBM documentation?
Thanks.? Any help appreciated, even "don't bother!" :) PS I am asking because I teach, and I want students to at least know what happens (or happened) ?
--
Marco Antoniotti Somewhere over the rainbow |
Hello Marco,
?In older releases of IBM's operating system each language had its own memory methodology, and C was not available at that time, my fuzzy grey cells indicate it came out around the early 70's, on PC's and Unix based IBM systems.
?
Roughly speaking there was Cobol, PL/1 and Assembler as the common MVS languages, Fortran showed up, maybe Pascal, it's a long time ago for me, so timings are vague, hopefully others have more complete memories of timelines :-) and can comment , I started Mainframe Programming with PL/1 around 1975, and wrote quite a lot in raw Assembler for the next almost 35 years.
?
I'm not sure of the timing of C being available, but the more modern IBM systems now use Language Environment, which was originally developed because inter-language, calls such as Cobol to PL1 and vice versa could freemain stuff of the other language that it shouldn't be doing.
?
I'm fairly sure that LE is used by all compilers on IBM systems these days, as it provides a unified set of routines and memory allocation facilities, and there are parameters relating to heaps and stacks.
?
There's a brief overview of LE ( Language Environment ) in this
?
and an old OS/390 C reference in this
?
Latest ZOS LE documents as pdf can be found
?
?
Regards,
-- τσ尘 |
开云体育On 13/10/2024 22:22, botongrui, aka
τσ尘. via groups.io wrote:
C - 1972 first release, 1978 for . FORTRAN by IBM- 1958. COBOL was designed in 1959 by PL/1?? 1964 - IBM - first compiler released 1966 Assembler 1947 - by Kathleen and Andrew Booth? BUT there was an earlier one of a similar type around 1944 for the first programmable? British computer around 1944 and also one that was more related to conventional Assembler for the British LEO I, where the first program was written and tested in 1951. LEO II in 1954 and finally the LEO III in 1961 For the LEO series the assembler was actually called Intercode. The LEO III was still around and working around 1974 situated in ICT T&SS, S&TS department (later renamed ICL) in central London - I had to look up my old CV for this one.? I do not recall working on it though but did work on before that say around 1969 a ICT 1500 where I used Cobol and did program in Cobol around 1965 on a IBM 1401 linked to a 7094 where Fortran and Assembler was also used. Did use machine code on the 1401 around 1965/6 if only to create a bootstrap program to get the system to boot up semi automatically (but seem to recall it read the object deck from the card reader - later converted to read a punch tape instead as faster). . That's as much as I remember - What do you want for a 77 year old memory :) Vincent ? |
Hello Tom,
Am 13.10.2024 um 23:22 schrieb botongrui, aka τσ尘. via groups.io <botongrui@...>: I'm not sure of the timing of C being available, but the more modern IBM systems now use Language Environment, which was originally developed because inter-language, calls such as Cobol to PL1 and vice versa could freemain stuff of the other language that it shouldn't be doing.Fun fact: This facility was available first in OS/400 V3 (ca. 1994) to integrate C, RPG, and COBOL. LE is called ILE (Integrated Language Environment) on that platform. Apparently the concept spilled over to the mainframe world. :-) :wq! PoC |
Thank you all.? Especially for ... preserving memory :)
I guess my original question was a bit different.? I had perused the "Language Environment" and I filed it under "Application Binary Interface" spec. I also guess, that my question was whether the Language Environment or the previous conventions used something "different" than actually having a stack+heap memory layout.? I surmise that it must be so, as HW stack instructions (BAKR and PR) did not appear until later.
?
All the best
?
--
Marco Antoniotti Somewhere over the rainbow |
to navigate to use esc to dismiss