Abstract
While core is becoming relatively inexpensive, there are applications where program size is important. A project is described using a PDP 8 which demonstrates that significant programs can be written with a minimum of main memory.In learning to program, the students at many universities have access to a large central computer. For the most part, they can ignore time and space requirements in their programs. Usually this is a valid assumption since computing time is becoming less expensive; however, with the proliferation of minicomputers, there are many applications where space is at a premium, and the programmer must consider this limitation in his design.At the University of Maryland a Digital Equipment Corporation PDP 8 computer was made available to graduate students at the Computer Science Center. It was a minimum configuration of 4K 12 bit memory and a teletype. Students were forced to program for a machine with little main memory and no mass storage device. One such exercise, which demonstrated the amount of programming which can be accomplished in a small memory, will now be described.The PDP 8 memory is divided into 32 pages of 128 words each. By convention the top page is not used by any DEC software other than the binary loader, a program which is used to load all other software into the machine. This lead (sic) to the project of having students write debugging programs which fit into this top page. Since a locally written binary loader was written in 74 words, that meant 54 words were available in which the student had to write an interesting program.The results of that assignment clearly demonstrated that significant programs could be written in a minimum of space. Some of the programs which resulted were: a dump program which dumped core onto the teletype at 8 words per line, a modify program which displayed the contents of a memory location onto the teletype and enabled the user to change the contents of a location via the teletype, and a punch program which punched a paper tape of specified core segments in a format which enabled it to be reloaded by the binary loader at a later time. These programs, in a very crude manner, approximated the facilities available in the standard DEC debugging program ODT (1), however, each one was significantly shorter, and only took 10 seconds to load from a teletype - thus it was useful for debugging programs since no high speed I/O device was available.This example has some important consequences. While core is becoming less expensive, there are still applications where size is important. Instructors of programming courses should not completely lose sight of that fact. While one shouldn't stress size over all other considerations, the above exercise shows that small programs can do relatively powerful things, even on a relatively simple PDP 8 computer.
- Digital Equipment Corporation,
Introduction to Programming , 1970 pp7.51--7.54Google Scholar
Index Terms
(auto-classified)Space requirements for computer programs
Recommendations
Improving NAND endurance by dynamic program and erase scaling
HotStorage'13: Proceedings of the 5th USENIX conference on Hot Topics in Storage and File SystemsWe propose a new approach, called dynamic program and erase scaling (DPES), for improving the endurance of NAND flash memory. The DPES approach is based on our key finding that the NAND endurance is dependent on the erase voltage as well as the number ...
Lifetime improvement of NAND flash-based storage systems using dynamic program and erase scaling
FAST'14: Proceedings of the 12th USENIX conference on File and Storage TechnologiesThe cost-per-bit of NAND flash memory has been continuously improved by semiconductor process scaling and multi-leveling technologies (e.g., a 10 nm-node TLC device). However, the decreasing lifetime of NAND flash memory as a side effect of recent ...
A Data Flow Computer Architecture with Program and Token Memories
This paper presents a new data flow computer architecture using two types of memory: program memory and token memory. The program memory (PM) stores a data flow program or graph indicating data dependencies among instructions. The PM need not be changed ...






Comments