Last modified 21 September 2015.
Notice: Some of the documents distributed by this server
have been provided by the contributing authors as a means to ensure timely
dissemination of scholarly and technical work on a noncommercial basis. Copyright
and all rights therein are maintained by the authors or by other copyright
holders, notwithstanding that they have offered their works here electronically.
It is understood that all persons copying this information will adhere to
the terms and constraints invoked by each author's copyright. These works
may not be reposted without the explicit permission of the copyright holder.
Elements of Programming, by Alexander Stepanov and Paul McJones, was published by Addison-Wesley Professional in June, 2009.
Jonathan Shekter, Bob Archer, and I designed and implemented the first version of the Adobe Pixel Bender parallel image-processing language supported in Adobe Flash Player starting with version 10 and in Adobe After Effects starting with CS3.
I designed the portable operating-system interfaces for the SRC implementation of Modula-3 and chaired the "Interface Police" committee that cleaned up and documented
the basic libraries. See:
I participated in the development of a Vesta-based programming
environment for Modula-2+.
- James J. Horning, Bill Kalsow, Paul McJones, and Greg Nelson.
Some Useful Modula-3 Interfaces.
Research Report 113, Digital Equipment Corporation Systems Research Center.
Palo Alto, CA, December 1993.
Online at hpl.hp.com
I worked with John Backus on the design of his family of functional programming
- Roy Levin and Paul R. McJones.
The Vesta Approach to Precise Configuration of Large Software Systems.
Research Report 105, Digital Equipment Corporation Systems Research Center
Palo Alto, CA, June 1993.
Online at hpl.hp.com
I built an APL virtual machine in microcode for a Digital Scientific Meta4 (which had a 90 nanosecond instruction time in 1970). See:
- Paul McJones.
A Church-Rosser Property of Closed Applicative Languages.
Research Report RJ 1589, IBM Research Laboratory, San Jose (May 1975).
PDF (scanned, 661315
- Paul McJones.
CRMS APL Processor.
Center for Research in Management Science, University of California, Berkeley
Charles Simonyi and I built a hand-tuned Snobol4 implementation for the
Control Data 6400 at the University of California, Berkeley. This report and its appendices serve, respectively, as the tutorial and reference manual for our dialect of Snobol4:
As a member of the
Software Preservation Group of the
Computer History Museum, I've been working on several projects aimed at
collecting, preserving, and presenting historic software, including source code:
I report on my progress in the
Dusty Decks weblog.
Previously I participated in the creation of CHM's
Stretch (IBM 7030)
Collection -- an online collection of some 1022 documents from the IBM 7030
development project donated to the Museum by Harwood Kolsky.
As an associate editor of the ACM SIGMOD
collected papers and republishing permissions for System R, and the
collected works of E.F. Codd and Jim Gray.
I recorded, transcribed, and edited the proceedings of the
1995 SQL Reunion, which
reunited the teams that designed IBM's System R and
I designed the user process management component of the Taos operating
system for the Firefly multiprocessor workstation. This included binary-compatible
emulation of Berkeley Unix, and also a separate but interoperable interface
for multi-threaded processes. See:
I designed the virtual memory manager, "Germ" (boot loader/teledebug kernel),
and some standard device interfaces ("hardware abstraction layer") for the
Xerox Pilot operating system (embedded in the Xerox Star and some other products).
The Computer History Museum has a transcript and a video of "The Final Demonstration of the Xerox ‘Star’ Computer". Al Kossow
collects Xerox workstations and
documentation. Alan Freier created a web site
about the Dandelion
and other Xerox D* workstations running Pilot; he originally hosted this
web site on a Dandelion.
I designed the file directory system for the CAL Time-Sharing System, which
ran on the Control Data 6000 series. See:
I designed the crash recovery component of the System R database system. See:
- B. Lampson and H. Sturgis.
Reflections on an Operating System Design.
Communications of the ACM, Volume 19, Number 5, May 1976, pp. 251-265.
Online at research.microsoft.com
M. M. Astrahan
, M. W. Blasgen
, D. D. Chamberlin
, K. P. Eswaran
, J. N. Gray
, P. P. Griffiths
, W. F. King
, R. A. Lorie
, P. R. McJones
, J. W. Mehl
, G. R. Putzolu
, I. L. Traiger
, B. W. Wade
, V. Watson.
- Paul McJones (editor).
The 1995 SQL Reunion: People, Project, and Politics.
August 20, 1997 (2nd edition).
Online at mcjones.org/System_R/
I led a team that built the world's first speech-enabled electronic program guide for
digital cable television at Agile TV (now Promptu) .
I worked on customer relationship management software at Epiphany, Inc. (now part of Infor Global Solutions).
I consulted on the MilliCent microcommerce project
at the Systems Research Center of Digital Equipment Corporation (then Compaq, now HP).
I worked on EachMovie, a web site that recommended movies and videos using the Each to Each
collaborative filtering algorithm:
The system was terminated but for several years the data we collected was
available for collaborative filtering researchers and is cited by a number of papers.
- Paul McJones and John DeTreville.
Each to Each Programmer's Reference Manual.
Technical Note 1997 - 023, Digital Equipment Corporation Systems Research Center.
Palo Alto, California,
October 1, 1997.
Online at hpl.hp.com
In 1994, Andrew
Birrell and I built a system called Virtual Paper that provided first-class support for online reading. The Virtual
Paper software (now mainly of historical interest) is available in source form as part of the Critical Mass Modula-3 library. As a spin-off of Virtual Paper,
we made available the pstotext utility, which extracts the words from a PostScript or PDF document and which is included as the text extraction features in GSview.
paul at mcjones dot org