This is part of the Free Poplog Portal Warning The www.poplog.org web site seems to be defunct (June 2009)
The core language, Pop-11, in some ways like Python, in other ways like Lisp, can also be used to introduce a variety of common programming paradigms, including use of loops, recursion, co-routines, rule-based programming, event-driven programming, list processing, pattern matching for structure manipulation, numerical programming, array programming, use of object oriented programming with multiple inheritance, and uses of higher order functions and closures (as in Scheme). A linear algebra package based on Lapack and BLAS is described here, here, and here.
A subset of Pop-11 with graphical facilities provides the functionality of the LOGO Turtle, but with many additional features available, illustrated here and in this tutorial introduction to making pictures of faces, and combining graphical commands with loops, and list processing.
There are many 'teach' files developed at Sussex University,
Birmingham University and elsewhere,
introducing concepts and techniques, with exercises ranging from
simple program completion to development of whole systems, some of
them making use of packages provided by tutors to hide details for
beginners:
e.g.
some basic programming and AI teach files
here and
here, including a tutorial on building
a simple
chatbot based on pattern matching
an
introduction to
grammars, parsing. sentence
generation,
generation of stories and
haikus
;
some general programming including recursion and list-processing
here and
here (with answers available);
some rule-based programming
examples
here,
the use of the
SimAgent Toolkit
here and The Sussex
University Popvision tutorials
here, and a book, originally
published by MIT Press, though now out of print, providing an
introduction to Cognitive Science/AI using Pop-11 is
here. It uses an older
version of the Pop-11 syntax, which is still supported in Poplog.
A Pop-11 programming primer for people with previous programming
experience, using the current syntax is
here.
See also:
Beginners need powerful systems
Editor, documentation and libraries
The environment has many of the interactive features of interpreted
languages, though the Poplog languages are all incrementally
compiled to machine code for efficiency. The 'TEACH' files, and
other documentation files, are accessible through an integrated
visual editor (Ved, also usable as
XVed, in multi-window mode),
which 'knows about' the compilers, the program libraries and the
documentation libraries, and is extendable since it is implemented
in Pop-11. E.g. a tutorial file can have a hypertext link to other
documentation or to program libraries. Programming examples can be
run from inside the editor, then modified and run again, without
restarting the editor or Poplog.
For Emacs users there is a conversion package that extends Emacs to support integration with the Pop-11 compiler. Another option, for people who do not wish to use a new editor is to type commands into the Pop-11 (or Prolog, or Lisp, or ML) prompt in a shell command line, while editing and reading documentation quite separate editor. This will add some inconvenience and slow down development a little. (To a 'normal' edit/compile/test loop.)
There are many libraries extending the core system to support various kinds of programming tasks. For example the SimAgent toolkit supports exploration of architectures for more or less intelligent agents. The library and documentation system make use of search lists, allowing packages and teaching materials developed by different teachers, students and researchers to be combined flexibly, strongly encouraging team teaching. (Used for many years at Sussex University.)
There is also a collection of libraries and tutorials related to computer vision, i.e. image analysis and interpretation, in David Young's "Popvision" Library including neural net, array manipulation, and linear algebra utilities.
Some of the Poplog/Pop11 graphical facilities are illustrated here, and there are movies showing some student AI projects, based on the the SimAgent toolkit.
For more information on Poplog and its history see
http://www.cs.bham.ac.uk/research/projects/poplog/poplog.info.html
A history of developments in e-learning using Pop-11 and Poplog,
starting at Sussex University in 1976 can be found
here.
For many years Poplog was an expensive commercial product, first sold commercially by Sussex University for use on VAX+VMS (for UK£3,000, and much less for academics) in 1982, and then continually developed, ported to other platforms, and commercially supported up to 1998, first by Systems Designers (from 1983) and later by a spin-off, Integral Solutions Ltd (founded in 1989).
At one stage the commercial price was UK£7,500 (+VAT) for workstations, though the educational price was always much lower. Poplog was a solid, reliable, commercial product, used mainly, though not entirely, for AI and Software Engineering research, development and teaching. By about 1992 sales had exceeded $5,000,000.
The most famous product implemented in Poplog (mainly Pop-11) was the Clementine Data Mining system, developed by ISL, as a result of which they were bought by SPSS, so that Clementine (now called "PASW modeller"), could be integrated with their other data-mining tools (after re-writing in Java and C++, with some loss of functionality). Another product based on Poplog was a software validation toolkit produced by Praxis.
Further information is available on Wikipedia and other sites:
This file maintained by:
Aaron Sloman
http://www.cs.bham.ac.uk/~axs/
Last Updated: 26 Jun 2009