Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!usenet.stanford.edu!news.iecc.com!nerds-end From: "robin" Newsgroups: comp.compilers Subject: Re: Archaic hardware (was Fortran calls) Date: Wed, 9 May 2012 10:46:17 +1000 Organization: Compilers Central Lines: 32 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <12-05-009@comp.compilers> References: <12-04-070@comp.compilers> <12-04-077@comp.compilers> <12-04-081@comp.compilers> <12-04-082@comp.compilers> <12-04-084@comp.compilers> <12-04-085@comp.compilers> <12-05-004@comp.compilers> <12-05-005@comp.compilers> <12-05-006@comp.compilers> NNTP-Posting-Host: news.iecc.com X-Trace: leila.iecc.com 1336667905 83267 64.57.183.58 (10 May 2012 16:38:25 GMT) X-Complaints-To: abuse@iecc.com NNTP-Posting-Date: Thu, 10 May 2012 16:38:25 +0000 (UTC) Keywords: history Posted-Date: 10 May 2012 12:38:25 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: csiph.com comp.compilers:638 From: "glen herrmannsfeldt" Sent: Sunday, 6 May 2012 3:13 PM > I remembered the PDP-8 using the "store the return address in the > first word" method, but, yes, there was an earlier PDP-10 compiler. > The one I used was, I believe, called Fortran-10 and the older one > Fortran-40. The CDC machines 7600, Cyber 70 series, etc used that method to store the return address. Surprising that those machines should take a step backwards, in view of around a decade of Algol (with recursion). It meant that each subroutine/function needed to implement its own stack should it be called recursively. Alan Turing designed the push-down pop-up stack for subroutines back in 1945, for his computer (later christened Automatic Computing Engine). That feature did not see hardware at that time. However, the Pilot ACE (1951) included a push-down stack (or, if you like) a queue. That push-down stack was continued into the DEUCE line (1955). The stack as a means of calling and returning from subroutines/ functions was implemented in the KDF9 (1961, delivered 1963). The S/360 and subsequent issue stored the return address in a register. That made it somewhat easier to have a universal stack manipulated by software.