May the source be with you, but remember the KISS principle ;-)
Contents Bulletin Scripting in shell and Perl Network troubleshooting History Humor

XPL -- an Early Example of Literary Programming

News See also Recommended Links Literate Programming and HTMLization of programs Donald Knuth Refactoring
Doxigen Cxref Program understanding Debugging Humor Etc

XPL is documented in the book A Compiler Generator by McKeeman, Horning and Wortman, published by Prentice-Hall, 1970, ISBN 13-155077-2. The original compiler was designed for the IBM S/360. The language is XPL, a dialect of PL/I. The compiler is written in XPL.

XPL was one of the first high level languages that implemented automatic garbage collection (for strings only).

The book and the authors approach can be considered as the early example of literary programming but the term was coined much later by Donald Knuth.

Old News ;-)



W. M. MCKEEMAN         J. J. HORNING           D. B. WORTMAN



SANTA CRUZ,            STANFORD,               STANFORD,
95060                  94305                   94305


The Optimizing version of XPL was delevoped by:

R. A. Vowels, formerly of
Department of Computer Science
Royal Melbourne Institute of Technology,
124 La Trobe Street,

email address is now:

        This optimizing XCOM compiler is a standard implementation of XPL and is
        based on McKeeman, Horning, and Wortman's improved XCOM (which employs
        hashed symbol table generation).  It includes the extra built-in
        function COREHALFWORD.

        The following areas have been optimized:  procedure calls when the
        argument and corresponding parameter are of the same type, and when the
        argument is a constant; constant subscripts; use of CORELHALFWORD and
        COREWORD; string constants of length one; iterative DO statements by
        transferring code to the end of the loop.

        String constants of length one do not require a descriptor, hence more
        descriptors are available for string variables.  Comparison operations
        are treated as commutative, and an improved Commute algorithm is used.
        Halfword instructions are generated for BIT(16) variables.

        These areas have been improved or re-written:  calls on OUTPUT,
        catenation, integer-to-string conversion, multiply, divide, and MOD.  An
        emitter for SS-type instructions has been added.

        The compiler achieves an 11% reduction in object code compiling itself,
        an 11% increase in compilation rate, a 55% increase in compilation speed
        when the $ E toggle is set.  Special treatment for catenating a string to
        an integer substantially decreases consumption of the free string area,
        and decreases string moves.  The latter improvement is most noticeable
        on small core machines.

        Core requirements:  less than the improved XCOM on which it is based
        (approx.  98000 bytes).  Symbol table size is 468.

ports:        IBM System 370
portability:  The compiler is written in XPL.  The code generators are machine-specific.

This version distributed by Robin Vowels.  Date: 11 November 1993.   11 December 1998.



Re: XPL Language

From comp.compilers

From: (Steve Meyer)
Newsgroups: comp.compilers
Date: 27 Aug 2000 22:27:57 -0400
Organization: Compilers Central
References: 00-06-118 00-07-016 00-07-075 00-08-018 00-08-028 00-08-055 00-08-083
Keywords: history

I am not sure it makes sense to continue this historial discussion,
but I think there is a lot more to story. The roots of modern
computing lie in this story. For example, although both PL360 and XPL
were available why did Professor Knuth use assembler in his Art of
Programming books? Also, these original languages (and the Bell Labs
counter-parts) arose in Academic (School of Literate and Science)
computer science departments, but now computing is studied in EE

On 13 Aug 2000 19:10:55 -0400, Duane Sand <> wrote:
>Steve Meyer wrote in message 00-08-055...
>>>>>: Peter Flass <> wrote:
>>>>>: > XPL, developed in the 1970's was one of the earliest "compiler
>>>>>: > compilers", was widely ported, and was the basis for a number of
>>>>>: > languages such as the PL/M family.
>>I think PL/M and XPL came from different worlds that did not
>>communicate. I think people saw XPL as too high level. I think PL/M
>>came from other system level languages such as PL/360 (?). My
>>recollection may not be right.
>Niklaus Wirth developed PL360 as an alternative to writing IBM360
>assembly code directly. It was a quick one-person project. The
>parser used "operator precedence' techniques which predated practical
>LR methods. The tables could be worked out by hand in no time but the
>method couldn't handle BNFs of most languages. It was quite low
>level, mapping infix syntactic forms directly to single 360

Parsing may have gotten tenure for lots of professors but the most
advanced programming language areas such as HDLs (hardware
descriptions languages) now use the "predated" operator precedence
methods. Also Professor Wirth's languages have remained at the
for-front of academic programming languages.

>instructions without any optimizations. The PL360 paper inspired lots
>of people to develop their own small languages.

I think PL360 was very popular within IBM and among the back then
"modernist" movement away from assembly language. I know it was very
popular at SLAC.

>McKeeman etc developed XPL on 360 as a tidy subset of PL/I that could
>be implemented by a few people and be useful in coding biggish things,
>including the compiler and parser generator. The parser was initially
>based on their extensions to operator precedence, which relaxed BNF
>restrictions but required use of a parser generator tool and was still
>limited compared to LR. XPL was "high level" only in having built-in
>a varying-length string data type supported by a garbage collector.
>There were no struct types.

I think it was hard back then to differentiate XPL from Mckeeman's
advocacy of Burroughs B5500 style stack machine research program.

>Univ of Washington ported XPL onto SDS/Xerox systems that were like
>360 but with one instruction format.
>UW graduate Gary Kildall developed Intel's first programming tools for
>the 8008 and 8080, in trade for a very early portable computer: an
>8008 without keyboard or monitor, installed in a briefcase. Kildall
>used these (plus a floppy drive adapted by UW grad John Torode) to
>develop CP/M, the precursor to MS DOS. The Intel tools included an
>assembler and PL/M, both coded in Fortran. PL/M was inspired by the
>example of PL360 and the implementation methods of XPL. Kildall left
>before UW's XPL project but was likely very aware of it.
>PL/M's level was limited by the 8008's near inability to support proc
>calls. The first micro language to see significant use was Basic,
>implemented by assembler-coded interpreters. Implementing real
>applications in real compiled languages required later chips with
>nicer instruction sets, eg 8088 (gag) and M6800.

As the Z80 showed, 8088 was only one index register away from being
real computer.

Historical question I think is why there was so little communciation
between the current most popular BCPL, B, C, C++ research program and
the Stanford/Silicon Valley research program.

Just my two cents.
Steve Meyer Phone: (415) 296-7017
Pragmatic C Software Corp. Fax: (415) 296-0946
220 Montgomery St., Suite 925 email:
San Francisco, CA 94104

Recommended Links

Softpanorama hot topic of the month

Softpanorama Recommended

The XPL Programming Language

Dave Bodenstab's Home PageThe XPL compiler and supporting programs, ported to FreeBSD on an Intel 486

XPL is documented in the book A Compiler Generator by McKeeman, Horning and Wortman, published by Prentice-Hall, 1970, ISBN 13-155077-2. The original compiler was designed for the IBM S/360. The language is XPL, a dialect of PL/I. The compiler is written in XPL.

I picked up this package from the SHARE organization back in the mid 70's. It was squirreled away on 9-track tape until 1984 when I dug it out and wrote the S/360 emulator. Then it was stored on floppies until I had some time and decided to finally port it to the Intel 486. This was the first compiler source that I was exposed to and fueled my interest in compilers and operating systems. I guess that's why I dug it out and finished this little porting effort.

The latest version of XPL for FreeBSD is 4.2 -- click here to download.

This package builds the XPL compiler by bootstrapping from the original IBM S/370 binary. The build process requires GNU make and the RCS source control tools. If you have trouble building the Intel binary for the compiler, you can get a pre-built copy here. You will still need to compile the sub-monitor, xplsm, for your operating system.



FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available in our efforts to advance understanding of environmental, political, human rights, economic, democracy, scientific, and social justice issues, etc. We believe this constitutes a 'fair use' of any such copyrighted material as provided for in section 107 of the US Copyright Law. In accordance with Title 17 U.S.C. Section 107, the material on this site is distributed without profit exclusivly for research and educational purposes.   If you wish to use copyrighted material from this site for purposes of your own that go beyond 'fair use', you must obtain permission from the copyright owner. 

ABUSE: IPs or network segments from which we detect a stream of probes might be blocked for no less then 90 days. Multiple types of probes increase this period.  


Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy


War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes


Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method  : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law


Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Haterís Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

The Last but not Least

Copyright © 1996-2016 by Dr. Nikolai Bezroukov. was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License.

The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to make a contribution, supporting development of this site and speed up access. In case is down you can use the at


The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

Last modified: July 07, 2013