new addon: poplog (long posting)

From: Stephen Isard (S.IsardDeleteThis@ed.ac.uk)
Date: Mon Apr 09 2001 - 14:47:43 CEST


I have prepared a reduced version of the Poplog multi-language
programming system for use with muLinux. Here's a quote from the Poplog
manual page:

       Poplog is an integrated, interactive, multi-language soft-
       ware development environment. It provides incremental com-
       pilers for POP-11, PROLOG, COMMON LISP and ML. Features
       include a powerful extensible multi-window text editor
       (Ved), over 1700 documentation files, the Poplog Window
       Manager (Pwm), many demonstration and utility libraries
       including an object oriented extension to Pop-11 known as
       Flavours, compiler-building tools, and mechanisms for
       dynamically linking PASCAL, FORTRAN and C programs so that
       they can be called from Poplog.

       Since Version 14, it has included a sophisticated inter-
       face to The X Window System (X11R4), with facilities for
       dynamically linking in widget sets (e.g. Motif or Open
       Look), handling toolkit events, and remote access via X
       terminals.

       Poplog includes the source code for a large number of
       library packages, which are usually programs that the user
       can read, copy and modify.

Poplog was originally developed by people engaged in artificial
intelligence teaching and research, and many of the library packages are
artificial intelligence programs for, e.g., analysing and generating
language, interpreting visual scenes and reasoning about problems. I
have included a small number of Poplog "teach" files, to give an idea of
what they are like. There are many more at the main Poplog site
(http://www.cs.bham.ac.uk/research/poplog/freepoplog.html). The ones I
have included are about analysing (English) sentences. They begin with
a mini Eliza program and gradually get smarter. [Aside: I think there is
something in common with the translation work that Michele has been
telling us about. Not that I am suggesting it would be practical to
invoke poplog routinely as part of all shell scripts that print human
language output, but it is a good programming environment for working on
the problem.]

If you aren't interested in artificial intelligence, or even if you are,
you can also think of the pop11 language within poplog as a very
powerful scripting language. From another point of veiw, the ability to
link in C code and run it interactively makes it a good C debugging tool
as well. You can run individual functions on test data to see what they
return, without having to write a `main' around them.

The differences between the small Poplog package that I have put
together and the full Poplog available from the Birmingham site are that
to keep it small I have included just a personal selection from the many
library files and teaching and reference documents and I have recompiled
the basic core system for libc5. (Most of poplog is written in pop11,
which is good for portability, but there is a small set of system
interface files written in C.) I have left out the programming interface
to X, to keep the size down, but it would be easy to compile a version
including it. There are instructions explaining how in the
documentation.

Poplog is very easy to install on a hard disk based unix system, and
this package is the same as the large one as far as installation goes.
Once you have downloaded the tar archive (go to
ftp://ftp.cogsci.ed.ac.uk/pub/stepheni/poplog and get the
file poplog1553.linux.libc5.nox.tar.bz2), all you have to do is:

1. Untar the package in /usr/poplog (or another location of your choice)
e.g.,
cd /usr/poplog
cat poplog1553.linux.libc5.nox.tar.bz2 | bzip2 -d -c | tar xvf -

2. Set the environment variable `usepop' to /usr/poplog (or whatever
directory you chose for the previous step)
export usepop=/usr/poplog

3. Source the setup file in $usepop/pop/com
. $usepop/pop/com

Superficially, this procedure looks as if it would not be hard to fit
into the mulinux setup framework, so that poplog.sh could be, or be
called by, a prolog function in the same way as is done for other
addons. However, what poplog.sh does it to set a lot of environment
variables in the user's shell, and I don't know how to achieve that
effect before the user logs in. A simple way of doing it at login time
is to insert the lines

export usepop=/usr/local/poplog
. $usepop/pop/com

in the file /etc/profile, or in an individual user's $HOME/.profile.
I guess a setup function could be written to scan /etc/profile for those
two lines, and put them in if they aren't already present, but that
looks risky and prone to error.

For the moment, therefore, I will leave things as they are, and wait for
suggestions on the best way to achieve full mu integration.

I do recommend trying it out, or at least visiting
http://www.cs.bham.ac.uk/research/poplog/freepoplog.html to find out
more.

Question you may be asking yourself: If this is so wonderful, how come
I've never heard of it before?

Answer: Good question, but there is no single simple answer. My own
personal explanation puts a lot of weight on its not being free at
crucial times in its history. That problem at least has now been
remedied. A bit of this history can be seen in the INSTALL.TXT file
that I have put directly in the ftp directory, as well as at the top
level in the tar archive. (It is actually rather more than an install
file.) More history can be found at the Birmingham website.

Read the README, included both in the ftp directory and in the
tararchive, for getting started once poplog is installed.

Enjoy.

Stephen Isard

---------------------------------------------------------------------
To unsubscribe, e-mail: mulinux-unsubscribe@sunsite.dk
For additional commands, e-mail: mulinux-help@sunsite.dk



This archive was generated by hypermail 2.1.6 : Sat Feb 08 2003 - 15:27:18 CET