Stack Computers: the new wave © Copyright 1989, Philip Koopman, All Rights Reserved.
Chapter 1. Introduction and Review
From a theoretical viewpoint stacks themselves are important, since stacks are the most basic and natural tool that can be used in processing well structured code (Wirth 1968). Machines with a LIFO stacks are also required to compile computer languages, and may be a requirement for the translation of natural languages (Evey 1963). Any computer with hardware support for stack structures will probably execute applications requiring stacks more efficiently than other machines.
Some say that programming stack machines is easier than programming conventional machines, and that stack machine programs run more reliably than other programs (McKeeman 1975). Stack machines are easier to write compilers for, since they have fewer exceptional cases to complicate a compiler (Lipovski 1975). Since running compilers can take up a significant percentage of machine resources in some installations, building a machine that can have an efficient compiler is important (Earnest 1980).
As we shall see in this book, stack machines are also much more efficient at running certain types of programs than register-based machines, particularly programs which are well modularized. Stack machines also are simpler than other machines, and provide very good computational power using little hardware. A particularly favorable application area for stack machines is in real time embedded control applications, which require a combination of small size, high processing speed, and excellent support for interrupt handling that only stack machines can provide.
Phil Koopman -- koopman@cmu.edu