POP-11
   HOME

TheInfoList



OR:

POP-11 is a
reflective Reflection is the change in direction of a wavefront at an interface between two different media so that the wavefront returns into the medium from which it originated. Common examples include the reflection of light, sound and water waves. The ...
, incrementally compiled
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
with many of the features of an
interpreted language In computer science, an interpreter is a computer program that directly executes instructions written in a programming or scripting language, without requiring them previously to have been compiled into a machine language program. An inter ...
. It is the core language of the Poplog programming environment developed originally by the
University of Sussex The University of Sussex is a public university, public research university, research university located in Falmer, East Sussex, England. It lies mostly within the city boundaries of Brighton and Hove. Its large campus site is surrounded by the ...
, and recently in the School of Computer Science at the
University of Birmingham The University of Birmingham (informally Birmingham University) is a Public university, public research university in Birmingham, England. It received its royal charter in 1900 as a successor to Queen's College, Birmingham (founded in 1825 as ...
, which hosts the main Poplog website. POP-11 is an evolution of the language POP-2, developed in
Edinburgh University The University of Edinburgh (, ; abbreviated as ''Edin.'' in post-nominals) is a public research university based in Edinburgh, Scotland. Founded by the town council under the authority of a royal charter from King James VI in 1582 and offi ...
, and features an open
stack Stack may refer to: Places * Stack Island, an island game reserve in Bass Strait, south-eastern Australia, in Tasmania’s Hunter Island Group * Blue Stack Mountains, in Co. Donegal, Ireland People * Stack (surname) (including a list of people ...
model (like Forth, among others). It is mainly procedural, but supports declarative language constructs, including a pattern matcher, and is mostly used for research and teaching in
artificial intelligence Artificial intelligence (AI) is the capability of computer, computational systems to perform tasks typically associated with human intelligence, such as learning, reasoning, problem-solving, perception, and decision-making. It is a field of re ...
, although it has features sufficient for many other classes of problems. It is often used to introduce symbolic programming techniques to programmers of more conventional languages like Pascal, who find POP syntax more familiar than that of
Lisp Lisp (historically LISP, an abbreviation of "list processing") is a family of programming languages with a long history and a distinctive, fully parenthesized Polish notation#Explanation, prefix notation. Originally specified in the late 1950s, ...
. One of POP-11's features is that it supports
first-class function In computer science, a programming language is said to have first-class functions if it treats function (programming), functions as first-class citizens. This means the language supports passing functions as arguments to other functions, returning ...
s. POP-11 is the core language of the Poplog system. The availability of the compiler and compiler subroutines at run-time (a requirement for incremental compiling) gives it the ability to support a far wider range of extensions (including run-time extensions, such as adding new data-types) than would be possible using only a macro facility. This made it possible for (optional) incremental compilers to be added for
Prolog Prolog is a logic programming language that has its origins in artificial intelligence, automated theorem proving, and computational linguistics. Prolog has its roots in first-order logic, a formal logic. Unlike many other programming language ...
,
Common Lisp Common Lisp (CL) is a dialect of the Lisp programming language, published in American National Standards Institute (ANSI) standard document ''ANSI INCITS 226-1994 (S2018)'' (formerly ''X3.226-1994 (R1999)''). The Common Lisp HyperSpec, a hyperli ...
and
Standard ML Standard ML (SML) is a General-purpose programming language, general-purpose, High-level programming language, high-level, Modular programming, modular, Functional programming, functional programming language with compile-time type checking and t ...
, which could be added as required to support either mixed language development or development in the second language without using any POP-11 constructs. This made it possible for Poplog to be used by teachers, researchers, and developers who were interested in only one of the languages. The most successful product developed in POP-11 was the Clementine
data mining Data mining is the process of extracting and finding patterns in massive data sets involving methods at the intersection of machine learning, statistics, and database systems. Data mining is an interdisciplinary subfield of computer science and ...
system, developed by ISL. After SPSS bought ISL, they renamed Clementine to ''
SPSS Modeler IBM SPSS Modeler is a data mining and text analytics software application from IBM. It is used to build Predictive modelling, predictive models and conduct other analytic tasks. It has a visual interface which allows users to leverage statistica ...
'' and decided to port it to C++ and
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
, and eventually succeeded with great effort, and perhaps some loss of the flexibility provided by the use of an AI language. POP-11 was for a time available only as part of an expensive commercial package (Poplog), but since about 1999 it has been freely available as part of the
open-source software Open-source software (OSS) is Software, computer software that is released under a Open-source license, license in which the copyright holder grants users the rights to use, study, change, and Software distribution, distribute the software an ...
version of Poplog, including various added packages and teaching
libraries A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
. An online version of
ELIZA ELIZA is an early natural language processing computer program developed from 1964 to 1967 at MIT by Joseph Weizenbaum. Created to explore communication between humans and machines, ELIZA simulated conversation by using a pattern matching and ...
using POP-11 is available at Birmingham. At the University of Sussex, David Young used POP-11 in combination with C and Fortran to develop a suite of teaching and interactive development tools for image processing and vision, and has made them available in the Popvision extension to Poplog.


Simple code examples

Here is an example of a simple POP-11 program: define Double(Source) -> Result; Source*2 -> Result; enddefine; Double(123) => That prints out: ** 246 This one includes some list processing:

 define RemoveElementsMatching(Element, Source) -> Result;
     lvars Index;
      %
     for Index in Source do
         unless Index = Element or Index matches Element then
             Index;
         endunless;
     endfor;
     % -> Result;
 enddefine;

 RemoveElementsMatching("the",  the cat sat on the mat) => ;;; outputs  cat sat on mat
 RemoveElementsMatching("the", 
the cat The Cat may refer to: Nickname * Mathilde Carré (1910-2007), French spy, double and possibly triple agent * Peter Bonetti (1941–2020), English footballer * Greg Cattrano (born 1975), American lacrosse player * Ernest Miller (born 1964), Amer ...
at onthe mat]) => ;;; outputs
the cat The Cat may refer to: Nickname * Mathilde Carré (1910-2007), French spy, double and possibly triple agent * Peter Bonetti (1941–2020), English footballer * Greg Cattrano (born 1975), American lacrosse player * Ernest Miller (born 1964), Amer ...
at onmat] RemoveElementsMatching( = cat,
the cat The Cat may refer to: Nickname * Mathilde Carré (1910-2007), French spy, double and possibly triple agent * Peter Bonetti (1941–2020), English footballer * Greg Cattrano (born 1975), American lacrosse player * Ernest Miller (born 1964), Amer ...
is a
big cat The term "big cat" is typically used to refer to any of the five living members of the genus ''Panthera'', namely the tiger, lion, jaguar, leopard, and snow leopard. All cats descend from the ''Felidae'' family, sharing similar musculature, c ...
) => ;;; outputs
is a In knowledge representation, ontology components and ontology engineering, including for object-oriented programming and design, is-a (also written as is_a or is a) is a subsumptive relationship between abstractions (e.g., types, classes), wh ...
Examples using the POP-11 pattern matcher, which makes it relatively easy for students to learn to develop sophisticated list-processing programs without having to treat patterns as tree structures accessed by 'head' and 'tail' functions (CAR and CDR in Lisp), can be found in th
online introductory tutorial
The matcher is at the heart o

Some of the powerful features of the toolkit, such as linking pattern variables to inline code variables, would have been very difficult to implement without the incremental compiler facilities.


See also

* COWSEL (aka POP-1) programming language


References

* R. Burstall, A. Collins and R. Popplestone, ''Programming in Pop-2'' University Press, Edinburgh, 1968 * D.J.M. Davies, ''POP-10 Users' Manual'', Computer Science Report #25, University of Western Ontario, 1976 * S. Hardy and C. Mellish, 'Integrating Prolog in the Poplog environment', in ''Implementations of Prolog'', Ed., J.A. Campbell, Wiley, New York, 1983, pp 147–162 * R. Barrett, A, Ramsay and A. Sloman, ''POP-11: a Practical Language for Artificial Intelligence'', Ellis Horwood, Chicester, 1985 * M. Burton and N. Shadbolt, ''POP-11 Programming for Artificial Intelligence'', Addison-Wesley, 1987 * J. Laventhol, ''Programming in POP-11'', Blackwell Scientific Publications Ltd., 1987 * R. Barrett and A. Ramsay, ''Artificial Intelligence in Practice:Examples in Pop-11'', Ellis Horwood, Chicester, 1987. * M. Sharples et al., ''Computers and Thought'', MIT Press, 1987. (An introduction to Cognitive Science using Pop-11. Online version referenced above.) * James Anderson, Ed., ''Pop-11 Comes of Age: The Advancement of an AI Programming Language'', Ellis Horwood, Chichester, 1989 * G. Gazdar and C. Mellish, ''Natural Language Processing in Pop11/Prolog/Lisp'', Addison Wesley, 1989.
read online
* R. Smith, A. Sloman and J. Gibson, POPLOG's two-level virtual machine support for interactive languages, in ''Research Directions in Cognitive Science Volume 5: Artificial Intelligence'', Eds. D. Sleeman and N. Bernsen, Lawrence Erlbaum Associates, pp. 203–231, 1992. (Available as Cognitive Science Research Report 153, School of Informatics, University of Sussex). * Chris Thornton and Benedict du Boulay, ''Artificial Intelligence Through Search'', Kluwer Academic (Paperback version Intellect Books) Dordrecht Netherlands & Norwell, MA USA (Intellect at Oxford) 1992. * A. Sloman
Pop-11 Primer
1999 (Third edition)


External links

*, Free Poplog Portal *
Information about POP-11 teaching materials

The Poplog.org website (including partial mirror of Free poplog web site)
(currently defunct: se
its more recent copy (Jun 17, 2008)
@ Internet Archive
Wayback Machine The Wayback Machine is a digital archive of the World Wide Web founded by Internet Archive, an American nonprofit organization based in San Francisco, California. Launched for public access in 2001, the service allows users to go "back in ...
)
An Overview of POP-11 (Primer for experienced programmers)
(alt
PDF
* Waldek Hebisch produced a small collection o
programming examples
in Pop-11, showing how it can be used for symbol manipulation, numerical calculation, logic and mathematics.
Computers and Thought: A practical Introduction to Artificial Intelligence
on-line book introducing
Cognitive Science Cognitive science is the interdisciplinary, scientific study of the mind and its processes. It examines the nature, the tasks, and the functions of cognition (in a broad sense). Mental faculties of concern to cognitive scientists include percep ...
through Pop-11.
The SimAgent (sim_agent) Toolkit

Pop-11 Eliza
in the poplog system
Tutorial on Eliza


since about 1976.
2-D (X) graphics in Pop-11

Objectclass
the
object oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impleme ...
extension to Pop-11 (modelled partly on CLOS and supporting
multiple inheritance Multiple inheritance is a feature of some object-oriented computer programming languages in which an object or class can inherit features from more than one parent object or parent class. It is distinct from single inheritance, where an object ...
).
Tutorial introduction
to object oriented programming in Pop-11.
Further references

Online documentation on Pop-11 and Poplog

Online system documentation, including porting information

Entry for Pop-11 at HOPL (History of Programming Languages) web site
{{Authority control Lisp programming language family Artificial intelligence History of computing in the United Kingdom Science and technology in East Sussex University of Sussex