The Center for Research in Management Science (CRMS) at the University of California, Berkeley pioneered the use of computerized multiterminal, interactive simulation experiments for social science research. The system, referred to as the Management Science Laboratory, was conceived by Professor Austin Hoggatt. The original system was based on a PDP-5/PDP-8 system. An advanced APL-based version was designed and built during 1972–1976 by a team led by Mark Greenberg and Charles Grant. By January 1974 it could support one experimenter developing and running an experiment connected to multiple terminals. By 1976 the system was complete, with an easy-to-use interactive APL subsystem, and a multi-user time-shared operating system. The project was a technical success, making it possible to write experiments, debug them, run them, and analyze the results. It established the Management Science Laboratory as the prototype for experimentation in economics and behavioral science. However the lab failed to jell as a community of experimenters and supporting workers.
I was a member of the project during 1972, and this is my attempt to reconstruct the project history. Appendix 1 is an archive of scanned copies of surviving project-related documents and source code listings.
UC Berkeley professors Frederick Emory Balderston[MyMi2007] and Austin Curwood Hoggatt[Fr2009] were pioneers in the application of computer-based simulation in economics. Hoggatt's thesis[Ho1957] was said to be "the first thesis in the United States that used simulations with a human-to-computer interface." In 1962 the two published a monumental monograph[BaHo1962] on a (noninteractive) simulation of the lumber industry, which included 35 pages of FORTRAN II source code.
In 1964 Balderston and Hoggatt began planning the Management Science Laboratory. In a 1969 paper[HoEsWh1969] demonstrating its use, Hoggatt described it as follows:
"The Management Science Laboratory was conceived by faculty in the Center for Research in Management Science at the University of California at Berkeley as a facility for behavioral research. A facilities grant from the National Science Foundation was awarded to the Center, and an interest group was formed to design and construct a laboratory for experiments with human subjects in situations based on models from the behavioral disciplines.
Our thinking was guided by results from a prototype laboratory and by the emerging literature in experimental gaming. Two principal considerations were that the environment should not detract from the experiments and, whenever possible, automatic control should be substituted for human control over experimental variables. The use of a digital computer as the heart of the experimental control system would achieve the generality which was required. The design of the laboratory was given over to architects who consulted with the faculty, while the computer control system was designed by technicians coordinated by one faculty member."
The prototype Hoggatt mentioned was developed during an appointment as Research Professor in the Miller Institute for Basic Research in Science, 1960 to 1961. The lab as built occupied about 2800 square feet, and much of the space could be reconfigured with wall sections suspended from overhead tracks; it was usually set up with a cubicle for each experimental subject. There were connections for terminals (originally Model 33 Teletypes) and video cameras and monitors.
Hoggatt described the computer system:[HoEsWh1969]
“At the center is a time-shared PDP-5 with DECTAPES, IBM compatible tape, full-duplex teletype multiplexor, analog-digital digital-analog conversion, micro clock, voltage out (one shot) and sense channels and a memory-to-memory link to a PDP-8 computer. The PDP-5 is quiescent responding to a 100 millisecond interrupt to update its clock or to a demand for service from one of the devices which it serves. On demand the PDP-5 slavishly responds or transmits to a peripheral device or stores data. The PDP-8, which has extended arithmetic, operates on a variable quantum break of 10 milliseconds up to 100 milliseconds and can be tuned to match the environmental characteristics of any given experiment. Control over the experiment resides in the PDP-8 which can issue commands to the PDP-5 to send character strings or operate external devices. For example, in creating a log of the experiment the PDP-8 may select characters from the input string of a teletype, add control characters and the real clock time to the string and have the PDP-5 write this information on the DECTAPE.”
Hoggatt described in detail a duopoly experiment using the system in [Ho1969]. The computers were programmed using a language ECL/3 (Environmental Control Language, version 3) designed by A. Hoggatt, D. Steingart, J. Schlesinger, and J. Moore.[Mo1971]
Apparently the PDP-8 had been added to the system in 1967.[Ho1977] Even still, the combined PDP-5/8 system was small and slow. By 1970, there was interest in replacing the PDP-5/8 system with a more powerful computer system. Hoggatt had become an advocate of the APL programming language, which IBM had released for the System/360 in 1968.[FaIv1968] APL offered a concise, powerful notation that Hoggatt believed would be appropriate as a publication language for the models underlying the experiments and could be extended to handle files, multiple terminals and other devices within a single experiment program.
Two students who'd contributed to the software for the PDP-5/8 system, David S. Steingart from Computer Science and Jeffrey Moore from Business Administration, joined forces with Computer Science graduate student Rodnay Zaks to explore an APL implementation on a microprogrammable computer.[ZaStMo1971] The section of their paper entitled “A Time-Sharing System for Behavioral Science Experimentation” lays out extensive requirements for a system to be used for experimentation. Work was done on the APL implementation, but the system was not completed.[ZaStMo1971, Za1972]
By winter of 1971–1972 a larger project began to build a new computer system. The project was administered by Balderston, who chaired CRMS, and by the Laboratory Advisory Committee, which was chaired by Hoggatt. A press release by Balderston announcing the project noted:[Ba1972]
“The nucleus of the Staff Group for the computer-systems effort is headed by Mark L. Greenberg (PhD, Electrical Engineering and Computer Science, UC-Berkeley, 1971) and Jeffrey Moore (doctoral student in information science, Graduate School of Business Administration, UC-Berkeley).”
By April 1972, Charles A. Grant (also a 1971 Berkeley EECS PhD) returned from a post-doctoral fellowship and joined Greenberg as co-technical leader; Moore continued for a time as a consultant, and continued to supervise the existing PDP-5/8 system.[CRMS1972] One of the next hires was George Morrow[Ma2003] to work on hardware. Morrow had dropped out of high school, but returned to school in his late 20s, earning bachelor's and master's degrees, and entering the PhD program in mathematics at Berkeley. David Redell and I also joined the staff at this time. Redell was in the Computer Science Ph.D. program and I had just completed my B.S. in Engineering Mathematics; we had worked together on the recently-terminated CAL Timesharing System at Berkeley's Computer Center.[McRe2023]
Zaks' investigation used a Digital Scientific META4 Series 16 processor.[DSC70a, DSC71] This processor was originally designed to emulate an IBM 1130, but the read-only control store could be reprogrammed.[DSC1970b] META4s were also being used on campus in Professor Herbert Baskin's PRIME project,[BaBoRo1972] which Grant and Greenberg were familiar with.
Given the limited size of the control store, it was decided to use two META4s sharing a single main core memory. One processor would be dedicated to APL while the other processor executed a general-purpose instruction set as well as controllers for I/O devices. The general-purpose proceessor would run a timesharing system for program development, supervising the APL processor, etc. (Grant and Greenberg had sketched how a suitable microprocessor could be used to implement a CPU and I/O devices in a 1971 paper.[GraGre1971]) Perhaps to reassure Balderston and Hoggatt, the system programming language for the second machine was named SIMPLE. In addition to the two processors and shared memory, interfaces for serial lines[Mo1972], disks[Gre1972b], and tape drives were built. Computer Science Professor Martin Graham was on the Laboratory Advisory Committee, and consulted on a few electrical problems such as ground loops.[Gra2024]
The original plan was to use the APL microcode from Zaks' investigation. My initial assignment was to get it running, but I had problems understanding the design from its source code and limited documentation. I proposed to do a new design based on static rather than dynamic name localization, which would allow parsing at compile time rather than runtime. There would be a virtual machine with a set of instructions for a subset of a dialect of APL. There were a few other changes from standard APL:
My plan was approved, and I started to design. There was a preliminary machine specification by July [Mc1972b]; the microcode was complete, documented, and tested by February 1973.[Mc1973a, Mc1973b, Mc1973c] For the floating-point arithmetic, Redell introduced me to Professor William Kahan, already an authority on computer arithmetic.[Ha2005] Given that the projected users would not be numerical analysts, his recommendation was to implement decimal floating-point. I was concerned that this would occupy too much control store, so instead implemented 32-bit binary floating-point. I incorporated correct rounding using a “sticky bit” based on Kahan's lectures.[Mc1972a]
Since the SIMPLE machine wasn't running yet, cross-development was done on an SDS 940 computer running the Berkeley Timesharing System.[LaLiPi1966] There was an assembler for the META4 microcode, and also a simulator with debugging features (e.g., single-stepping and examining registers). We may have started out using the original Project Genie[WiCo2023] SDS 940 in Cory Hall, but we soon switched to the the machine belonging to Resource One, which was part of Project One, an intentional community in San Francisco.[WiCo2024]
I left the project after delivering the APL microcode, but I learned that when the microcode was installed in the hardware read-only memory (which involved manually peeling little foil squares from printed circuit boards), it worked the first time. See Appendix 3 for four changes that were made later.
In source code such as [Xx1974a] and [Xx1974b], the two machines were usually referred to as the AIPU and SIPU (IPU = Instruction Processing Unit). Grant designed and implemented the SIPU.
In early discussions, it was decided to build a message-based system, with support in the microcode for basic process scheduling and message sending. Rather than switching between user and supervisor mode, there would be a kernel process with extra privileges that would handle system activities that could not be handled in microcode. I/O devices would appear to software as regular processes, so there would not be an interrupt mechanism. An early working document by Redell described messages as being sent to a (process, port) pair and described fairly complicated mechanisms to be implemented in microcode.[Re1972a] A later working document described a much simpler mechanism for the microcode, but noted that it was sufficient to enable a trusted "kernel" process to implement flexible message channels.[ReMc1972] The microcode actually implemented included a basic process scheduler and a test-and-set instruction.[Gra2024]
APL processes communicated by sending messages to mailboxes, and multiple processes could queue up to wait for messages on a single mailbox.[GeeEtAl1974]). APL processes had no microcode support; multiplexing of the APL processor was performed by APL Runtime Services running on the SIPU, which could perform start and stop commands and access data structures in the shared memory.
The document “Writing Behavioral Experiments in CRMS APL: Programmer's Manual (Preliminary Version)” [GeeEtAl974] explained how an experiment program was organized and described the application programming interfaces. An experiment consisted of a set of cooperating processes: isolated instances of running programs. Each process was started by calling a function from the experiment program; there were no shared global or local variables. Each subject process had an attached terminal. A pair of mailboxes connected the experimenter's process with each subject process. A mailbox allowed one-way transmission of a sequence of APL objects (scalars, vectors, or matrices) between two endpoints. The endpoints could be processes, files, and timers. An experiment could include one or more robot processes. A robot process substituted for a terminal, and thus interacted with the corresponding subject process. The code to implement these facilities included the APL Runtime Supervisor [Xx1974b], which was written in SIMPLE, and also a set of library functions (as described in [GeeEtAl974]) written in APL.
Wiley Greiner wrote math functions for the APL library, I/O and IPC procedures, and also maintained the AIPU microcode.[Grei2024] Sheldon Linker wrote runtime library routines to achieve “full APL” based on the subset directly executed by the APL processor. He also worked on the graphics package, assisted in writing experiment programs, and helped run experiments.[Li2024]
A series of documents showed the evolution of the design for what we now call an Integrated Development Environment (IDE): it would combine editing, compiling, and debugging within a single command-line interface:
Appendix 4 lists the commands for the APL and SIMPLE language services.
No source code or documentation for the APL and SIMPLE compilers has been found. A brief document lists the APL syntax.[McJones1972d]
As mentioned previously, design and implementation began in 1972. In a departmental meeting on November 22 of that year, Balderston discussed the new system, saying that sometime in 1973 APL was expected to be running.[Ca1972] He also noted the new system would have the capacity to be used for general time-sharing (e.g., document preparation and general interactive use of APL) in addition to the behavioral experimentation which had been going on for almost a decade.
In July 1973, the CRMS annual report noted:[CRMS1973]
“During the academic year 1972-73, under the direction of Dr. Mark Greenberg and Dr. Charles Grant, the systems group completed the basic design for the APL-language-based Laboratory computer system. Most of the hardware-development work was completed, including a core-memory system, a disk-storage system, and a terminal-input/ output system. There was substantial software program development for the Laboratory design-system implementation language and the APL programming system. APL microcode, as operational, was implemented and tested. At year's end, there was a single-user operating system which supported the execution of programs.”
In January 1974, [GraGreRed1974] reported:
“The current system includes 64k 32-bit words of core memory, two 12-million-word disk units, one tape drive, and provisions for the connection of up to 64 terminals. ... As of January 1973, the hardware for the system was operational. Now, January 1974, the APL subsystem is operational and has been used to develop a prototype experiment. The simulated APL primitive functions, including mathematical routines, are mostly completed. The current version of the operating system supports only one experiment at a time. Preliminary versions of the editing and debugging facilities are available. Work in progress includes integration and polishing of an easy-to-use interactive APL subsystem, and design and implementation of a multi-user time-shared operating system.”
In July 1974, the CRMS annual report noted:[CRMS1974]
“During the academic year 1973-74, under the direction of Dr. Charles Grant and Dr. Mark Greenberg, the system group continued the hardware and software development of the new Laboratory system. The hardware development included the purchase and integration into the system of eighteen new hard-copy terminals [Diablo 630 "daisy wheel" devices], a magnetic-tape drive, and modem connections for remote use. Plans have been developed for a remote connection to the campus Computer Center's remote-job-entry system and [for] analog-to-digital-conversion interfaces. The selection process for purchase of graphic-display terminals is in advanced stage. Last, the existing hardware has continued to be improved and refined. The major software development was the implementation of a complete APL programming system, including a text editor, a program translator, and an execution and debugging facility. In particular, the APL system includes capability for specification of multiple-process and multiple-terminal experiments. Implementation of the system's programming language system was largely completed. An interim multi-user operating system was developed and successfully used. A major portion of the final time-shared operating system has been designed, coded, and debugged. Since the spring of 1974, the APL-language system has been in use by members of the Laboratory community for development of running of experiments.”
That report also mentioned that oligopoly and macroeconomic game programs had been converted from the PDP-5/8 system to the new system in order both to check out the new system and also to support a development effort in classroom use. At this point, the PDP-5/8 system was largely phased out.
In July 1975, the CRMS Annual Report noted:[CRMS1975]
“The Management and Behavioral Sciences Laboratory's new computer-controlled experimentation system continued under development and became available for a number of research uses during 1974-75.
...
Under the direction of Dr. Charles Grant and Dr. Mark Greenberg, the Phase II operating system became operational in the Laboratory, providing multi-programming capability in APL. Numerous experiments and exercises were run in the Laboratory in tandem with the systems development. This was difficult because of frequent system changes, but the experience gained from the year's usage was crucial to the research progress of the faculty members and advanced graduate students and was, at the same time, important for the process of testing and strengthening of the system's software.
The Laboratory's editing system, RUNOFF, was successfully used for program documentation and also for preparation of a number of technical reports under automatic control, fulfilling one of the objectives of our original proposal and providing a very useful facility for a variety of uses.
Equipment acquisition under the grant was completed with the decisions to purchase a RAMTEK visual display terminal controller, twelve monitor units, light pens, and keyboards. With the building of necessary interfaces for these and the incorporation of system software for them into the operating system in summer and fall of 1975, the full range of capabilities of the Laboratory, as planned in the development grant, will be completed.”
The final report of the 1971–1976 Laboratory Development grant described the system as:[BaEtAl1977, Appendix C]
“[a] time-sharing system based on two microprogrammable META4 computers, with a shared core memory of 120,000 32-bit words, two disks having storage capacity totaling 24 million words, a magnetic-tape unit for backup and data preparation, a link to the Berkeley Campus CDC 6400 computer; modems for linking users and other systems outside the laboratory; eighteen hard-copy terminals, and a CRT display system consisting of twelve CRT screens with keyboard and light-pen and RAMTEK support unit.”
The report noted: “All original major objectives for the computing system have been accomplished.” Peter Blatman, who had previously used APL\360 extensively, did a fair amount of APL programming on the system (see Usage, below) and found it to be quite usable, with the feel of “real APL.”[Bl2024]
In 1977 a new research proposal was submitted to NSF by Balderston and Hoggatt.[BaEtAl1977] In addition to carrying out a series of experiments, there were plans to make some extensions to the interprocess communication mechanisms (including allowing remote access by experimental subjects) and to add some graphics display equipment for monitoring and control. It appears that this proposal was not funded.[Gra2024]
The system was shut down by the late 1970s. Hoggatt lamented:[ArEtAl1992]
“After spending large sums of NSF money to capitalize this facility, the University of California, Berkeley scrapped it for want of funds to pay for maintenance.”
The difficulty of conceiving, developing, and carrying out a computer-based economics or social sciences experiment, especially with the technology of the 1960s and 1970s, seems to have limited the number of such experiments actually carried out. The following sections summarize what I've been able to discover, first about experimental usage of the CRMS APL system, and second about other usage.
• Professor Mark Garman was interested in the impact of structural alternatives of asset markets upon “the general social welfare” -- efficiency, fairness, etc. His approach, described in the first of a multipart report “Laboratory Studies in Asset Trading”[Ga1973a, b, c, d, e], involved empirical studies, laboratory studies, theoretical studies, and simulation studies. As a basis for the laboratory studies, he began the Trading Floor/1 project in 1971, using the PDP 5/8 system. With three research assistants he built a detailed simulation of an automated securities exchange.[Ga1969, 1972] It defined roles for customers, brokers, and specialists. In 1974 the simulation was rewritten for the APL system, resulting in Trading Floor/2.[Ga1975a, b, c] The more powerful computer system allowed various improvements. In particular, the companies being traded could now play an active role: under appropriate circumstances, they could “enter the auctions to float new equity issues at the going market prices.” In a 1977 paper “On the Uses of Computers for Experimental Control and Data Acquisition”, Hoggatt noted:Ho1977, page 359]
“Professor Mark Garman studies the role played by trading 'specialists' in the New York Stock Exchange. For that purpose the control program specifies the trading rules used on the NYSE and keeps the books for traders, specialists, and other actors. One finding is that specialists, because they are rewarded with money for keeping an 'orderly market in a particular stock,' are sometimes thought of as unnecessary parasites by the trading public. When we remove them from the experimental market it gets thin, and trading creeps to a halt. We have not yet identified the necessary function they perform in 'making a market,' but the NYSE as it moves toward an automatic exchange had better consider how to provide that function or else the members of the NYSE may wonder as the volume of trading falls.”
• Professor Hayne Leland studied the market in leases for off-shore oil. The 1974-1975 CRMS Annual Report[CRMS1975] noted: "Peter Blatman ... prepared a large simulation of oil-lease bidding which is to test the capability of the META to handle 150 subjects concurrently in a single simulating episode". In his 1977 paper on usage, Hoggatt reported:[Ho1977, pages 359-360]
“Professor Hayne Leland is studying the market in leases for off-shore oil. Recently 150 players were endowed with money, information, and the chance to explore and bid on some off-shore tracts with an uncertain yield of oil. A tentative result: the government captures most of the value of the oil in the ground (winning bids cluster near the net yield values for each tract), and the bidders go broke buying information which has zero value as soon as the bids are opened.”
A 1977 conference paper summarized:[HoLeBl1977]
“A powerful APL language laboratory control system was developed in order to facilitate man-machine simulations and behavioral experiments. This sytem was at first exploited for teaching and research, and it is desired to bring its capabilities to the attention of the academic community. Its use is illustrated by discussing the play of an oil lease bidding exercise which involved 151 actors over a several day period of intensive participation.”
• Shlomo Gill, a Ph.D. student under Hoggatt, carried out an organization theory experiment during 1975,[CRMS1975] publishing his thesis in 1976.[Gi1976] In his 1977 paper on usage, Hoggatt reported:[Ho1977, page 361] “After the data were collected on one subject the initial analysis was in hand within hours. As the thesis was written, the text was input on the computer. When the full Ph.D. committee agreed that it was done, text editing programs produced in half a day a ribbon copy of the thesis acceptable to the registrar of the university.”
• Hoggatt, Herman Brandstätter, and Peter Blatman investigated the influence of ‘robots’ as participants in bargaining experiments. The abstract to their 1978 paper gives an overview:
“Experimental studies of Harsanyi-Selten bargaining under uncertainty have been extended to include robots which were based on frequency analysis of the play of student subjects. Logit analysis is employed to measure a second generation of robots based on play among businessmen, university administrators, and first generation robots. These more advanced robots are employed in the study of the implications of the play of human subjects in the extensive form of the game. We have extended the study of the situation defined by Turing in the ‘imitation game’ by adding to the question ‘is the robot player detectable?’ the additional question, ‘Does the presence of a robot player effect the play of the game?’ We have a marginal ‘no’ answer to the first question and a strong ‘no’ answer to the second question. The study of the experimental results is further extended by computer simulation of the play of the second generation robots.”
The system, programmed by Blatman in 1976, is described in [BlBrHo1977].
• In the 1977 NSF research proposal, Balderston described a potential experiment based on work already completed:[BaEtAl1977, page 12]
“There is already in the program library of the Management and Behavioral Sciences Laboratory an interactive model for financial planning of a savings-and-loan association, developed by Clifford Olsen in fulfillment of a requirement for a master's degree. It is quite likely that this model can be revised to become a building block in an experiment involving interaction between a regulator and a set of savings institutions.”
• Also in the 1977 NSF research proposal, Balderston described a system based on his research on University Administration:[BaEtAl1977, page 13]
“One tool developed with the support of the Ford Foundation Program by George Weathersby, Jeffrey Moore and me was a multiple decision-center exercise, ‘Little University.’ After the new Laboratory computer system was operational, this program was revised and rewritten in CRMS/APL. It has been used with a wide variety of student groups, business executives, and educational administrators.”
• In the 1977-1978 Annual Report, Balderston noted:[CRMS1978]
“A model of regulatory interaction with energy-using firms was programmed for experimentation in the Management and Behavioral Sciences Laboratory. During 1977-78, two Business Administration class groups and three groups of energy-policy professionals participated in laboratory sessions to make energy-policy decisions under different simulated policy restrictions. Direct rationing proved to be easier for the regulators to administer but produced greater hostility on the part of the managers of regulated firms and greater distortion of production patterns than occurred when price incentives were employed by the regulators.”
In addition to the game-style experiments that had been the original motivation for the Laboratory and its computer systems, usage of the APL system was extended to simulations, classroom teaching, and general-purpose time-sharing. For example, Hoggatt's activities for the summer of 1975 included:[CRMS1975]
“Development of working groups in the Schools of Business Administration which will utilize the META system in an experimental program to support classes in microeconomics via extensions to oligopoly games, in macroeconomics via extensions to EQUILIBRIA and developing exercises for use in teaching macroeconomics, in quantitative methods by preparing materials for a year-long sequence in quantitative methods for graduate and undergraduate instruction. This experimental course is scheduled for Fall 1975. This work is a continuation and expansion of the work begun in previous years. Research in experimental economics has been deferred in order that full time could be devoted to this development, which is a necessary condition to placing a firm financial base under the Laboratory. Professor Hoggatt has plans to redirect his attention to experimentation soon.”
An early classroom project took place in 1975, in the Computer Science department: Masters student Peter Blatman used the APL system to perform cluster analysis of objects for robot path planning.[KiBl1975] His report includes a listing of the APL source code.
Blatman transferred from the Computer Science Department to Business Administration, and programmed several of the experiments mentioned above. His MBA thesis gave an implementation and performance analysis of a data encryption algorithm, again with full source code included.[Bl1978]
Economists began incorporating experiments with human subjects into their research by the late 1940s. The approach grew in popularity through the 1950s. For example, Hoggatt described a paper-and-pencil version of an oligopoly experiment in [Ho1959]. Hoggatt's experimental work and his familiarity with computers led him much further. As Andrej Svorenčík observed:[Sv2023]
“The first computerized laboratory for controlled experimentation in economics was Austin Hoggatt’s Management Science Laboratory at Berkeley in the 1960s. From the beginning, it was trailblazing in its use of computer technology to improve and exercise experimental control at a time when just a few economists worldwide were conducting pen- and-paper-style economics experiments. Although Hoggatt’s overreliance on technology failed to create a lasting community, it made a lasting impression on other early experimental economists and informed their choices on how to organize their laboratories both as a physical space but also as a communal place.”
Later laboratories founded in the 1980s by Charles Plott at Caltech and by future Nobel Prize winners Vernon Smith at the University of Arizona and Reinhard Selten at Bonn (both of whom were familiar with Hoggatt's lab) each managed to establish a community of researchers and others who could sustain a practice of computer-based experimental economics. Nowadays a well-known software package called the Zurich Toolbox for Readymade Economic Experiments (z-Tree) makes it fairly straightforward to develop and carry out economic experiments on a network of Windows laptops.[zT2024]
Morrow went on to found Thinker Toys and Morrow Designs, and was one of the people who standardized the S-100 bus used in many early microcomputers. Grant and Greenberg founded North Star Computers. Zaks founded Sybex, a publisher of books on computer programming. Moore received his PhD in business and spent the rest of his career at Stanford. Redell completed his PhD in computer science and became an assistant professor at MIT. In two years he returned to the Bay Area, working successively at Xerox, DEC Systems Research Center, AgileTV, and Google. I worked at a small software house named Virtual Memory Systems, then IBM San Jose Research, Xerox, Tandem, DEC Systems Research Center, E.piphany, AgileTV, and Adobe.
During the years of development from 1972 through 1975 or 1976, Moore's Law—the doubling of the number of transistors in integrated circuits every two years—was just beginning to have an effect. But there was already a sea change: the small integrated circuits and core memory used in the META4 hardware were being replaced by large integrated circuits: single-chip microprocessors and dynamic RAM chips—the very components that Morrow, Grant, and Greenberg would be using in their subsequent companies. But the CRMS software wasn't written in a portable fashion, so the system quickly became obsolete. In contrast, at about the same time the UNIX operating system was being rewritten in the programming language C, allowing it to be ported to an amazing variety of computers, persisting to the present day.
On a personal level, Balderston and Hoggatt played complementary roles, with Hoggatt focussing on detailed requirements and technical approaches and Balderston securing institutional support. Both believed strongly in the Laboratory, incorporated it into their personal research agendas, and were eager to spread the ideas.
The original CRMS APL system was done as part of a Systems Development effort under National Science Foundation Grant GS-32138. Additional work was done under Grant SOC75 -08177.
Dave Redell shared recollections, a number of documents, and the two SIMPLE source code listings. Chuck Grant shared recollections and assisted with research at the Bancroft Library. Sheldon Linker and Wiley Greiner shared recollections [and Greiner shared a number of documents???]. Peter Blatman shared recollections and two documents. In addition to his publications, Andrej Svorenčík shared page images of [BaEtAl1977].
(Garman was assisted by Robert Gray, Michael Megas, George Morrow, and Jeffrey Moore.)
These are in addition to people mentioned previously: Paul Gee (APL subsystem[Gra2024]), James L. Harp (operating system for the SIPU[Ha2024]), Ross Harrower (I/O interface hardware[Gra2024]), David Koch, Paul Glassco, and Leon Goldberg (lab manager and some application programs).
Over the life of the system, four changes (noted in pencil on the listing) were made to the AIPU microcode, which I'd debugged on the simulator before leaving the project in January 1973:
The following two tables were extracted from the source code for the SIMPLE Interactive Language System and the APL Runtime Supervisor, respectively.
NP | NEW PROGRAM |
SP | SELECT PROGRAM |
CP | COMPILE PROGRAM |
DP | DELETE PROGRAM |
ET | ENTER TEXT |
MT | MODIFY SINGLE LINE IN TEXT BUFFER |
TT | TYPE CONTENTS OF TEXT BUFFER |
AF | APPEND FUNCTION FROM TEXT BUFFER |
AT | APPEND TEXT |
IT | INSERT TEXT |
DT | DELETE TEXT |
RT | REPLACE TEXT |
LT | LOAD TEXT |
MV | MOVE POINTER |
RF | READ FUNCTIONS |
ST | DUMP SYMBOL-TABLE ENTRY |
SR | SELECT RUNTIME LIBRARY |
RS | RECOVER STATE |
PC | PRINT CODE [and line-table entry] |
SB | SET BREAKPOINT |
CB | CLEAR BREAKPOINT |
PD | PRINT DATA |
SD | STORE DATA |
DS | DISPLAY STACK |
DO | DO FUNCTION [start debuggee process] |
GO | GO COMMAND [start debuggee process] |
PV | PRINT VARIABLE |
IN | IN [set function activation context] |
WH | WHERE [print current location?] |
PS | PRINT SEGMENT |
EX | EXIT FROM LANGUAGE SYSTEM |
SP | SELECT PROGRAM |
SR | SELECT RUNTIME |
SB | SET BREAKPOINT |
CB | CLEAR BREAKPOINT |
DO | DO FUNCTION [start debuggee process] |
GO | GO COMMAND [start debuggee process] |
PC | PRINT CODE [and line-table entry] |
ST | DUMP SYMBOL-TABLE ENTRY |
EX | EXIT FROM LANGUAGE SYSTEM |
PV | PRINT VARIABLE |
DB | DEBUG SPECIFIED PROCESS |
SZ | SET SIZES [array block storage, stack] |