|
Authored by: hardmath on Thursday, May 10 2012 @ 02:36 PM EDT |
Here's a recollection about stack vs. register
architectures.
In the mid-80s I worked at a mainframe shop where my boss
was one of the original Burroughs MCP programmers. The MCP
(Master Control Program for you Tron fans) was written in a
dialect/extension of Algol, and Algol is famous as a
programming language for having recursive function
definitions, something we take for granted today. The stack
architecture of Burroughs mainframes was a reflection of the
stack architecture of the Algol language.
Elegant stuff, but not the best fit for the allocation of
random access memory/arrays. In Algol everything was stack-
based, and if you wanted to allocate memory in a program,
into the stack it went. Toward the end of the decade
Burroughs (actually Unisys at that point) came out with a C
compiler, something you'd think would have been done years
before.
In testing it out in our shop we found that C programs
compiled on for the mainframe ran orders of magnitude slower
than they would on a PC (say compiled with Borland's Turbo
C). The reason is that almost all C programs want to
allocate memory for stuff at runtime, even simple stuff (I
recall a Towers of Hanoi demo or similar).
The stack allocation proved to be the Achilles' heel of the
C compiler, perhaps because "free" would involve some stack
reshuffling operations which the Burroughs instruction set
was never meant to "address".
---
"Prolog is an efficient programming language because it is a very stupid theorem
prover." -- Richard O'Keefe[ Reply to This | Parent | # ]
|
|
Authored by: Anonymous on Thursday, May 10 2012 @ 03:20 PM EDT |
Please make yourself available to the principles in this matter. You are a
keeper.[ Reply to This | Parent | # ]
|
|
|
|
|