Path: utzoo!attcan!ncrcan!scocan!seanf From: seanf@sco.COM (Sean Fagan) Newsgroups: comp.lang.misc Subject: Re: Algol, and language design Message-ID: <1990Jul28.185054.2595@sco.COM> Date: 28 Jul 90 22:50:54 GMT References: <25630@cs.yale.edu> <58091@lanl.gov> <1990Jul26.024449.1777@esegue.segue.boston.ma.us> <2406@l.cc.purdue.edu> <1990Jul27.010930.12560@lth.se> Reply-To: seanf@sco.COM (Sean Fagan) Organization: The Santa Cruz Operation, Inc. Lines: 30 In article <1990Jul27.010930.12560@lth.se> bengtl@maths.lth.se (Bengt Larsson) writes: >Yes, of course some architectures made (make??) it somewhat difficult >to have recursive procedures (the ones that stored the return adress in >the first word of the subroutine comes to mind). "somewhat more difficult." That's *all*. The CDC Cyber 170 machines (of which most people know I am a big fan 8-)) have no stack, and, on a subroutine call, write an instruction into the first word of the subroutine ("jump ," basicly). Yet: Pascal was developed on this machine (literally! Wirth used a Cyber for the first implementation of Pascal). Algol and Simula run quite well on it. So does PL/I (although the compiler eats up all of memory 8-)). There are even a couple of C compilers out there, I've been told. No, it's not as fast. The only reason you don't really want to do it on a Cyber is memory space: stacks can eat up *lots* of memory, and 170's only have 128Kwords of memory. On most "modern" machines, this is less a problem (but, then, most of them have a stack). Incidently: Crays stuff the return address into a register, which your routine can then save if it wants to (leaf routines, of course, don't need to save it). -- Sean Eric Fagan | "let's face it, finding yourself dead is one seanf@sco.COM | of life's more difficult moments." uunet!sco!seanf | -- Mark Leeper, reviewing _Ghost_ (408) 458-1422 | Any opinions expressed are my own, not my employers'.