History of CRMS APL

Paul McJones
paul@mcjones.org

Draft of 20 Dec 2024

Abstract

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.

Introduction

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.

Management Science Laboratory

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.

Floor plan of Management Science Laboratory
FIGURE 1. FLOOR PLAN OF THE MANAGEMENT SCIENCE LABORATORY.
From [HoEsWh1969].

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.”

CRMS PDP-5/PDP-8 circa 1972
CRMS PDP-5/PDP-8 circa 1972. Photo by Paul McJones.

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]

Transition to APL

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]

CRMS APL project

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]

Hardware

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]

CRMS PDP-5/PDP-8 circa 1972
CRMS META4 system circa 1973. Photo by Paul McJones.

Microcode

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.

SIPU operating system

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.

APL Runtime Services

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]

Language Services

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]

Development progress

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.”

Usage

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.

Experiments

• 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.”
Recruiting subjects, May 1974
Trading Floor recruiting poster, May 1974. Courtesy Mark Garman.

• 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.”

Other uses

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]

Impact

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]

Afterword

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.

Reflections

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.

References

[ArEtAl1992]
Michel Araten, et al. The Winter Simulation Conference: Perspectives of the Founding Fathers. In Proceedings of the 24th conference on Winter simulation (WSC '92). Association for Computing Machinery, pages 37–62. ACM Digital Library
[BaHo1962]
Frederick E. Balderston and Austin Curwood Hoggatt. Simulation of Market Processes. Berkeley: Institute of Business and Economic Research, University of California, 1962. babel.hathitrust.org
[Ba1972]
Frederick Balderston. Press Release. bus ad bulletin, Schools of Business Adminiatration.Volume 7, Number 4, 26 January 1972. Records of the School of Business Administration, University of California Berkeley, CU-29, Carton 2.
[BaEtAl1977]
Frederick E. Balderston, Lawrence L. Vance, and August Manza. "Control Organizations" and Their Interactions vith Operating Entities: An Experimental Investigation. Research Proposal submitted to the National Science Foundation, 24 March 1977. Box 48, Martin Shubik Papers, David M. Rubenstein Rare Book & Manuscript Library, Duke University.
[BaBoRol1972]
Herbert B. Baskin, Barry R. Borgerson, and Roger Roberts. PRIME: a modular architecture for terminal-oriented systems. In Proceedings of the May 16-18, 1972, Spring Joint Computer Conference (AFIPS '72 (Spring)). Association for Computing Machinery, New York, NY, USA, pages 431–437. ACM Digital Library
[BlBrHo1977]
P. Blatman, H. Brandstätter, and A.C. Hoggatt. Operations Manual for the Brandstatter Bargaining Game. Center for Research in Management Science, Berkeley, Cal.: University of California, 1977.
[Bl2024]
Peter J. Blatman, personal communication, 6 October 2024.
[Ca1972]
James M. Carman, presiding. Departmental Luncheon. 22 November 1972. Records of the School of Business Administration, University of California Berkeley, CU-29, Carton 2.
[CRMS1972]
Center for Research in Management Science. Annual Report, 1971-72. Records of the School of Business Administration, University of California Berkeley, CU-29, Carton 8.
[CRMS1973]
Center for Research in Management Science. Annual Report, 1972-73. Records of the School of Business Administration, University of California Berkeley, CU-29, Carton 8.
[CRMS1974]
Center for Research in Management Science. Annual Report, 1973-74. Bancroft Library, University Archives (308m.B814.ar).
[CRMS1975]
Center for Research in Management Science. Annual Report, 1974-75. Bancroft Library, University Archives (308m.B814.ar).
[CRMS1978]
Center for Research in Management Science. Annual Report, 1977-78. Bancroft Library, University Archives (308m.B814.ar).
[DSC1970a]
Digital Scientific Corporation. The META4 Series 16 Computer System: Preliminary System Manual. Publication No. 7006MO, June 1970. PDF at bitsavers.org
[DSC1970b]
Digital Scientific Corporation. The META4 Series 16 Computer System Read-Only Memory (ROM) Reference Manual. Publication No. 7024MO, March 1970. PDF at bitsavers.org
[DSC1971]
Digital Scientific Corporation. The META4 Series 16 Computer System: System Manual. Publication No. 7032MO, May 1971. Supersedes Publication No. 7006MO. PDF at bitsavers.org
[FaIv1968]
A. D. Falkoff and K. E. Iverson. APL\360 User's Manual. IBM Corporation, August 1968. bitsavers.org
[Fr2009]
Ute Frey, In Memoriam: Austin Hoggatt 1929 – 2009. senate.universityofcalifornia.edu
[Gi1976]
Shlomo Gill. Experiments in the economic theory of teams. Ph.D. dissertation, University of California, Berkeley, 1976.
[GraGre1971]
Charles A. Grant and Mark L. Greenberg. The Uses of a Microprocessor in an Interactive Computing System. 4th Hawaii International Conference on System Sciences, January 12-14, 1971. 19710100-cag_mlg-uses_of_a_microprocessor
[GraGreRe1974]
Charles A. Grant, Mark L. Greenberg, and David D. Redell. A computer system providing microcoded APL.
[Gra2024]
Charles A. Grant. Personal communication, 18 September and 5 October 2024.
[Grei2024]
Wiley Greiner. Personal communication, 7 and 15 October 2024.
[Ha2005]
Thomas Haigh. Oral history interview of William Kahan, 5 - 8 August, 2005, Berkeley, California. Society for Industrial and Applied Mathematics, Philadelphia, PA. history.siam.org
[Ha2024]
James L. Harp. Personal communication, 12 June 2024.
[Ho1957]
Austin Curwood Hoggatt. Simulation of the Firm. PhD thesis, University of Minnesota, 1957. primo.lib.umn.edu
[Ho1959]
Austin C . Hoggatt. An Experimental Business Game. Behavioral Science, Volume 4, Number 3, July 1959, pages 199-203. Wiley Online Library / Academia.edu
[HoEsWh1969]
Austin C. Hoggatt, Joseph Esherick and John T. Wheeler. A Laboratory to Facilitate Computer-Controlled Behavioral Experiments. Administrative Science Quarterly, Volume 14, Number 2, June 1969, pages 202–207. JSTOR / CRMS Report
[Ho1969]
A. C. Hoggatt. Response of Paid Student Subjects to Differential Behaviour of Robots in Bifurcated Duopoly Games. The Review of Economic Studies, Volume 36, Number 4, October 1969, pages 417-432. Oxford Academic
[Ho1973a]
Austin Curwood Hoggatt, editor. Proceedings of the 1973 Winter Simulation Conference. Sponsored by ACM/AIEE/SHARE/SCi/TIMS, January 1973. files.eric.ed.gov / ACM Digital Library
[Ho1973b]
Austin Curwood Hogatt, chairman. Night in a Berkeley Laboratory. Announcement of a special evening session in Hoggatt's Management Science Laboratory. In [Ho1973a], page 715. ACM Digital Library (open access)
[HoGrMo1973]
Austin Hoggatt, Mark Greenberg, and Jeffrey Moore. A Micro-Programmed APL Language Laboratory Control System. (Abstract only) Included in [Ho1973b]. ACM Digital Library (open access)
[Ho1977]
Austin Curwood Hoggatt. On the Uses of Computers for Experimental Control and Data Acquisition. American Behavioral Scientist , Volume 20, Issue 3, January/February 1977, pages 347-365. Sage Journals
[HoLeBl1977]
A. Hoggatt, H. Leland, and P. Blatman. Man-Machine Simulation in the Study of Individual and Group Behavior. In Supplement to the Proc. Tenth Hawaii Intl. Symposium on General Systems, Western Periodicals Co., N. Hollywood, Calif, January 1977.
[HoBrBl1978]
Austin C. Hoggatt, Herman Brandstätter, and Peter Blatman. Robots as instrumental functions in the study of bargaining behavior. In Bargaining behavior. Edited by Heinz Sauermann, 1978. Tübingen. PsychArchives
[LaLiPi1966]
B. W. Lampson, W. W. Lichtenberger and M. W. Pirtle. A user machine in a time-sharing system. in Proceedings of the IEEE, Volume 54, Number 12, pages 1766–1774, Deccember 1966. IEEE Xplore / bwlampson.site
[Li2024]
Sheldon Linker. Personal communication, 3 June and 5 October 2024.
[Ma2003]
John Markoff. George Morrow, a Personal Computer Visionary, Dies at 69. The New York Times, 9 May 2003, page A29. nytimes.com
[McRe2023]
Paul McJones and David Redell. History of the CAL Timesharing System. IEEE Annals of the History of Computing, Volume 45, Issue 3, July-September 2023, pages 80-91. IEEE Xplore
[Mo1971]
Jeffrey Moore. ECL/3, The Environmental Control Language of the Management and Behavioral Sciences Laboratory Time-Sharing System. Research Report LR-15, Center for Research in Management Science, University of California, 1971.
[MyMi2007]
John G. Myers and Raymond E. Miles. In Memoriam: Frederick E. Balderston 1923 – 2007. senate.universityofcalifornia.edu
[Sa2016]
Kay Savetz. Rodnay Zaks, Founder of Sybex Books — interview. YouTube, audio recording, 14 October 2016. YouTube.com
[Sv2015]
Andrej Svorenčík. The Experimental Turn in Economics: A History of Experimental Economics (January 30, 2015). University of Utrecht: Utrecht School of Economics Dissertation Series #29. ssrn.com
[Sv2023]
Andrej Svorenčík. The Role of Computers in the Emergence of Experimental Economics Laboratories: Material Culture and Moral Economy. Œconomia History, Methodology, Philosophy 13-3, 2023. journals.openeditions.org
[WiCo2023]
Wikipedia Contributors. Project Genie. Wikipedia, The Free Encyclopedia, last revised 27 March 2023 19:13 UTC. en.wikipedia.org
[WiCo2024]
Wikipedia Contributors. Project One (San Francisco). Wikipedia, The Free Encyclopedia, last revised 21 February 2024 20:57 UTC. en.wikipedia.org
[ZaStMo1971]
Rodnay Zaks, David Steingart, and Jeffrey Moore. A firmware APL time-sharing system. Proceedings of the May 18-20, 1971, Spring Joint Computer Conference (AFIPS '71 (Spring)). Association for Computing Machinery, pages 179–190. ACM Digital Library
[Za1972]
Rodnay Zaks. A Microprogrammed APL Implementation. Ph.D. thesis, University of California, Berkeley, June 1972. Published under the same title by Sybex, 1978.
[zT2024]
Zurich Toolbox for Readymade Economic Experiments. Universität Zürich. ztree.uzh.ch

Acknowledgements

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].

Appendix 1: Archived documents and source listings

[I plan to offer the original items to the Computer History Museum.]

Hardware

[Mo1972]
George Morrow. Serial Line Input/Output System. Systems Group, Center for Research in Management Science, 24 July 1972. 19720724-gcm-serial_line_io
[Gre1972b]
Mark L. Greenberg. Disk Interface and Controller Reference Manual. Technical Document, Systems Group, Center for Research in Management Science, 12 July 1972. 19720712-mlg-disk_io

Microcode

Documents

[Gra197x]
Charles Grant? SIMPLE Instruction Processing Unit Reference Manual. Cited by [19730726-mlg-simple_lang_ref] but no known copy.
[Mc1972a]
Paul McJones. Meta APL Floating-Point Arithmetic. 13 June 1972. Design notes. 19720613-prm-meta_apl_floating_point_arith
[Mc1972b]
Paul McJones. Preliminary Reference Manual for the CRMS System APL Processor. Technical Document, Systems Group, Center for Research in Management Science, 12 July 1972. 19720712-prm-prelim_crms_apl_proc_ref
[Mc1973c]
Paul McJones. CRMS APL Processor Reference Manual. Technical Document, Systems Group, Center for Research in Management Science, 2 February 1973. 19730202-prm-crms_apl_processor_ref

Source code

[Mc1973a]
Paul McJones. APL\META4 Microcode. Digital Scientifc META 4 Series 16 assembly language. 28 January 1973. See also Appendix 3. 19730128-prm-crms_apl_proc_microcode
[Mc1973b]
Paul McJones. Test programs for CRMS APL Processor. NARP assembler for SDS-940. 18 December 1972; revised 8 January 1973. MACAPL: MACRO package for META-APL assemblies, facilitating creating programs to be executed by the CRMS APL Processor; TPFACT: Recursive factorial function; TPIDX: Exercise various index-related operations; TPREF: Exercise memory references; TPARITH: Exercise arithmetic. 19730128-prm-crms_apl_proc_tests

Software

Documents

[Re1972a]
David Redell. Interprocess Communication. Working Document, 20 July 1972. 19720720-ddr-interprocess_communication
[Re1972b]
David Redell. CRMS APL/SIMPLE Integrated Language Processing System: Design Considerations. 22 July 1972. 19720722-ddr-integrated_lang_sys
[Gre1973]
Mark Greenberg. SIMPLE Language Specification Reference Manual. Technical Document R1, Systems Groups, Center for Research in Management Science. 26 July 1973; revised 5 September 1973. 19730726-mlg-simple_lang_ref
[Xx197xa]
?. SIMPLE Interactive Language System Reference Manual. Cited by [19730726-mlg-simple_lang_ref] but no known copy. However see Language Services.
[Mc1972d]
Paul McJones. CRMS APL Syntax. 30 October 1972. 19721030-prm-crms-apl-syntax
[ReMc1972]
David Redell and Paul McJones. CRMS Process Synchronization Mechanism. 11 November 1972. 19721111-ddr_prm-crms_process_sync
[Re1972c]
David Redell. Language System: Interim Command Language. 5 December 1972. 19721205-ddr-lang_sys_interim_cmd_lang
[Re1973a]
David Redell. Preliminary Language System User Manual. 2 February 1973. 19730202-ddr-lang_sys_prelim_cmd_lang
[Re1973c]
David Redell. External and internal character codes. 13 September 1973. (Exernal character codes were ASCII; internal codes were "rotated ASCII": (code-32) mod 128.) 19730913-ddr-char_codes
[GeeEtAl1974]
Paul Gee, Wiley Greiner, Sheldon Linker, and David Redell. Writing Behavioral Experiments in CRMS APL: Programmer's Manual (Preliminary Version). Technical Document, Systems Group, Technical Document Center for Research in Management Science, University of California, Berkeley. July 15, 1974. 19740715-gee_et_al-writing_behavioral_experiments

Source code

[Xx1974a]
?. SIMPLE Interactive Language System source. SIMPLE source code. Undated, circa 1974. 1974000-xxx-simple_language_system_source
[Xx1974b]
?. APL Runtime Supervisor source. SIMPLE source code. Undated, circa 1974. 19740000-xxx-apl_runtime_supervisor_source
[Re1973b]
Dave Redell. Inverse Bowling Problem. SIMPLE source code for problem posed by Perlis and solved by Dijkstra at 1973 NATO Summer School at Marktoberdorf. 11 September 1973. 19730911-ddr-inverse_bowling_simple

Applications

Mark B. Garman

(Garman was assisted by Robert Gray, Michael Megas, George Morrow, and Jeffrey Moore.)

[Ga1969]
[Mark B. Garman.] Experimental Stock Market Instructions. 20 August 1969. An early sketch of what became Trading Floor/1. 19690820-mbg-experimental_stock_market_instructions
[Ga1972]
Mark B. Garman. Trading Floor/1: A Prototype of an Automated Securities Exchange. Institute of Business and Economic Research, Working Paper No. 7, Graduate School of Business Administration, University of California, Berkeley, July 1972. PDF / digicoll.lib.berkeley.edu (pdf page 113)
[Ga1973a]
Mark B. Garman. Laboratory Studies in Asset Trading: Part I--A Program of Research. August 1973. 197308xx-mbg-lab_studies_in_asset_trading_part_i
[Ga1973b]
Mark B. Garman. Laboratory Studies in Asset Trading: Part II--Supply and Demand in Stochastic Markets. August 1973. 197308xx-mbg-lab_studies_in_asset_trading_part_ii
[Ga1973c]
Mark B. Garman. Laboratory Studies in Asset Trading: Part III--Stochastic Market Structures. August 1973. 197308xx-mbg-lab_studies_in_asset_trading_part_iii
[Ga1973d]
Mark B. Garman. Laboratory Studies in Asset Trading: Part IV--Monte Carlo Experimentation with the Pure Double-Auction Market Model. September 1973. 197309xx-mbg-lab_studies_in_asset_trading_part_iv
[Ga1973e]
Mark B. Garman. Laboratory Studies in Asset Trading: Part V--Market Performance Measures. September 1973. 197309xx-mbg-lab_studies_in_asset_trading_part_v
[Ga1975a]
Mark B. Garman. A Description of an Experimental Securities Exchange. Working Paper CP-372, Center for Research in Management Science, University of California, Berkeley. March 1975; revised October 1975. 19751001-mbg-experimental_securities_exchange
[Ga1975b]
[Mark B. Garman.] CLAIMS - Experimenter Documentation. Circa 1975? 1975xxxx-mbg-claims_experimenter_documentation
[Ga1975c]
[Mark B. Garman.] CLAIMS Experiment Instruction Manual. Circa 1975? 1975xxxx-mbg-claims_experiment_instruction_manual

Peter J. Blatman

[KiBl1975]
Diana Templeton Killen and Peter John Blatman. A Report on Environment Modeling and Model Pre-Processing for Jason, the Berkeley Robot. Report, C.S. 282H, Department of Electrical Engineering and Computer Science, University of California, Berkeley, Winter 1975. 19750000-dtk_pjb-robot_modeling.pdf
[Bl1978]
Peter John Blatman. A Feasability Study of a Data Encryption Algorithm for Use in an Electronic Funds Transfer System. Master's thesis, Graduate School of Business Administration, University of California, Berkeley, 12 June 1978. 19780612-pjb-study_of_data_encryption_algorithm
 
 

Appendix 2: Additional people who worked on the project

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).

Appendix 3: Errors in AIPU microcode

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:

“Bug 1” (page 76)
If the APL processor was started up with an incorrectly formatted heap (a free list that loops back to its middle rather than to the starting point), it could loop forever, requiring a power reset to clear it. To deal with this, a counter was added to the code that searched the free storage list, so it would stop after 2^16 iterations.
“Bug 2” (page 14)
The wrong error number was generated for a particular error condition detected when the processor started up on a new APL process.
“Bug 3” (page 31)
The ACOPY function failed to generate a trap if given the address of a variable with an “undefined” value.
“Bug 4” (page 24)
When the reference count of a block of memory is decremented and becomes zero, it shouldn’t actually be written back to memory as a zero, since the FREE routine might trap for some reason. (The AIPU’s model is that if a trap occurs, the state must remain as it was at the beginning of the current instruction, to make it easy to restart after the trap is handled.)

Appendix 4: Language system commands

The following two tables were extracted from the source code for the SIMPLE Interactive Language System and the APL Runtime Supervisor, respectively.


SIMPLE Language System commands (from [Xx1974a])
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
APL Language System commands (from [Xx1974b])
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]