Back to main page

CDC Schoonschip code


In the early 1960's, computers were still large mainframes, but their computational powers were rapidly advancing. This was also a time of rapid developments in theoretical high energy physics. In particular, much of the work leading to the Standard Model of particle physics was going on at this time. One practical difficulty, though, was the amount of calculations some of the problems required, especially when evaluation loop computations for Feynman diagrams.

At this time, Martinus J. G. Veltman started thinking of how to harness the power of these new computers to assist with these long and tedious physics calculations. Some of these ideas came together in discussions with Michael Levine in the CERN cafeteria terrace in 1963 and with Anthony Hearn at SLAC that same year.

Out of these discussions, Veltman wrote SCHOONSCHIP in assembler for the IBM 7090, while Levine came up with ASHMEDAI in Fortran and Hearn wrote REDUCE in LISP. This groundbreaking work established the framework for computer algebra systems, which are of great importance today in many fields from pure math to business and industry.

The first version of Schoonschip ran in 1963 on the IBM 7090. Then in 1965 CERN acquired a CDC 6600 (preproduction serial number 3 with accompanying growing pains) that had about 10 times the processing power of the IBM 7090. In 1965, Veltman rewrote Schoonschip in CDC 6600 assembly, and for many years that was the standard and perhaps best known version of Schoonschip. CDC Schoonschip was cataloged in the CERN program library under number R 201, and made available on 1/2" tape upon request.

In 1972, Hugo Strubbe joined the CERN Data Handling Division (DD), and both Strubbe and Veltman maintained and further developed CDC Schoonschip. As it was written in CDC 6600 assembly language, it was closely tied to the hardware and not portable. The assembly code allowed Schoonschip to be very fast and efficient in memory usage, an important consideration when computer memory was measured in units of kilowords and speed in the low megaflops range. Nevertheless it was understood that being tied to CDC hardware was a liability, so Strubbe converted it to an intermediate PL/I-like language which was then compiled into a set of IBM S/360 macros in the period 1975-1977. IBM Schoonschip was made available in 1978.

Around the 1980's it was becoming clear that microprocessors would increasingly change the landscape of computing. So around 1983, a couple of years after Prof. Veltman arrived at the Physics Department of the University of Michigan, he set about to port Schoonschip to the M680x0 architecture. While microcomputers were rapidly advancing throughout the 1980's, they were still limited in terms of speed and memory. Hence Prof. Veltman again chose to work in assembly code. Not being satisfied with readily available tools for the M680x0 family, he wrote the Vsys software development system, including the Ann Arbor Macro Assembler, after which he readily created the M680x0 version of Schoonschip. M68k Schoonschip binaries were made available in 1991 and the source code was released in 2009.

Schoonschip distributions

The importance of Schoonschip and its pioneering contributions to computer algebra systems has been widely recognized. The aim of releasing the source code is

The following versions are available:

Schoonschip documentation

The initial documentation for Schoonschip was written by Prof. Veltman and made available as a CERN preprint in 1967. Much of the subsequent documentation was created by Hugo Strubbe after he joined CERN in 1972. There is a separate page on Schoonschip documentation.

Software Licenses

CDC 6600 and IBM 360 Schoonschip is dual-licensed under the GNU Lesser General Public License and the 3-clause BSD License. M68k Schoonschip source is licensed under the GNU Lesser General Public License. The aim is to allow the software to be used, published, developed, and modified in the unrestrictive style of public scientific research, while ensuring that there is always a branch of the software which protects free access to the original source and to modifications within that branch.

Prof. Veltman authorized the open release of the source code of M680x0 Schoonschip on April 2, 2009. The Veltman family and Hugo Strubbe authorized the release of the source code of CDC 6600 and IBM 360 Schoonschip on March 2, 2024.

Copyright © 2014–2022 by David N. Williams, © 2024 by James T. Liu.
Last updated March 11, 2024.
This webpage is licensed under a Creative Commons Attribution 4.0 International License.
Creative Commons License Valid HTML 4.01!