School of Computer Science
The University of Birmingham
Integral Solutions Ltd (ISL) and Sussex University
won this ICP award in 1992, for having achieved
Poplog sales of five million dollars. I believe it was
also associated with a UK Government SMART award.
See page 3 of this 1992 Sussex Bulletin
NB: Poplog is made available "as is" with no warranty of any kind, and no acceptance of liability for any consequences of use.
Alternative links:The download and installation scripts (which re-link poplog) should work on 64-bit linux, provided that you have installed the packages required for compiling and running 32-bit applications (e.g. libc6-dev-i386 in Ubuntu?), and have the required 32-bit X window libraries, especially libX11, libXt, libXext and if possible lesstif.
Links to information about Poplog/Pop11/Prolog/Lisp on Wikipedia
Poplog is an integrated toolkit providing a highly extendable collection of languages and tools for teaching, research and development. It is described on Wikipedia here. By default it includes incremental compilers for three powerful AI programming languages which can be used interactively both when learning to program and when developing software:
- Standard ML, a widely used functional language.
Other languages have been developed in Poplog by users, but are not part of the default system. There are also extensions to Pop-11, providing language features that are not part of the core language, but are immediately available to users, including
- Objectclass, an Object-Oriented programming extension, with multiple inheritance, described in more detail here.
- Poprulebase, an interpreter for rule based systems, useful for "knowledge-based" programming (described in more detail here),
- The RCLIB package, using objectclass, to provide a variety of 2-D graphical programming tutorials and tools, and including a library for drawing graphs generated in different ways.
- The SimAgent toolkit, for building scenarios with interacting agents integrated with a 2-D display.
- Popvision. a collection of tutorials and utilities for image analysis and manipulation, produced by David Young at Sussex University.
- The SUPER library, a 'superdatabase' package that provides most of the functionality of Prolog but smoothly integrated with Pop-11's syntax and pattern matching facilities.
Most of Poplog is implemented in Pop-11, including the incremental compilers for all four languages and the integrated programmable editor.
Because the core language, Pop-11, makes use of incremental compilation, Pop-11 provides most of the flexibility of an interpreter and most of the speed of a compiler. (The main disadvantage is the general difficulty of porting an incremental compiler to a new platform.)
Poplog was already a well engineered, robust and highly successful commercial product in the 1990s, developed jointly by Sussex University and ISL (Integral Solutions Ltd), and marketed by ISL, who used it to develop the widely used Clementine data-mining system, until 1998, when ISL was bought by SPSS (for Clementine -- now extended and re-named PASW).
It was used to develop the original version of the SPARK toolkit by Praxis Systems, though they now use Sicstus Prolog, as that has features not in Poplog Prolog. (There is now a free Open Source version of the toolset here.)
Some information about academic and commercial customers and products based on Poplog can be found here. After the take-over by SPSS, Poplog became free and open source. Unfortunately, by then academic usage had dropped, partly because of the high price of Poplog during the mid 1990s, partly because the full system (including graphics) was available only on expensive servers and workstations, and only a subset was available on PCs running Windows. (ISL found that the costs of sales and supports to academics were not worth the benefits, so they focused on commercial customers. In those days it was not possible to sell and support such software via the internet.)
The Linux version of poplog, ported in his own time by Clark Morton while still working for ISL, did not become available until after SPSS bought ISL, and this website was started for Free Poplog. (Initially the port was somewhat incomplete and had a few bugs, but these were soon identified and fixed. However, changes in Linux and the C language specification, led to requirements for some further changes in in Linux poplog including some problems caused by Selinux, now resolved.)
Considering that Poplog includes incremental compilers for four languages (Pop-11, Prolog, Common Lisp and ML), along with an integrated programmable editor, and a host of additional libraries and documentation, including teaching materials, the size of the system is surprisingly small: the complete 32-bit Linux download package is a little over 16MB (since about 19th July 1009 -- including all system sources, documentation and libraries, with a number of add-ons). The size was reduced for Version 15.63, partly by moving the 'contrib' package to a separate location (also in a zip file).(The packaged self-installing windows version of Poplog V15.5 described below is even smaller.)The uncompressed Poplog installation directory, after relinking poplog and building saved images, requires about 79MB on Linux (since Version 15.63, of which a large subset can be removed if not needed). The normal minimum process startup size for Pop-11 including the editor and incremental compiler, is around 11MB. That can be reduced by using a version linked without some of the default components, e.g. without indefinite precision arithmetic, the editor, the X window interface.
The run-time startup size goes up of course if Prolog, or Lisp, or ML (or a combination) is included, though not by much because a great deal is shared between the four compilers.
Partly because of its compactness Pop-11 and the other Poplog languages are comparatively fast when running user code, out-performing interpreted versions of the languages, though not as fast as batch-compiled languages. (The versatility in supporting Pop-11, Common Lisp, Prolog and ML adds a small speed penalty compared with separate dedicated compilers.) The internals of poplog run very fast because they are implemented in a special dialect of Pop-11 with C-like extensions. For example, code compilation is very fast though this is partly partly because the compiler does not do a vast amount of optimisation. Moreover, at least one researcher at HP Research labs switched from using Lisp on a dedicated Lisp machine, to using Poplog Lisp on a general purpose unix workstation, because he found the poplog garbage collector so much faster. However, machines have speeded up so much since then that the difference would no longer be so noticeable!
Note: "POPLOG" is a trade mark of the University of Sussex.
Poplog was developed in the School of Cognitive and Computing Sciences at the University of Sussex and at ISL (now part of SPSS), and is distributed free of charge by courtesy of both organisations. Between 1983 and 1998 Poplog was an expensive commercial product, sold first by Systems Designers Ltd., then ISL, though always with large discounts for academic users. Examples of commercial and academic customers, and some of the products produced using Poplog can be found in this directory http://www.cs.bham.ac.uk/research/projects/poplog/isl-docs
Additional code and documentation listed below were produced by members of the University of Birmingham and other organisations. All of it is now free of charge with open source.
The distribution terms and copyright notice (modelled on XFree86) are available in http://www.cs.bham.ac.uk/research/poplog/copyright.html.
The remainder of this file contains pointers (1) to a number of complete Poplog systems for various combinations of machine and operating system, (2) to sources, (3) to documentation about Poplog and Pop-11, (4) to various add-ons supporting teaching and research in AI and Cognitive Science, developed at Sussex, Birmingham, and elsewhere, including a package for research and teaching in vision, a powerful and flexible X window-based GUI package implemented in Pop-11, the SimAgent toolkit for developing sophisticated agent architectures, and Robin Popplestone's Scheme in Pop library. There are also (5) some "easy" to install complete packages containing the add-ons.
Readers who know nothing about the Poplog system or its languages may find it useful to look at this introductory overview http://www.cs.bham.ac.uk/research/poplog/poplog.info.html and also the comp.lang.pop newsgroup informal FAQ. http://www.cs.bham.ac.uk/research/poplog/comp.lang.pop.faq.html
Experts may find it useful to look at the draft User Guide to get a feel for the variety of facilities available in poplog.
The web site at http://www.poplog.org was set up by two experienced users of Poplog and Pop-11. It includes archives of postings to comp.lang.pop, code libraries, and a partial mirror of this site, among other things. Unfortunately the web site is now defunct.
Poplog version 15.53 was the first version of poplog to be made generally available free of charge, including all sources, since about 1982, the year when commercial sales were taken over by Systems Designers Ltd.
Some older versions for other platforms listed below are also now available free of charge.
(They may be brought up to date later if facilities and resources become available for rebuilding them.)
V15.53 (produced in July 1999) included some additions to support recent versions of Linux, and a few minor bugfixes. Apart from that it was the same as the commercial version, used world-wide in the Clementine data-mining system.
Since then Poplog has undergone development and bug-fixes. New versions have been made available at the Birmingham Poplog site, and are announced elsewhere in this file. An older version, Poplog Version 15.5 was made available for use on Windows, but lacking the graphical capabilities available in poplog on Linux, Unix and VMS systems. The OpenPoplog project at Sourceforge aims to remove the difference.
Reduced versions supporting Pop-11 as a scripting language may become available later, e.g. at www.poplog.org. (June 2009: This site is now defunct.)
As explained below, A directory for bugreports and "bugfixes" has been set up for corrections to library and documentation files as well as system sources.
Coordination of further development work is managed through the comp.lang.pop newsgroup and the pop-forum email list. There is also a more specialised email list (poplog-dev) for those who wish to be involved in detailed technical discussions of development work. If you wish to join the poplog-dev email list write to A.Sloman@cs.bham.ac.uk.
A (rarely updated!) table summarising available versions of poplog is available here: http://www.cs.bham.ac.uk/research/projects/poplog/poplog-versions.html
For more background information about poplog see the WHAT IS POPLOG? section.
When Poplog version 15.53 first became available free and open source the main location for bundled versions was the http://www.cs.bham.ac.uk/research/poplog/new/ directory. The contents are described below. Since then new bundled versions have also become available, not stored there. Go to the 'new' directory only if there is not another bundle (e.g. the standard Linux Poplog bundle) that suits your requirements.
There is a specially packaged, easy install version of Poplog for PC+Linux.
Information about Poplog for Windows is available.
A mirror site for Poplog, with some additional packages used to be at http://www.poplog.org. (Now defunct, alas.)
Detailed instructions for installing Unix and Linux poplog, are in the install.txt file. Most users can now ignore that as there are are special instructions for the packaged versions of linux poplog described below. In particular for the main PC+linux package there is now a very simple short-cut installation process.
Instructions for the Windows version of Poplog V15.5 are included in the windows poplog package (below), and separately available in the file new/pcwinpoplog.txt
(Windows poplog V15.53 is only for experts. For more details see this section below, or this directory http://www.cs.bham.ac.uk/research/poplog/winpop/ ).
A User Guide is available, included with all the current bundled versions of poplog.
Documentation on rebuilding poplog can be found in sysdoc/rebuilding. Scripts for installing and re-linking are included with poplog.
Utilities to help with re-linking or rebuilding will go in the tools/ subdirectory, including a script which will be useful if you have difficulties re-linking unix versions of poplog. (Improved version now included in PC linux poplog since Version 15.6).
Documentation on Porting poplog can be found in sysdoc/ppg (Poplog Porting Guide).
Most of poplog is implemented in an extended dialect of pop-11 (SysPop-11), so porting poplog requires a running version of poplog to do the cross-compilation.
Obsolete package installation mechanism.
A shell script for installing "local extensions" received as gzipped tar files was previously available here: http://www.cs.bham.ac.uk/research/poplog/com/install_package and documented here http://www.cs.bham.ac.uk/research/poplog/tools/install_package/install_package.txt
Since version V15.6 This mechanism is now replaced by a new package structure in the Poplog directory tree.
"Off topic: The Pop-11 programming language and Poplog environment"
Includes Pop-11 examples.
Andrew Rydz has produced a LiveCD containing SliTaz with poplog ready to run. For more details look here.
Popracer was a second year undergraduate team project in 2005, using Pop-11, including its graphical tools, to design a package to evolve simulated racing cars with neural net controllers, able to compete and win on a circuit designed by the user. A graphical tool for designing new circuits was provided. For details see the project report (PDF) and the report by Mark Rowan in the Networks magazine. There is a gzipped tar file containing the contents of the popracer directory.
Added a separate section for Lisp Packages that work in Poplog
Currently refers to Screamer and Spartns
Waldek Hebisch (Mathematical Institute University of Wroclaw, Poland) has made available a draft Pop-11 version of the book
How to think like a computer scientist written by Allen B. Downey.
The Pop11 version should be a very useful supplement to the old Pop-11 primer.
The Pop-11 version of the book is available in PDF format athttp://www.math.uni.wroc.pl/~p-wyk4/thinkCS/thinkCS_1-19.pdfThis is a somewhat incomplete version, containing only the first 19 chapters and chapter 14 is very incomplete.
Latex source, figures, etc.: http://www.math.uni.wroc.pl/~p-wyk4/thinkCS/thinkCSpop11_0.7.1-19.tar.gz
(on 25 Jan 2008)
Note: Robin Popplestone's draft book on Pop-11 and his lecture notes on Programming Paradigms are also available below.
Instructions for installing Windows Poplog (including installation on Vista) can be found here.
Added simple pop-11 syntax highlighting command for VED, in$usepop/pop/lib/ved/ved_highlight.pThe commandENTER highlightwill underline all syntax words, apart from those included in the list assigned to global variablehighlight_exceptionsTo see what the exceptions are doENTER showlib highlight_exceptionsIf you don't want to fetch a complete poplog system, the file can be downloaded on its own from
Simply install it in the directory $usepop/pop/lib/ved/ in your current poplog system.
It will then be autoloadable. Undo highlighting withENTER strip
The main latest change alters the directory mechanism in $popsrc/unix_dir.p thanks to help from Waldek Hebish. This fixes a bug in pop-11 reported as bug 32 in
Students in Birmingham who are Ubuntu users should look at David Brooks' instructions page and then fetch the latest version.
The pop-11 sockets library does not work on systems where the C library
no longer supports 'errno'. The core of poplog was fixed to deal with
this in July 2003, but a new version of the socket library was not
installed to make use of this fix until today. It can be fetched from
and installed in
This is now included in the standard linux poplog package.
Descriptions of various bugs and bugfixes, including the above two, have now been included in http://www.cs.bham.ac.uk/research/poplog/bugfixes/BUGREPORTS
In addition, the rpms for Ctwm and Openmotif previously included in the package for the benefit of Birmingham students are no longer included since both are readily available on the internet and a later version of Openmotif is included in many Linux distributions. This has reduced the size of the integrated Birmingham Linux Poplog package from about 21Mbytes to about 19Mbytes.
NOTE: the popvision library was re-built on 24th December 2004, following fixing of the external linker bug mentioned above. If you have installed the latest core linux Poplog version (24 December 2004 or later) with the linker bug mentioned above fixed, and you obtained popvision before then, you are advised to fetch the latest version of popvision and install it. To take full advantage of some parts of it you will need to have the Lapack and Blas libraries installed, available from http://ftp.pld.org.pl/dists/ac/ready/
You: do you get enough users
Eliza: FIRST TELL ME WHY YOU HAVE COME HERE?
You: to find out whether you get enough users
Eliza: COULD A MACHINE FIND OUT WHETHER ME GET ENOUGH USERS ?
You: maybe a machine could do better than I can
Eliza: COULD A PC ACQUIRE A WISH TO GO TO UNIVERSITY?
You: a really intelligent one could
Eliza: MOST COMPUTERS ARE AS STUPID AS THEIR PROGRAMMERS
You: That's enough for now
Eliza: DO GO ON
Current versions of Poplog for Linux and Unix:Information on how to use Linux poplog on Windows can be found here.
The latest version of poplog, currently packaged for PC+Linux, but also usable on Windows (as explained here) is
A (possibly out of date) table summarising available versions of poplog is available here: http://www.cs.bham.ac.uk/research/projects/poplog/poplog-versions.html
- Version 15.65 (32 bit) DOWNLOAD INSTRUCTIONS FOR 32 BIT LINUX POPLOG
(E.g. for fedora, ubuntu, debian and others.)
This replaces Version 15.6.4.
- Version 15.63-amd64 (64 bit) DOWNLOAD INSTRUCTIONS FOR 64 BIT LINUX POPLOG
Both versions provide 'get-and-install' scripts, which can be downloaded and run to fetch and install everything else, either in the 'standard' location (/usr/local/poplog) or in the current directory.
Note Added 22 Apr 2013 -- NB:
The 64-bit versions of linux poplog have not been tested here nor updated here for several years, and may no longer work.
However, 32-bit poplog has been modified so that it can be compiled and linked on 64-bit linux, provided that all the required 32-bit linux libraries have been installed. For most people that will be the most convenient way to run Poplog on 64-bit linux (tested on Fedora, Arch, Ubuntu, and Scientific Linux, among others).
Please see instructions here:
Linux Poplog is provided in gzipped tar file format, for installation on PC (Intel or AMD). 32-bit Versions of Linux Poplog have been tested on RedHat Linux 6.0, 6.1, 6.2, 7.1, 7.2, 7.3, 8.0, 9.0, RedHat Enterprise Linux, Fedora core 1, 2, 3, 4, 5, and various versions of Debian, Ubuntu, Slackware, Mandrake, Suse Linux, and freeBSD but it probably works on several more. However, non-backward compatible changes in versions of linux sometimes cause problems.
Some of the downloadable versions are "current" whereas others are older because we have not had access to machines on which to update them.
Graphical extras, and use of Motif/Lesstif
Poplog has a wide range of 2D graphical facilities that work in connection with the X window system on linux and unix platforms. These can be enhanced by the use of Motif though it is not essential for poplog. Motif provides a collection of additional graphical tools used by menus and scroll-bars in the poplog X-based editor XVed, though XVed can be used without menus and scroll-bars.
However many other Poplog graphical facilities can also work without motif. The Birmingham graphical toolkit, RCLIB, available as an add-on to poplog (described below) does not require motif, and provides menus, sliders, dials, and other GUI facilities. Because it is implemented in Pop-11 it is much easier to modify or extend than motif. It is also used for graphical displays in the SimAgent toolkit, demonstrated here.
If your linux system does not include motif, you should, if you wish, be able to use poplog with the free Openmotif version, now available from http://www.openmotif.org/ and also included in many linux distributions, since several commercial packages based on linux and unix make use of Motif.
If that link fails try giving www.google.com or some other search engine the key "linux motif", or "openmotif".
The latest version of Lesstif, distributed with many versions of Linux, can also be used as an alternative to Motif, though there are some minor discrepancies.
Previously, two versions of Poplog for linux+PC were made available, one linked for use with motif and one linked for use without. Linux Poplog is now distributed in a new format, as described below, with fewer pre-compiled binaries, reducing download time. Installation scripts are provided which configure poplog to run with or without motif, as required.
A script that will detect some common missing features in linux installations, and can fix some simple cases (missing symbolic links) is CHECK_LINUX_FACILITIES . You can download it, make it executable and run it to check your installation.NOTEAn earlier version could be run to install missing symbolic links in the /usr/X11R6/lib directory. However, the latest version allows for both XFree86 and X.org installations of linux graphics, and does not install missing links, as it is better for the motif-devel or lesstif-devel package to be installed at system level.
If you are using 64-bit linux and wish to install 64-bit Poplog use this instead CHECK_LINUX_FACILITIES_64bit .
However, it is probably better to install 32-bit poplog on 64-bit linux as the 64-bit poplog has not been updated or tested for some time.
Further information about prerequisites for installing poplog, and instructions for installing the latest version of Poplog are here.
Some recent versions of linux for naive users do not include gcc, which is required for linking poplog. However, you may be able to install and run poplog without gcc, but you will not be able to recompile or relink it.
Some users may find useful an old file describing information that was required before installation of Poplog was automated: http://www.cs.bham.ac.uk/research/poplog/linux-cd/AREADME.txt
Prior to April 2007, the recommended package was Version 15.6.
It is still available as a fallback.
For information on fetching and installing the older version see: http://www.cs.bham.ac.uk/research/poplog/v15.6/.
This is superseded but may be required for older versions of linux.
Thanks to porting work by Waldek Hebisch, a port of Linux Poplog version 15.62 for 64-bit linux on 64-bit AMD cpus (which also works on recent 64-bit Intel CPUs -- not Itanium) can be found in http://www.cs.bham.ac.uk/research/poplog/latest-64bit-poplog/
NB: this has not been tested or updated for some time. It may better to use 32-bit poplog on 64-bit linux.
If the 64-bit version is linked with Motif, Poplog's graphical windows do not trap the 'close' event properly and instead treat it as 'destroy', which kills the whole process. So by default the 64-bit version of Linux Poplog was previously linked without Motif. This appears no longer to be necessary. (6 Jun 2008) [NOT SURE]
Out of date instructions -- may be of interest/useOlder instructions!
Since version 15.61 (April 2007) it is recommended that users of Debian/Ubuntu simply follow the instructions for the latest version of PC Linux poplog.David Brooks' instructions page is useful if you need to fetch some of the prerequisites for poplog.
A version of the PC+Linux Poplog with Birmingham extras was packaged for Debian users by Brent Fulgham. However it now turns out that there are simple instructions for making the standard Poplog distribution work on Debian, using the standard installation script. See instructions for current versions of Linux Poplog.
For further information see http://www.cs.bham.ac.uk/research/poplog/debian
At present (January 2010) the implementations of Poplog for Windows do not provide all the facilities of Linux/Unix poplog. In particular, they do not provide the Poplog graphical facilities that work on the X window system on Unix and Linux.
However it is possible to run Linux poplog within Windows using VirtualBox, as described here.
It is also possible to run linux poplog on Windows by using the free trial version of VMWARE http://www.vmware.com/. For instance the hybrid-sheepdog demonstration here http://www.cs.bham.ac.uk/research/poplog/figs/simagent/ was produced by an MSc student using Linux PC poplog, under Vmware on a laptop running Windows XP.It can also be made to work with the free 'andLinux' package along with Xming, as described here.
It is likely that increasing development of 'virtualisation' tools will make it much easier to run programs developed in one operating system on another.
The Open Poplog project aims to re-engineer poplog in a more platform-independent form eventually.
For those users of Microsoft Windows who do not wish to use andLinux or VirtualBox or Vmware the following options are available.
This version of Poplog has no graphics, no support for X, and only the "dumb-terminal" version of the editor VED (allowing split-window use). It was designed primarily for use with NT, but can work with Win95/98/2000, and probably later versions of windows (e.g. XP).
The installation instructions are in the README
file, included in the package, and
David Brooks has provided instructions on how to install it on Windows (including Vista) here:
It is hoped that eventually this version of Windows poplog will be replaced by a system being developed in the OpenPoplog Project.
Novices may find the more conveniently packaged version 15.5 windows poplog (listed above) easier to install and use.
The V15.53 poplog package for windows includes all the sources and I believe the "stubs" that were used in the Clementine data mining package to link to an X window emulation running windows NT. Perhaps a windows expert can use this to add graphics to windows poplog, or even make XVed work under windows?
This newer version of windows poplog does not include a self-installation file providing a desktop shortcut that starts up the Ved editor. If anyone is able to package it so that it can be used by novices, like the older version above, please inform A.Sloman AT cs.bham.ac.uk
Work is in progress on developing a more complete version of poplog to run under Windows. See the Open Poplog project. This should make all the X window facilities in linux/unix poplog available also under Windows.
Please post queries, reports on how it works, or offers of help to the comp.lang.pop newsgroup (or to pop-forum AT cs.bham.ac.uk).
pop-forum AT cs.bham.ac.uk .You may also find it useful to look at the
Poplog on Intel Mac
Although there is a partial port of Poplog for Mac OSX on PPC, there isn't one for Intel-based Macs. For those, the best way to run poplog is now to install a version of linux (e.g. some have used 'archlinux because it is small) in a virtual operating system (e.g. using VMWare) and then to install and run the latest 32-bit Linux poplog.
Poplog on OSX
As a first step towards the OSX port, Poplog was ported to Darwin on PC. Testers and helpers are invited to look at the files here http://www.cs.bham.ac.uk/research/poplog/darwin+pc/
Later a nearly working system for OSX was provided, which is accessible in http://www.cs.bham.ac.uk/research/poplog/osx/
It was tested by a non-Mac user here and found to work, but the X window graphical facilities do not yet work. Perhaps this has something to do with dynamic libraries, and can be fixed by an OSX expert.
Everything else seems to work. However the facilities for automatically rebuilding poplog have not been updated to run on OSX yet.
An alternative is for an OSX user with X11 installed to run Poplog remotely on a linux or solaris machine running Poplog. For further information see this file.
The Poplog system was built around the integrated editor Ved (implemented in Pop-11), which includes facilities for rapidly accessing help files, teaching documentation and library sources through "hypertext links", and for transferring commands to the incremental compiler(s) and reading output from the compilers into an editor buffer. This makes learning, development and testing very easy, especially for novice programmers.
A number of Emacs users have developed a package that supports similar use of Pop-11 and other Poplog languages from Emacs, and includes utilities for reading the Ved "graphics enhanced" documentation files. The package can be downloaded here: emacs.tar.gz or browsed online here http://www.cs.bham.ac.uk/research/poplog/emacs/
This is already included in the larger "complete" packages.
Around January 2005 Poplog was reorganised. A sub-directory was introduced $usepop/pop/packages (with environment variable $poppackages to allow for its location to be changed).
Many of the extensions that had been available as special packages from Birmingham University, Sussex University, or elsewhere that had previously been separately down-loadable packages were moved into that directory, and some of the AI tutorial material that had been part of the core Pop-11 code and documentation libraries was moved into a 'teaching' package.
Each package has a top level directory containing a pop-11 program to extend the poplog search lists (popautolist, popuseslist, vedhelplist, vedteachlist, etc.) and subdirectories such as auto/, lib/, teach/, help/, ref/, data/ and others, if needed.
Some parts of poplog that were deemed not to be suitable for inclusion in the core of the system, e.g. items concerned with teaching AI rather than teaching programming in Pop-11 or Prolog, etc. were moved into the 'teaching' package.NOTE: This process is not yet complete. The reorganisation will be continued, depending on available time.
The current default list of contents (in April 2007) islib: A directory containing links to the startup pop-11 file for each of the packages.
bhamlib: Extensions from the Birmingham $poplocal/local/directory
(Currently very little, as most of the original contents are now in other packages).
brait: A braitenberg simulator based on SimAgent
com: Some shell scripts used for poplog
contrib: Programs and documentation contributed over the years include portions of published books, e.g. the Computers and Thought book, and the Natural Language Processing books by Gazdar and Mellish. (No longer included: available separately.)
emacs:Utilities to make Emacs talk to the Poplog compilers, emulating the poplog Ved editor
lockfile: programs for locking and unlocking files
master: Relics of the Sussex mechanisms for managing file headers and footers.
neural: The poplog neural library, providing some neural net functions implemented in C and invoked from Pop-11
newc_dec: Information provided by Anthony Worrall about extensions to the mechanisms for loading external libraries written in C.
newkit: The Birmingham SimAgent toolkit, containing Poprulebase and SimAgent libraries, and also making heavy use of RCLIB for graphics.
package_template: Template directory for constructing a new package.
popmatlab: A 'virtual' package which makes visible a subset of the facilities included in the popvision package, providing general purpose mathematical tools that are not restricted to being used for vision, including the well known BLAS and LAPACK toolkits, which are here made available from Pop-11.
popvision: David Young's Popvision library (including many C programs for image manipulation invoked from Pop-11). This includes the 'popmatlab' library.
prb: The Poprulebase subset of SimAgent, which can be used on its own, e.g. for expert systems.
rclib: The RCLIB graphical extension to Pop-11 illustrated here.
rcmenu: An extension to RCLIB providing the 'recursive hypermenu' package.
sim: The sim_agent library extensions, to be added to Poprulebase to provide the SimAgent toolkit.
teaching: AI teaching materials -- programs and documentation.
vedgn: An extension to the Ved editor for reading news (usenet).
vedlatex: Extensions to the Ved editor for use with LaTex.
vedmail: Programs for reading mail in a standard unix mail file, for sending mail, replying, unpacking attachments, creating and sending attachments, etc. All written in pop-11.
vedutils: Extensions to the Ved editor used in Birmingham.
OTHER THINGS IN THE SAME DIRECTORY
gz: A directory for tar files containing packages supplied in compressed form only.
install_package: A shell script for unpacking and installing packages from tar files of the form package.tar.gz into a directory package
make_tarfiles: Shell script for creating tar files from the currently installed packages.
setup: various startup scrips
Bugfixes are recorded in this directory tree. http://www.cs.bham.ac.uk/research/poplog/bugfixes/
The BUGREPORTS file lists bugs and fixes (where available) in reverse chronological order. The file ALLFILES file lists all the files in the bugfixes directory, in reverse chronological order.
Other changes are listed in the CHANGES.txt file now included with poplog, along with revision notes included source code and library files.
Please submit bugreports to the comp.lang.pop newsgroup or the pop-forum email list, not to any individual. Before submitting a report on a problem it is worth looking at this form for bugreports. Following the instructions will make it more likely that someone can help you.
The Draft Abbreviated User Guide
(in something like the format of a Unix/Linux "man file"), also included
with the downloadable packages, will give experienced programmers an
idea of the contents of Poplog. It shows how to start up Poplog running
one or more language compilers possibly with additional saved images,
either starting in the editor or talking directly to a compiler. It is
partly derived from the "man" file originally distributed with Poplog,
and is now the basis for the recommended man file for local
installation. The User Guide can be inspected here:
The default linux Poplog installation script installs the corresponding man file in /usr/local/man/man1/poplog.1 with several names, so that it can be invoked by any of
man poplog man pop11 man pop_prolog man clisp (or man pop_lisp) man pml man ved man xved
The whole "setup" directory, including User Guide, man files, sample user startup scripts and copyright notice can be fetched in this file: http://www.cs.bham.ac.uk/research/poplog/setup.tar.gz
The complete sysdoc directory is available as a gzipped tar file http://www.cs.bham.ac.uk/research/poplog/sysdoc.tar.gz
Or a chm file for reading in a microsoft windows help browser, kindly converted by Michael Malien in June 2003 (since when there have been some changes to the html version).
CHM files (Compiled HTML files) are explained at http://www.techscribe.co.uk/techw/compiled_html.htm and at this Microsoft web site
Nils Valentin kindly informed me that a tool for extracting html files from a chm file is obtainable here http://126.96.36.199/~jedwin/projects/chmlib/
Instructions for compiling and using the chmlib package are available here: http://www.linux-magazine.com/issue/31/OpenOfficeConverters.pdf
However, for users of linux/unix systems it will normally be more convenient to fetch one of the other packaged versions of the primer.
There are also other versions of the primer available:
RCLIB provides powerful object oriented tools for building graphical interfaces, including control panels with sliders, dials, scrolling text panels, etc. It supports interactive graphical interfaces to the Agent toolkit described below. Some examples can be viewed in http://www.cs.bham.ac.uk/research/poplog/figs/rclib
- The RCLIB (relative coordinates) extension to Pop-11 X window based graphics, using the Poplog widget set to provide tools for graphical interfaces without using Motif. This can be used with all X window based versions of Poplog, including the Linux version, whether Motif is or is not available. rclib.tar.gz
Examples of displays produced by the "RCLIB" Graphic Library can be found in http://www.cs.bham.ac.uk/research/poplog/figs/rclib/
- The RCMENU (recursive hypermenu) package provides Pop-11 utilities based on RCLIB, for creating autoloadable "stay up" and "pop up" menus and control panels, (Does not use any motif facilities, and does not require the Pop-11 "propsheet" mechanisms to work.)
This package is basically tailored to provide help for students in Birmingham, especially when learning to use the editor. However it is very easily modified to suit different sites, or users.
Examples shown, including screenshot here.
An earlier, less versatile, version of this package, based on propsheet and motif, is in the menu.tar.gz file listed below.
The SimAgent is a very general and flexible toolkit for exploring agent architectures, with graphical display facilities based on RCLIB described above. The core of SimAgent is a powerful forward chaining production system interpreter, Poprulebase, described here, which supports integration of symbolic and subsymbolic mechanisms (e.g. neural nets). Multiple concurrent instantiations of Poprulebase define a processing architecture for an agent. The SimAgent toolkit supports development of systems in which multiple such agents can co-exist and interact. SimAgent was described in the March 1999 issue of Communications of the ACM.
Some movies showing some of the features of SimAgent are here (with thanks to Mike Lees at Nottingham for the Boids and Tileworld examples): http://www.cs.bham.ac.uk/research/poplog/figs/simagent/
For a detailed overview of the toolkit see http://www.cs.bham.ac.uk/~axs/cogaff/simagent.html and the slide presentation using PDF or Postscript at: http://www.cs.bham.ac.uk/~axs/misc/draft/toolkit.pdf
The toolkit is now included in the standard Birmingham Linux Poplog packages, but can also be downloaded separately:
- The SimAgent Toolkit as described in http://www.cs.bham.ac.uk/~axs/cogaff/simagent.html including Poprulebase and Sim_agent libraries. Needs RCLIB (above).
Can be installed using the install_package script
Poprulebase is a highly extendable production system interpreter used in the SimAgent toolkit, including support for interactions between symbolic and sub-symbolic mechanisms. It can also be used alone as an Expert System Shell.
The SimAgent specific code and documentation files can be browsed in the newkit/sim/ directory. Tutorial and reference documentation is in the teach/ and help/ subdirectories.
A summary of the main changes to SimAgent (and Poprulebase) introduced in the summer of 1999 can be found in the help/newkit file
An example SimAgent tutorial file is newkit/sim/teach/sim_feelings
- oldprb.tar.gz Poprulebase (version 4.0),
- oldsim.tar.gz The SimAgent toolkit (version 4.0) (requires old version of poprulebase and also RCLIB).
David Young at the University of Sussex has produced some excellent teaching materials and tools for image processing and AI vision, and has given permission for these to be distributed. A large collection of mathematical tools and array manipulation tools, including interfaces to the BLAS and LAPACK packages, has been added, constituting a matlab-like facility in Poplog, which is free and open source.
An overview of the teaching materials in the popvision package is available here http://www.cogs.susx.ac.uk/users/davidy/teachvision/vision0.html
The programs work fast because there's a mixture of Pop-11 and C. The package includes scripts for compiling the C sources on solaris, linux and alpha Unix systems. The programs and documentation can be browsed online in http://www.cs.bham.ac.uk/research/poplog/popvision
(See especially the popvision/help/* files -- though you may have slight problems with the "VED graphic" characters in a Web browser.)
The whole package can be fetched from http://www.cs.bham.ac.uk/research/poplog/popvision.tar.gz
This also includes David Young's teaching material on on multi-layer perceptrons.
The Array manipulation and Linear Algebra Packages in PopvisionThe Popvision package includes three new libraries (added in 2004) that make available a very rich collection of array manipulation facilities and mathematical facilities including the BLAS and LAPACK linear algebra packages, all now accessible interactively from pop-11.
The LAPACK and LAPOP librariesThese libraries provide Pop11 interfaces to BLAS and LAPACK
Anyone who wants all this but does not have blas and lapack for linux (apparently included in some linux distributions --e.g. redhat 9) can get rpms for various architectures from http://ftp.pld.org.pl/dists/ac/ready/
The BLAS (Basic Linear Algebra Subprograms) are high quality "building block" routines for performing basic vector and matrix operations. Level 1 BLAS do vector-vector operations, Level 2 BLAS do matrix-vector operations, and Level 3 BLAS do matrix-matrix operations. Because the BLAS are efficient, portable, and widely available, they're commonly used in the development of high quality linear algebra software, LINPACK and LAPACK for example.
LAPACK is written in Fortran77 and provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. The associated matrix factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are also provided, as are related computations such as reordering of the Schur factorizations and estimating condition numbers. Dense and banded matrices are handled, but not general sparse matrices. In all areas, similar functionality is provided for real and complex matrices, in both single and double precision.
The popvision tar file can be installed using the install_package script, which will untar the package into the directory $poplocal/local/ where it will create $poplocal/local/popvision/ with appropriate sub-directories, and also $poplocal/local/lib/popvision.p for easy access using the Pop-11 command uses popvision;
David Young's poplog web page at Sussex University includes some additional facilities that may be found useful, including
- External function call with vector-offset arguments. (excall: library - now included in the popvision package.)
- Extensions to Ved to speed up editing HTML (not an HTML previewer - but able to save you a lot of keystrokes if you edit HTML source)
- A Boyer-Moore-type algorithm for fast string searching. Sometimes very much faster than standard string searching, though not in fact optimal.
- A permutation generator.
David Young at the University of Sussex previously produced some neural net facilities which were considerably extended by Julian Clinton. A slightly modified version of the resulting package is available here. The system can be browsed online in http://www.cs.bham.ac.uk/research/poplog/neural
(See especially the neural/help/* files -- though you may have slight problems with the "VED graphic" characters in a Web browser.)
The package is now automatically included with linux poplog (32 bit and 64 bit).
However, it can also be fetched from http://www.cs.bham.ac.uk/research/projects/poplog/neural.tar.gz
It can be installed using the install_package script
is a demonstration package by Matthias Scheutz showing how to use sim_agent to explore evolutionary processes in fairly simple agents. Requires the SimAgent toolkit (included in the latest linux poplog package).
Introductory documentation can be found in this directory.
The tar file can be installed (in unix or linux poplog) using the install_package script.
See also http://mypage.iu.edu/~mscheutz/
Robin was the designer of the language "COWSEL" which was redesigned and extended and first became widely known as POP-2, around 1971. Pop-11, the core language of Poplog, is a derivative of POP-2.
For many years he worked in the Artificial Intelligence laboratory at the University of Edinburgh, including making major contributions to the Edinburgh robot Freddy_II, the Alvey-funded Edinburgh DESIGNER system (which used Poplog), and other projects.
In 1985 he moved to The University of Massachusetts at Amherst where he continued doing research and teaching and making contributions at a distance to the development of Pop-11 and poplog.
He retired from UMASS around 2003(?) and moved back to Scotland, where he died in 2004.
There is a memorial web site for him at Umass
Book on Pop-11 and ProgrammingWhile at UMASS Robin Popplestone wrote a large draft book on Pop-11 Paradigms of Programming. Unfortunately he died before completing it. The latest version is available here, including a review by a reader, installed 11 Sep 2008.
The PopScheme System
(Scheme implemented in Pop-11)This system, providing an incremental compiler for Scheme, was developed by Robin Popplestone at UMASS, and used there for teaching for several years. It became freely available online in October 1999. A copy is available which has been re-packaged to make it more portable (the original tar file had absolute path names, for instance). This has not been fully checked, though it does work with the examples.scm test file provided in the package.
There are two formats for downloading,
If in doubt check out the version at Umass, described in ftp://www-edlab.cs.umass.edu/pub/cs287/README
ParadigmsRobin Popplestone's lecture notes on programming paradigms are available and browsable here, and downloadable here (gzipped tar file about 1MB),
The influential Nonlin hierarchical partial order planning system, developed by Austin Tate in the University of Edinburgh is available in a browsable and downloadable from here: http://www.cs.bham.ac.uk/research/poplog/nonlin and also from the Edinburgh Nonlin Web site: http://www.aiai.ed.ac.uk/project/nonlin/
Austin has put a lot of effort into making it run as it used to in a much earlier version of Poplog, so that it works in both Windows poplog and Linux/Unix poplog (but not yet in the Poplog editor Ved, as it expects to interact directly with the terminal).
Further information is here http://www.cs.bham.ac.uk/research/poplog/nonlin/AREADME.txt
If you wish to play with Nonlin, fetch the zip file. Instructions and historical information regarding Nonlin, including a review of the package, are in the http://www.cs.bham.ac.uk/research/poplog/nonlin/readme.txt file.
Further information, including sample problem domain definitions using the Nonlin task formalism (TF) can be found in these directories:
Nonlin is also available in Edinburgh here: http://www.aiai.ed.ac.uk/project/nonlin/
The original 1976 technical report defining Nonlin has been scanned in and is now available as a PDF file (6.75Mbytes).Tate, A. (1976) "Project Planning Using a Hierarchic Non-linear Planner", D.A.I. Research Report No. 25, August 1976, Department of Artificial Intelligence, University of Edinburgh.It is also available from the Birmingham site.
Further information can be found by giving "nonlin+planner" to google.
Eliza is a very famous very old AI program simulating a non-directive psychotherapist originally created as a demonstration of AI programming by Joseph Weizenbaum. (See this short Biography). A simplified version of Eliza, (a kind of Chatbot Eliza) implemented in Pop-11 is now online here http://www.cs.bham.ac.uk/research/poplog/eliza/
Between September 2002 and February 2005 this on-line Pop-11 Eliza had answered about 17,100 questions. It is just a toy, but is less repetitive than many of the online versions of Eliza (partly because of the variety of rules and partly because of the way rules are randomised on each cycle) and it has been of considerable educational value in introductory AI courses. A slightly simpler version of the code for the Pop-11 eliza is available for use with poplog.
A slightly revised version is used for the Poplog Eliza web site, available here: here).
NOTE: since the speak_espeak program was added to Pop-11, you can make Eliza speak as well as type responses to the user, provided you have the linux espeak package installed. Use google to find it for your system. On Fedora 10 it was installed simply by using the command:yum install espeakA teach file introducing students to the task of building their own version of Eliza in Pop-11 can be found here http://www.cs.bham.ac.uk/research/poplog/doc/popteach/respond
A different design, produced by Riccardo Poli, for a potentially much more sophisticated Eliza, because it can maintain and manipulate arbitrary memories of its interactions in the Poprulebase database, can be found in the middle of this introduction to Poprulebase http://www.cs.bham.ac.uk/research/poplog/newkit/prb/teach/rulebase
The Pop-11 and AI teaching and documentation files previously included in the bhamteach tar package and now part of the standard Poplog distribution, can be browsed online in these directories:
There are other online browsable files included in various packages some of which, though not all, are mentioned elsewhere in this file. E.g.
Several additional "packages" are available, mostly developed in the University of Birmingham. All these are compressed tar files, or simply tar files. These should be unpacked in the $poplocal/local/ directory in order to be conveniently accessible. You can put them in a different place if you understand how to manipulate the search lists used by Ved and the Poplog compilers.
Do not install them if you have Poplog version 15.6, 15.62, or later, as they are already included.
An extension to the Pop-11 pattern matcher to support lexically scoped pattern variables. (This is included in the bham.teach.tar.gz file, and in the poprulebase package.)
Latex tutorial and utilities (for driving Latex from inside Ved)
Ved-based utilities for reading and posting net news.
Ved-based utilities for sending, reading and replying to email.
- Other superseded packages
Steve Leach and Graham Higgins once developed a Global Open Source Poplog Library (GOSPL) site, at http://www.poplog.org/gospl/ (currently not working - Aug 2009)
This contains some contributed programs not available elsewhere, provided by Steve Leach and Graham Higgins. However the 'gospl' code is available as a gzipped tar file here and as a browsable directory here.
The browsable contrib directory contains a number of packages and utilities made available to Poplog users.
The complete contents of the contrib directory are available in a gzipped tar file: contrib.tar.gz.
This includes source code from various books, including
- Code examples the book by Gerald Gazdar and Chris Mellish on Natural Language Processing (including the Pop-11, Prolog and Common Lisp versions)
The Original of the book is also online here, in three versions.
- Pop-11 program examples from the book Computers and Thought by Mike Sharples and others. The full text of the book, though without the pictures is available online here:
- Larry Paulson's book ML for the Working Programmer, along with some other ML programs.
- The book Artificial Intelligence Through Search by Chris Thornton and Benedict du Boulay.
See also the materials developed at the University of Amherst by Robin Popplestone
It is expected that a number of mirror sites will be developed.
www.poplog.org is now defunct.is the first of these. It duplicates some of the contents of this directory and also includes the GOSPL site described above.
WARNING: downloads of versions of poplog at other sides may be out of date. It is best to use the downloads from this site, if at all possible.
Information for mirror sitesTo facilitate this there was previously a directory containing links to material in this directory which is suitable for fetching to a mirror site. This no longer seems to be necessary, given current internet speeds.
OpenPoplog at SourceforgeSee http://www.cs.bham.ac.uk/research/poplog/openpoplog.html
OTHER FREE SOFTWARE SITES
- thefreecountry.com: Free Programmers' Resources: free compilers, source code, programming tools, tutorials, and many other things.
More to be added ....
Lesstif Problems (Now fixed)From Fedora Core 6, motif is no longer provided in Fedora (because of licensing problems of openmotif), so Lesstif is provided instead. This has been found to cause problems in Poplog. In particular, closing windows causes spurious warning messages to be generated by Lesstif code. Details of the problem and a fix are listed in http://www.cs.bham.ac.uk/research/projects/poplog/bugfixes/BUGREPORTS
It is not necessary to link poplog with motif or lesstif in order to use most of its graphical facilities. In particular the RCLIB graphical tools do not depend on motif functionality.
JUMP TO CONTENTS LIST
Chronological Record of ContentsIn order to help those developing mirror sites determine what is new in the Free Poplog directory, there is a file created usingls -FglRt | gzipwhich gives a reverse chronological listing of the complete free poplog directory. This file is updated after all major changes.
This work, and everything else on the Poplog website, is licensed under a Creative Commons Attribution 3.0 License.
If you use or comment on any of the ideas, tools or documentation, please include a URL if possible, so that readers can see the original (or the latest version thereof).
Suggestions for improvement are welcome.
This file maintained by:
Last Updated: 16 Oct 2009; 1 Jan 2010; 19 Jan 2010; 24 Jan 2010; 7 Feb 2010; 12 Aug 2010; 5 May 2012; 4 Sep 2012; 12 Sep 2012