The view from Sussex University Library

Introduction

POPLOG is an integrated toolkit providing a highly extendable collection of languages and tools suitable for absolute beginners, advanced researchers and system programmers. While the toolkit is no longer actively developed, the environment is still useful for prototyping applications. POPLOG’s core language is POP-11, which was developed by Robin Popplestone,  a pioneer in the fields of machine intelligence and robotics. Thus, when the British government created the Alvey Programme as a reaction to the Japanese Fifth generation computer project, POPLOG became a core component of many projects.

The POPLOG Live CD & VM

You can experience this part of computing history for yourself by downloading a SliTaz LiveCD containing POPLOG or a VMware Virtual Appliance (root passwd: root). While these files were created back in 2014, they are still functional. The screenshot shown below is of SliTaz POPLOG running on the VMware Workstation 16 Player.

slitaz-polog-blocks-world

The compressed POPLOG VM takes up about 100M of disk space and the root filesystem is loaded into memory for increased speed!

Running POPLOG

Running the Slitaz VM is an ideal way to explore POPLOG if you do not have Linux. The fonts and window sizes could be better though. You can even create customised versions of the VM for prototyping applications. Backing up the code you write is easy because of the small size of the VM. To start POPLOG just click on the desktop icon. Obviously, adjusting the fonts and window sizes is not a problem when POPLOG is run on a newer operating system like UBUNTU 20.04. If you are running Linux then you can check out the GetPoplog repository on github. When Slitaz POPLOG is run in a console the fonts look a lot better. You can start POPLOG from the command line by typing in pop11. When you see the “setpop” prompt type in teach teach. Reading this file will get you started. Other interesting help files are teach ved and teach programming. You can exit pop11 by typing bye.

slitaz-polog-nox

If you are in a hurry to get started, you can execute POP11 code from within the Geany editor. Just open up a Sakura terminal and type in geany. When the editor window opens you can press F5 to execute the POP11 code contained in test.p, located in the Documents directory.

slitaz-polog-geany

Uses of Poplog

POPLOG is still ahead of many modern development environments in terms of the programming constructs available. Some of the most noticeable features are the built in pattern matcher, the powerful screen editor VED and the ability to do mixed language programming. There is also an extensive help and documentation system. Currently POPLOG supports POP11, PROLOG, LISP and ML. Initial development of the system was done at the University of Sussex during the 80s. The open source version was originally made available by the University of Birmingham.

POPLOG is suitable for highly complex domains requiring complex decision rules and data structures. ISL, the company who marketed POPLOG, before it was released as open source, was involved with the following application areas:

  • Avionics simulation (Avonicom)
  • Remote sensing / satellite image interpretation (NERC)
  • Traffic information management (TRRL)
  • Helical spring design (Smiths Industries)
  • Intelligent program prover (Program Validation)
  • ICAD/ICAM (GEC Electrical Projects)
  • System design for testability (RAF)
  • Air traffic control (CAA)
  • Image analysis (BP)
  • Real-time process monitoring/control (COGSYS)
  • Currency prediction (HP/BZW (/Logica))
  • Image processing tools (Reading University)

My favourite application areas are computational vision and computational linguistics. For computational vision, there is David Young’s library and for computational linguistics the book Natural Language Processing by Gazdar, & Mellish. There are in fact three versions of the book. One for each of the languages POP11, PROLOG and LISP.

Configuring SSH

If you want to ssh into the VM then you will need to download the latest version of Slitaz Poplog (root passwd: root; tux passwd: tux) and start dropbear. To do this open up a command window and type in dropbear at the shell prompt. Then you can connect to the POPLOG VM from the host using ssh (ssh -X tux@<ip address of Slitaz POPLOG> from a bash shell or MobaXterm).

Slitaz POPLOG running on Windows (MobaXterm ssh client)

On Windows 10, that is all the setup you need to do. On Linux hosts you need to add a few lines to your ssh config file. First open the config file with vi, by typing:

vi ~/.ssh/config

And then add the following to the file:

Host <IP Address of the Slitaz Poplog VM> 
        KexAlgorithms +diffie-hellman-group1-sha1

If you intend to ssh to other computers from the Poplog VM then you will need to add the following to the /etc/ssh/sshd_config file on each of these machines and restart the service, which you can do with these commands:

sudo echo “KexAlgorithms diffie-hellman-group1-sha1” >> /etc/ssh/sshd_config
sudo service ssh restart

Summary

In summary, to get started either boot up the virtual machine or liveCD. Then click on the POPLOG icon to start the system. When you see the “setpop” prompt type in teach teach. Reading this file will get you started. Other interesting help files are teach ved and teach programming. You can exit pop11 by typing bye. A few introductory articles and books are freely available online: An introduction to POP-11, Jocelyn Ireson-Paine’s article and the POPLOG primer:

You might also like to try out the demo programs located in the home directory. Just open a terminal and cd into demos. The following demos are available:

Lastest Version

Be sure to check out the latest version of Slitaz Poplog which will usually include more example code and installed packages. 

Credits

Updates

Last update: 22nd November 2021

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s