Poplog is an
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
,
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 software development
Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development invol ...
environment
Environment most often refers to:
__NOTOC__
* Natural environment, all living and non-living things occurring naturally
* Biophysical environment, the physical and biological factors along with their chemical interactions that affect an organism or ...
for the
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
s
POP-11
POP-11 is a reflective, incrementally compiled programming language with many of the features of an interpreted language. It is the core language of the Poplog programming environment developed originally by the University of Sussex, and recentl ...
,
Common Lisp
Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ''ANSI INCITS 226-1994 (S20018)'' (formerly ''X3.226-1994 (R1999)''). The Common Lisp HyperSpec, a hyperlinked HTML version, has been derived fro ...
,
Prolog
Prolog is a logic programming language associated with artificial intelligence and computational linguistics.
Prolog has its roots in first-order logic, a formal logic, and unlike many other programming languages, Prolog is intended primarily ...
, and
Standard ML
Standard ML (SML) is a general-purpose, modular, functional programming language with compile-time type checking and type inference. It is popular among compiler writers and programming language researchers, as well as in the development of the ...
, originally created in the
UK for teaching and research in
Artificial Intelligence
Artificial intelligence (AI) is intelligence—perceiving, synthesizing, and inferring information—demonstrated by machines, as opposed to intelligence displayed by animals and humans. Example tasks in which this is done include speech re ...
at the
University of Sussex
, mottoeng = Be Still and Know
, established =
, type = Public research university
, endowment = £14.4 million (2020)
, budget = £319.6 million (2019–20)
, chancellor = Sanjeev Bhaskar
, vice_chancellor = Sasha Roseneil
, ...
, and later marketed as a commercial package for software development as well as for teaching and research. It was one of the initiatives supported for a while by the UK government-funded
Alvey Programme
The Alvey Programme was a British government sponsored research programme in information technology that ran from 1984 to 1990. The programme was a reaction to the Japanese Fifth Generation project, which aimed to create a computer using massi ...
.
History
After an
incremental compiler
An incremental compiler is a kind of incremental computation applied to the field of compilation. Quite naturally, whereas ordinary compilers make a so-called clean build, that is, (re)build all program modules, an incremental compiler recompiles ...
for
Prolog
Prolog is a logic programming language associated with artificial intelligence and computational linguistics.
Prolog has its roots in first-order logic, a formal logic, and unlike many other programming languages, Prolog is intended primarily ...
had been added to an implementation of
POP-11
POP-11 is a reflective, incrementally compiled programming language with many of the features of an interpreted language. It is the core language of the Poplog programming environment developed originally by the University of Sussex, and recentl ...
, the name POPLOG was adopted, to reflect the fact that the expanded system supported programming in both languages. The name was retained, as a trade mark of the
University of Sussex
, mottoeng = Be Still and Know
, established =
, type = Public research university
, endowment = £14.4 million (2020)
, budget = £319.6 million (2019–20)
, chancellor = Sanjeev Bhaskar
, vice_chancellor = Sasha Roseneil
, ...
, when the system was later (mid 1980s) extended with incremental compilers for
Common Lisp
Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ''ANSI INCITS 226-1994 (S20018)'' (formerly ''X3.226-1994 (R1999)''). The Common Lisp HyperSpec, a hyperlinked HTML version, has been derived fro ...
and
Standard ML
Standard ML (SML) is a general-purpose, modular, functional programming language with compile-time type checking and type inference. It is popular among compiler writers and programming language researchers, as well as in the development of the ...
based on a set of tools for implementing new languages in the Poplog Virtual Machine. The user-accessible incremental-compiler tools that allow compilers for all these languages to be added also allow extensions to be made within a language to provide new powers that cannot be added using standard macros that merely allow new text to be equivalent to a longer portion of old text.
For some time after 1983, Poplog was sold and supported internationally as a commercial product, on behalf of the University of Sussex by Systems Designers Ltd (SDL), whose name changed as ownership changed. The main development work continued to be done by a small team at Sussex University until 1998, while marketing, sales, and support (except for UK academic users, who dealt directly with the Sussex team) was done by SDL and its successors (SD, then
SD-Scicon then
EDS) until 1991. At that time a management buy-out produced a spin-off company Integral Solutions Ltd (ISL), to sell and support Poplog in collaboration with Sussex University, who retained the rights to the name 'Poplog' and were responsible for the core software development while it was a commercial product. In 1992 ISL and Sussex University won a "Smart Award" in recognition of Poplog sales worth $5M.
ISL and its clients used Poplog for a number of development projects, especially ISL's data-mining system Clementine, mostly implemented in POP-11, using powerful graphical tools implemented also in POP-11 running on the
X Window System
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wit ...
. Clementine was so successful that in 1998 ISL was bought b
SPSS Incwho had been selling the statistics and data-mining package
SPSS
SPSS Statistics is a statistical software suite developed by IBM for data management, advanced analytics, multivariate analysis, business intelligence, and criminal investigation. Long produced by SPSS Inc., it was acquired by IBM in 2009. C ...
for which they needed a better graphical interface suited to expert and non-expert users. SPSS did not wish to sell and support Poplog as such, so Poplog then became available as a free
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
software package, hosted at the
University of Birmingham
, mottoeng = Through efforts to heights
, established = 1825 – Birmingham School of Medicine and Surgery1836 – Birmingham Royal School of Medicine and Surgery1843 – Queen's College1875 – Mason Science College1898 – Mason Univers ...
, which had also been involved in development after 1991. Later
IBM bought SPSS and Clementine is now marketed and supported as
SPSS Modeler
IBM SPSS Modeler is a data mining and text analytics software application from IBM. It is used to build predictive models and conduct other analytic tasks. It has a visual interface which allows users to leverage statistical and data mining a ...
.
Supported languages
Poplog's core language is
POP-11
POP-11 is a reflective, incrementally compiled programming language with many of the features of an interpreted language. It is the core language of the Poplog programming environment developed originally by the University of Sussex, and recentl ...
. It is used to implement the other languages, all of them
incrementally compiled, with an integrated common editor. In the Linux/Unix versions, POP-11 provides support for 2-D graphics via
X.
Poplog supports incrementally compiled versions of
Common Lisp
Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ''ANSI INCITS 226-1994 (S20018)'' (formerly ''X3.226-1994 (R1999)''). The Common Lisp HyperSpec, a hyperlinked HTML version, has been derived fro ...
,
POP-11
POP-11 is a reflective, incrementally compiled programming language with many of the features of an interpreted language. It is the core language of the Poplog programming environment developed originally by the University of Sussex, and recentl ...
,
Prolog
Prolog is a logic programming language associated with artificial intelligence and computational linguistics.
Prolog has its roots in first-order logic, a formal logic, and unlike many other programming languages, Prolog is intended primarily ...
, and
Standard ML
Standard ML (SML) is a general-purpose, modular, functional programming language with compile-time type checking and type inference. It is popular among compiler writers and programming language researchers, as well as in the development of the ...
. A separate package implemented by
Robin Popplestone
Robin John Popplestone (9 December 1938 in Bristol – 14 April 2004 in Glasgow) was a pioneer in the fields of machine intelligence and robotics. He is known for developing the COWSEL and POP-2, POP programming languages, and for his work on Fr ...
supports a version of
Scheme A scheme is a systematic plan for the implementation of a certain idea.
Scheme or schemer may refer to:
Arts and entertainment
* ''The Scheme'' (TV series), a BBC Scotland documentary series
* The Scheme (band), an English pop band
* ''The Schem ...
.
Poplog has been used both for academic research and teaching in artificial intelligence and also to develop several commercial products, apart from Clementine. In 1992, ISL and Sussex University won an ICP Million Dollar award in recognition of Poplog exceeding sales of US$5 million.
Platforms
POP-11 was at first implemented on a
DEC PDP-11
The PDP-11 is a series of 16-bit minicomputers sold by Digital Equipment Corporation (DEC) from 1970 into the 1990s, one of a set of products in the Programmed Data Processor (PDP) series. In total, around 600,000 PDP-11s of all models were sold, ...
computer in 1976, and was ported to
VAX
VAX (an acronym for Virtual Address eXtension) is a series of computers featuring a 32-bit instruction set architecture (ISA) and virtual memory that was developed and sold by Digital Equipment Corporation (DEC) in the late 20th century. The V ...
/
VMS in 1980. It became Poplog around 1982. Although the first commercial sales were for VAX/VMS, from the mid-1980s, the main Poplog development work was done on
Sun
The Sun is the star at the center of the Solar System. It is a nearly perfect ball of hot plasma, heated to incandescence by nuclear fusion reactions in its core. The Sun radiates this energy mainly as light, ultraviolet, and infrared radi ...
SPARC
SPARC (Scalable Processor Architecture) is a reduced instruction set computer (RISC) instruction set architecture originally developed by Sun Microsystems. Its design was strongly influenced by the experimental Berkeley RISC system developed ...
computers running
Solaris
Solaris may refer to:
Arts and entertainment Literature, television and film
* ''Solaris'' (novel), a 1961 science fiction novel by Stanisław Lem
** ''Solaris'' (1968 film), directed by Boris Nirenburg
** ''Solaris'' (1972 film), directed by ...
, although several different versions were sold, including versions for
HP-UX
HP-UX (from "Hewlett Packard Unix") is Hewlett Packard Enterprise's proprietary implementation of the Unix operating system, based on Unix System V (initially System III) and first released in 1984. Current versions support HPE Integrity Ser ...
and a
64-bit
In computer architecture, 64-bit Integer (computer science), integers, memory addresses, or other Data (computing), data units are those that are 64 bits wide. Also, 64-bit central processing unit, CPUs and arithmetic logic unit, ALUs are those ...
version of Poplog for
DEC Alpha
Alpha (original name Alpha AXP) is a 64-bit reduced instruction set computer (RISC) instruction set architecture (ISA) developed by Digital Equipment Corporation (DEC). Alpha was designed to replace 32-bit VAX complex instruction set computers ...
running
Digital UNIX
Tru64 UNIX is a discontinued 64-bit UNIX operating system for the Alpha instruction set architecture (ISA), currently owned by Hewlett-Packard (HP). Previously, Tru64 UNIX was a product of Compaq, and before that, Digital Equipment Corporation ...
. After about 1999, when Poplog became available as free, open source, most development work was done on the Linux version, including porting to 64-bit Linux. A partial port to
Mac OS X
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
on
PowerPC
PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple Inc., App ...
was done in 2005.
There is a version for
Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
, originally developed to support Clementine, but the Unix/Linux graphical subsystem does not work on Windows Poplog. The Windows version of Clementine depended on a commercial package that supported
X functionality on Windows.
There is also an
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
project
OpenPoplog
/ref> which aimed to produce a more platform neutral version of Poplog, including Windows. The most recent development by this project includes a web server component for integrating into Poplog applications, and the OpenPoplog Widget Collection for supporting client user interfaces running in a web browser. A more narrowly focused open source Poplog project, restricted to the 64-bit AMD64/X86-64 architecture was set up on GitHub by Waldek Hebisch
This is now the basis of Poplog Version 16 hosted at the University of Birmingha
Additional information about the history and features of Poplog can be found in the entries for POP-2
POP-2 (also referred to as POP2) is a programming language developed around 1970 from the earlier language POP-1 (developed by Robin Popplestone in 1968, originally named COWSEL) by Robin Popplestone and Rod Burstall at the University of Edin ...
and POP-11
POP-11 is a reflective, incrementally compiled programming language with many of the features of an interpreted language. It is the core language of the Poplog programming environment developed originally by the University of Sussex, and recentl ...
. The chief architect of Poplog, responsible for many innovations related to making an incrementally compiled system portable, and providing support for a collection of languages was John Gibson, at Sussex University, though the earliest work was done by Steve Hardy. Chris Mellish helped with the initial Prolog implementation in POP-11. John Williams, working under supervision of Jonathan Cunningham implemented the Common Lisp subsystem. Robert Duncan and Simon Nichols added Standard ML. Between about 1980 and 1991, the project was managed by Aaron Sloman
Aaron Sloman is a philosopher and researcher on artificial intelligence and cognitive science. He held the Chair in Artificial Intelligence and Cognitive Science at the School of Computer Science at the University of Birmingham, and before that ...
, until he went to the University of Birmingham
, mottoeng = Through efforts to heights
, established = 1825 – Birmingham School of Medicine and Surgery1836 – Birmingham Royal School of Medicine and Surgery1843 – Queen's College1875 – Mason Science College1898 – Mason Univers ...
, though he continued to collaborate with Sussex and ISL on Poplog development after that. Since 1999, he has been responsible for the main Poplog web site, as well as some of the extensions to be found there, listed under POP-11.
Implementation
The Prolog subset of Poplog is implemented using the extendable incremental compiler
An incremental compiler is a kind of incremental computation applied to the field of compilation. Quite naturally, whereas ordinary compilers make a so-called clean build, that is, (re)build all program modules, an incremental compiler recompiles ...
of POP-11
POP-11 is a reflective, incrementally compiled programming language with many of the features of an interpreted language. It is the core language of the Poplog programming environment developed originally by the University of Sussex, and recentl ...
, the core language of Poplog, which is a general purpose Lisp-like language with a more conventional syntax. The implementation required the Poplog Virtual Machine to be extended to provide support for Prolog continuation
In computer science, a continuation is an abstract representation of the control state of a computer program. A continuation implements ( reifies) the program control state, i.e. the continuation is a data structure that represents the computati ...
s, Prolog variables, the Prolog ''trail'' (recording undoable variable bindings), and Prolog terms. The implementation was constrained by the need to allow data-structures to be shared with the other Poplog languages, especially POP-11
POP-11 is a reflective, incrementally compiled programming language with many of the features of an interpreted language. It is the core language of the Poplog programming environment developed originally by the University of Sussex, and recentl ...
and Common Lisp
Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ''ANSI INCITS 226-1994 (S20018)'' (formerly ''X3.226-1994 (R1999)''). The Common Lisp HyperSpec, a hyperlinked HTML version, has been derived fro ...
, thereby providing support for a mixture of programming styles.
References
External links
The Free Poplog Portal
The online Poplog Eliza
Photo of ICP award Plaque
*Details also available here
{{Common Lisp
Dynamic programming languages
Extensible syntax programming languages
History of computing in the United Kingdom
Stack-oriented programming languages
University of Sussex