The second edition of the Pop-11 Primer is now available, as outlined
below. The Primer is an introduction to the language Pop-11, intended
for readers who already have some programming experience. It is
available free by ftp, or at approximately cost price in paper form.
What is Pop-11?
It is a revised extended version of the language Pop-2 which was the
main AI language used in Edinburgh in the early 70s, based on a
stack-based language invented by Robin Popplestone.
Pop-11 was the name given to a subset of Pop-2 implemented by Steve
Hardy at Sussex University, on a DEC PDP-11/40 running Unix, around
1976, and used for teaching and research in AI at Sussex and various
other universities.
Later, around 1981, Pop-11 was ported (by John Gibson) to VAX VMS, then
to VAX Unix, and much extended. An incremental compiler for Prolog was
added (originally implemented by Chris Mellish) and the combined system
was called Poplog.
Later a version of Common Lisp was added and later still Standard ML.
All the Poplog languages are incrementally compiled, not interpreted.
Poplog (including all the above languages as optional extensions) has
been ported to various other machines running Unix, including Suns,
MIPS, SGI, HP, Digital Alpha (Unix and VMS). Poplog is owned by Sussex
University, but is now a commercial product, distributed internationally
by Integral Solutions Ltd. (Address below.)
It was recently ported to Linux on a PC, and there's a FREE version of
Linux Poplog available by ftp from Sussex University at
ftp://ftp.cogs.susx.ac.uk/pub/poplog/poplog15.0
(This is a full implementation of Poplog and includes all the above
languages and the Poplog X window graphical interface. The free version
has a memory limit, but it is still perfectly usable for
teaching/learning AI, etc. Minimum requirement 486 with 8Mbytes -
though it is better with more memory.)
Pop-11 remains the core language of Poplog. It is an incrementally
compiled (not interpreted) Lisp-like language as far as its power is
concerned (including a CLOS-like object oriented extension), but the
syntax is more in the style of Pascal, so Lisp devotees will hate it and
those who hate Lisp brackets like it!
E.g. here's an iterative definition of a membership testing procedure
that takes an item, a list and an equality testing procedure, and
returns either false or the matching item found in the list.
define member_pred(item, list, test_eq) -> result;
lvars element;
for element in list do
if test_eq(item, element) then
element -> result;
return();
endif
endfor;
false -> result
enddefine;
Here's the recursive version in functional style, also in Pop-11
define member_pred(item, list, test_eq);
if list == [] then
false
elseif test_eq( item, hd(list) ) then
item
else
member_pred(item, tl(list), test_eq)
endif
enddefine;
(Many of the lisp-like features of Pop-11 are closer to Scheme than to
Common Lisp. E.g. in Pop-11, as in Scheme, there's no distinction
between function values and ordinary values of variables.)
More summary information about Pop-11 and Poplog can be found in Adrian
Howard's WEB page overviews at Sussex University:
http://www.cogs.susx.ac.uk/users/adrianh/pop11.html
http://www.cogs.susx.ac.uk/users/adrianh/poplog.html
There's a Pop-FAQ list maintained by Ian Rogers at Sussex University
http://www.cogs.susx.ac.uk/users/ianr/popfaq.txt
and a historical note on the early development of the Pop language by
Robin Popplestone, its original inventor, now at UMASS in Amherst
http://piglet.cs.umass.edu:4321/~pop/pop_development.html
Various books on Pop-11 have been published, but they are all now out of
date. The only complete documentation is in the online REF and HELP
files in the Poplog system (included in the free Linux Poplog).
The new Pop-11 Primer gives an up to date overview of the main features
of the language as it is in Poplog Version 15 (excluding some of the
more sophisticated facilities, e.g. tools for implementing incremental
compilers, the external language interface, operating system interface,
pipes, sockets, signals, timers, file manipulation, lightweight
processes, etc.) Main headings
-- INTRODUCTION TO SECOND EDITION (Jan 1996)
-- -- FOR NEW USERS: A TASTE OF POP-11
-- POPLOG INFORMATION AND FTP SITES
-- PREFACE TO THE FIRST EDITION (Sept 1994)
-- CHAPTER.1: INTRODUCTION --- THE ROOMS EXAMPLE
-- CHAPTER.2: INTRODUCTION TO THE SYNTAX AND SEMANTICS OF POP-11
-- CHAPTER.3: PROCEDURES AND THE STACK
-- CHAPTER.4: PROCEDURES IN POP-11
-- CHAPTER.5: NUMERICAL AND LOGICAL FACILITIES IN POP-11
-- CHAPTER.6: LIST PROCESSING IN POP-11
-- CHAPTER.7: THE POP-11 PATTERN MATCHER AND DATABASE
-- CHAPTER.8: AN AI APPLICATION: A GENERAL PROBLEM SOLVER
-- CHAPTER.9: RECORDS, VECTORS AND OBJECTCLASS
The Primer also includes many pointers into the online Poplog
documentation, so that missing details can be followed up.
HOW TO GET THE POP-11 PRIMER
On-line versions can be got from the Poplog ftp site at the University
of Birmingham (England) in the poplog ftp directory
ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/
In the teach/ subdirectory is a plain text version for online browsing
(17722 lines long):
poplog/teach/primer
A compressed version of that is in the poplog/ directory
poplog/primer.Z
There are three other versions:
poplog/primer.tex.Z
Compressed version of latex file semi-automatically generated
from the plain text version. This can be used to generate
html if you have the latex2html program, or to generate a
differently formatted postscript version
poplog/primer.ps.Z
Compressed postcript version based on latex formatted version of
the Pop-11 primer. (May have some formatting oddities).
293 pages (A4 size)
poplog/primer2.ps.Z
This is postscript for a "reduced" version printing two pages
side by side in landscape mode. 147 pages (A4 size)
A hard copy (soft-bound) version of the Primer is available at
approximately cost price in the reduced format, two pages per sheet:
Price 5 UK pounds
Plus postage and packing
UK 1 pound
non-UK 2 pounds
Orders should be sent to:
The Librarian, School of Computer Science,
The University of Birmingham,
Birmingham B15 2TT, England
Email: ·········@cs.bham.ac.uk,
Phone: +44 121 414 3735 Fax: +44 121 414 4281
(Price given here was correct Feb 1995. Later it may be out of date:
check with the librarian.)
NOTE: The primer may be freely redistributed. Anyone who wishes to make
printed copies available may do so. I would like to be informed however.
(I have no plans for commercial publication.)
ADDITIONAL POP-11 TEACH FILES AND UTILITIES
Anyone using Pop-11 for teaching may find some of the contents of the
Birmingham teach subdirectory and other subdirectories useful. A subset
is available in a gzipped tar file
ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/bhamteachtar.gz
Comments and suggestions welcome.
Enquiries about Poplog and extensions to Poplog (Clementine -- a
data-mining package, Hipworks -- an authoring package for online
teaching material, Oracle interface, etc.) should be sent to:
Integral Solutions Limited
Berk House
Basing View
Basingstoke
Hants RG21 4RG, UK
Tel. +44 (0)1256 55899
Fax. +44 (0)1256 63467
Email: ···@isl.co.uk
Disclaimer: Although I used to be involved in development of Poplog, I
now have no formal connection with ISL or Sussex University, and receive
no commission, royalty, etc. I do use Pop-11 for teaching and research,
however, and the Poplog editor VED for everything.
Aaron
---
--
Aaron Sloman, ( http://www.cs.bham.ac.uk/~axs )
School of Computer Science, The University of Birmingham, B15 2TT, England
EMAIL ········@cs.bham.ac.uk
Phone: +44-121-414-4775 (Sec 3711) Fax: +44-121-414-4281