FreeBSD on zSeries

No, Linux is currently available and supported
Pffft "UNIX" 😏

AIX used to be available, but I don't know whether it still is.
Thats actually really interesting. I didn't know AIX was ported to anything else but POWER (and x86 in very early 1.3 versions). Thats really cool. Fiddling about with Hercules has just jumped higher on my /* TODO */ list to scratch my commercial UNIX itch.
 
IBM 360, 370, 370/XA, 370/ESA, and z/Architecture don't have a stack.
As an example of another heavy architecture that did not have a stack, I had the pleasure of writing FORTRAN IV and assembly code ("COMPASS") for a CDC Cyber 170/825. The return address was stored at the start of a function. Exiting the function meant jumping to that stored address. Stack based recursion - as taught today - was not possible.
Personally, I think architectures like ARM and RISCV are the future, especially if they're more cost effective than what we currently have today. That's why ARM is so popular with vendors and manufacturers.
Agree.
 
I didn't know AIX was ported to anything else but POWER (and x86 in very early 1.3 versions). Thats really cool. Fiddling about with Hercules has just jumped higher on my /* TODO */ list to scratch my commercial UNIX itch.
I've run AIX on the IBM RT (which was extremely slow), PS-2 (we used to call it the Piece of S***), RS-6000 (which was very fast, which is why we called it the Rapid S***), and I know it could run on both 370 and on Itanium. We had a copy of the AIX-370 manual set in our lab's photocopy room. I think it may have been ported to a few other architectures too.

The problem with getting any of these to run is to get a copy. For example, with mainframe OSes you can now get MVS/TSO back to the 1980s freely (IBM has released them for hobbyists, although I don't know where to find them). My manager when I worked at IBM used to carry an RPi 3 (which has a quad-core CPU) in his backpack, run the Hercules emulator on it in 4 threads, then have a 4-way copy of MVS running, and explain that the machine is faster than the 3084 (which is probably physically the largest single computer IBM ever built, excluding the Stretch, and secret models that were only available to government agencies). The amazing thing is: Using tn3270, you could simply log into a TSO account on it, and it just bloody worked. The kind of thing that only a nerd would do.
 
In most traditional languages (such as PL/1, FORTRAN and COBOL) that is explicitly prohibited.
Just because I am kind of a cheerleader for Fortran, I wanted to mention that as of Fortran 90, Fortran does support recursion. That doesn’t help z/OS users, because the highest level supported there is FORTRAN 77. (BTW, The name changed from upper case to Pascal case as of Fortran 90.)

Sadly, I don’t expect to see later versions of Fortran on the mainframe.

I think the people using modern versions of Fortran are mostly engineers and scientists running on HPC installations, which is not the target audience for the mainframe. I suspect that mainframers running FORTRAN are mostly running legacy code from the ‘70s.

Too bad for them. Fortran has grown into a nice language, with features like built in matrix and complex number support, as well as support for parallel processing (MPI or, if you use the NVIDIA/PGI compiler, CUDA).
 
As an example of another heavy architecture that did not have a stack, I had the pleasure of writing FORTRAN IV and assembly code ("COMPASS") for a CDC Cyber 170/825. The return address was stored at the start of a function. Exiting the function meant jumping to that stored address. Stack based recursion - as taught today - was not possible.

Agree.
A lot of computers from that era didn't have a stack.
 
Computers from back in the day are interesting. I once once worked on an IBM 1800, which is like an IBM 1130, but designed for process control, with a watchdog timer and A/D converters.

It had memory protection, but it was designed to protect from errors, rather than being a security thing. You issued an instruction with an address, and it made that particular 16-bit word read-only.

No stack, no virtual memory, no general registers; just an accumulator, a multiplier/quotient register, and three index registers. I never tried recursion; even reentrancy would have been a struggle on that machine.
 
There's probably freely available emulators out there that emulate some older versions of the Z architecture. OP could try their luck there.
 
We're not talking about the stack as a data structure used within a program. We're talking about the fact that C and C++ have to be based on a stack during function calls, since by language definition functions can be recursive: a function can call itself, perhaps indirectly through other functions. In most traditional languages (such as PL/1, FORTRAN and COBOL) that is explicitly prohibited. The stack has to hold CPU registers during a recursive call, and the automatic variables. Because function calling is such a vital part of the performance of C-based programs, it has to be very efficient.
Ah, right, keeping track of the scope of execution of the program. It was easy to think of it as a stack (starting at main(void){};), then organizing the inputs and return values. Learning to implement a recursive function in C/Java was fine while I was in college, but as programs got bigger, it became much easier to lose track of the scope of execution, and more painful to debug THAT out of the code.
 
Just because I am kind of a cheerleader for Fortran, I wanted to mention that as of Fortran 90, Fortran does support recursion.
And Fortran (upper or lower case!) on minicomputers has supported recursion since the 80s, perhaps earlier. The VAX 77 compiler definitely was able to create recursive subroutines. You had to be a little careful with using it if you used SAVE'ed variables, but I think the compiler gave you errors or warnings for those.
 
Back
Top