Poplog

Last updated

Poplog
Original author(s) Robin Popplestone, Steve Hardy, Chris Mellish, Aaron Sloman, John Williams, Robert Duncan, Simon Nichols, John Gibson
Developer(s) University of Sussex
Systems Designers Ltd.
Integral Solutions Ltd.
University of Birmingham
Initial release1982;42 years ago (1982)
Stable release
16 / January 2020;4 years ago (2020-01)
Repository getpoplog.github.io
Written in POP-11
Operating system Cross-platform: VMS, Unix, Linux, Mac OS X, Windows
Platform VAX, SPARC, IA-32, PowerPC, x86-64
Size 17+ MB
Available inEnglish
Type IDE
License Proprietary (1982–1999)
Open-source (1999–present): MITXFree86
Website www.cs.bham.ac.uk/research/projects/poplog/poplog.info.html

Poplog is a reflective, incrementally compiled software development computer programming integrated development environment and system platform for the programming languages POP-11, Common Lisp, Prolog, and Standard ML. It was created originally in the United Kingdom for teaching and research in artificial intelligence, at the University of Sussex, and later marketed as a commercial package for software development, teaching, and research. It was one of the initiatives supported for a time by the UK government-funded Alvey Programme.

Contents

It was licensed originally from 1982 to 1999, as proprietary software, then released in 1999 as open-source software, under a mix of MIT and then XFree86 licenses.

History

After an incremental compiler for Prolog had been added to an implementation of POP-11, the name POPLOG was adopted, to reflect that the expanded system supported programming in both languages. The name was retained, as a trade mark of the University of Sussex, when the system was later (mid 1980s) extended with incremental compilers for Common Lisp and Standard ML based on a set of tools for implementing new languages in the Poplog Virtual Machine. [1] 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 abilities that cannot be added via 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 Electronic Data Systems (EDS) [2] ) 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. [3] ISL and its clients used Poplog for many 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. Clementine was so successful that in 1998 ISL was bought by SPSS Inc who had been selling the statistics and data-mining package SPSS 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 software package, [4] hosted at the University of Birmingham, which had also been involved in development after 1991. Later IBM bought SPSS and Clementine is now marketed and supported as SPSS Modeler. [5]

Supported languages

Poplog's core language is POP-11. 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, POP-11, Prolog, and Standard ML. A separate package implemented by Robin Popplestone supports a version of Scheme.

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. [6]

Platforms

POP-11 was at first implemented on a DEC PDP-11 computer in 1976, and was ported to VAX/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 SPARC computers running Solaris, although several different versions were sold, including versions for HP-UX and a 64-bit version of Poplog for DEC Alpha running Digital UNIX. 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 on PowerPC was done in 2005.

There is a version for Windows, 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 project [7] 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 Birmingham .

Additional information about the history and features of Poplog can be found in the entries for POP-2 and POP-11. 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, until he went to the University of Birmingham, 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 of POP-11, 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 continuations, 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 and Common Lisp, thereby providing support for a mixture of programming styles.

Related Research Articles

<span class="mw-page-title-main">Common Lisp</span> Programming language standard

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). The Common Lisp HyperSpec, a hyperlinked HTML version, has been derived from the ANSI Common Lisp standard.

<span class="mw-page-title-main">Cygwin</span> Unix-like environment for Windows

Cygwin is a Unix-like environment and command-line interface for Microsoft Windows.

<span class="mw-page-title-main">Genera (operating system)</span> Symbolics operating system based on Lisp

Genera is a commercial operating system and integrated development environment for Lisp machines created by Symbolics. It is essentially a fork of an earlier operating system originating on the Massachusetts Institute of Technology (MIT) AI Lab's Lisp machines which Symbolics had used in common with Lisp Machines, Inc. (LMI), and Texas Instruments (TI). Genera was also sold by Symbolics as Open Genera, which runs Genera on computers based on a Digital Equipment Corporation (DEC) Alpha processor using Tru64 UNIX. In 2021 a new version was released as Portable Genera which runs on Tru64 UNIX on Alpha, Linux on x86-64 and Arm64 Linux, and macOS on x86-64 and Arm64. It is released and licensed as proprietary software.

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 recently in the School of Computer Science at the University of Birmingham, which hosts the main Poplog website.

Dynamic compilation is a process used by some programming language implementations to gain performance during program execution. Although the technique originated in Smalltalk, the best-known language that uses this technique is Java. Since the machine code emitted by a dynamic compiler is constructed and optimized at program runtime, the use of dynamic compilation enables optimizations for efficiency not available to statically-compiled programs except through code duplication or metaprogramming.

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 only modified portions of a program.

POP-2 is a programming language developed around 1970 from the earlier language POP-1 by Robin Popplestone and Rod Burstall at the University of Edinburgh. It drew roots from many sources: the languages Lisp and ALGOL 60, and theoretical ideas from Peter J. Landin. It used an incremental compiler, which gave it some of the flexibility of an interpreted language, including allowing new function definitions at run time and modification of function definitions while a program runs, without the overhead of an interpreted language.

<span class="mw-page-title-main">Franz Lisp</span> Lisp programming language system

In computer programming, Franz Lisp is a discontinued Lisp programming language system written at the University of California, Berkeley by Professor Richard Fateman and several students, based largely on Maclisp and distributed with the Berkeley Software Distribution (BSD) for the Digital Equipment Corporation (DEC) VAX minicomputer. Piggybacking on the popularity of the BSD package, Franz Lisp was probably the most widely distributed and used Lisp system of the 1970s and 1980s.

<span class="mw-page-title-main">Racket (programming language)</span> Lisp dialect

Racket is a general-purpose, multi-paradigm programming language and a multi-platform distribution that includes the Racket language, compiler, large standard library, integrated development environment (IDE), development tools, and a set of additional languages including Typed Racket, Swindle, FrTime, Lazy Racket, R5RS & R6RS Scheme, Scribble, Datalog, Racklog, ALGOL 60 and several teaching languages.

S-PLUS is a commercial implementation of the S programming language sold by TIBCO Software Inc.

<span class="mw-page-title-main">Allegro Common Lisp</span>

Allegro Common Lisp is a programming language with an integrated development environment (IDE), developed by Franz Inc. It is a dialect of the language Lisp, a commercial software implementation of the language Common Lisp. Allegro CL provides the full American National Standards Institute (ANSI) Common Lisp standard with many extensions, including threads, CLOS streams, CLOS MOP, Unicode, SSL streams, implementations of various Internet protocols, OpenGL interface. The first version of Allegro Common Lisp was finished at the end of 1986, originally called Extended Common Lisp. Allegro CL is available for many operating systems including Microsoft Windows (32/64-bit), and many Unix and Unix-like, 32-bit or 64-bit, including macOS, Linux (32/64-bit), FreeBSD (32-bit), Solaris, UNICOS, and UTS. Internationalization and localization support is based on Unicode. It supports various external text encodings and provides string and character types based on Universal Coded Character Set 2 (UCS-2). Allegro CL can be used with and without its integrated development environment (IDE), which is available for Windows, Linux, and on macOS in version 8.2. The IDE includes development tools including an editor and an interface designer. Allegro CL can be used to deliver applications.

<span class="mw-page-title-main">Linux</span> Family of Unix-like operating systems

Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution (distro), which includes the kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses and recommends the name "GNU/Linux" to emphasize the use and importance of GNU software in many distributions, causing some controversy.

<span class="mw-page-title-main">SPSS Modeler</span> Data analytics software

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 algorithms without programming.

<span class="mw-page-title-main">PicoLisp</span> Programming language, a dialect of the language Lisp

PicoLisp is a programming language, a dialect of the language Lisp. It runs on operating systems including Linux and others that are Portable Operating System Interface (POSIX) compliant. Its most prominent features are simplicity and minimalism. It is built on one internal data type: a cell. On the language level, a programmer can use three different data types being represented by cells and differentiated by bits at the end of the cell. It is free and open-source software released under an MIT License (X11).

In computer programming, self-hosting is the use of a program as part of the toolchain or operating system that produces new versions of that same program—for example, a compiler that can compile its own source code. Self-hosting software is commonplace on personal computers and larger systems. Other programs that are typically self-hosting include kernels, assemblers, command-line interpreters and revision control software.

References

  1. Smith, Robert; Sloman, Aaron; Gibson, John (1992). "Poplog's two-level virtual machine support for interactive languages". In Sleeman, D.; Bernsen, N. (eds.). Research Directions in Cognitive Science Volume 5: Artificial Intelligence. Lawrence Erlbaum Associates. pp. 203–231.
  2. "Company News: Electronic Data Wins in Offer for SD-Scicon". The New York Times. 17 August 1991.
  3. http://www.cs.bham.ac.uk/research/projects/poplog/figs/jpg/smart-poplog-5million.jpg [ bare URL image file ]
  4. The Free Poplog Portal
  5. Khabaza, Tom. (1999). The Story of Clementine
  6. See page 3 of the May 20 1992 Sussex University Bulletin
  7. OpenPoplog