Common Lisp Interface Manager

Last updated
Common Lisp Interface Manager
Developer(s) International Lisp Associates, Symbolics Inc., Xerox Corporation, Franz Inc., LispWorks Ltd.
Initial release1993;29 years ago (1993)
Written in Common Lisp CLOS
Operating system Cross-platform
Platform IA-32, x86-64
Available inEnglish
Type Widget toolkit
License LGPL
Website common-lisp.net/project/mcclim

The Common Lisp Interface Manager (CLIM) is a Common Lisp-based programming interface for creating user interfaces, i.e., graphical user interfaces (GUIs). It provides an application programming interface (API) to user interface facilities for the programming language Lisp. [1] It is a fully object-oriented programming user interface management system, [2] using the Common Lisp Object System (CLOS) and is based on the mechanism of stream input and output. [3] There are also facilities for output device independence. It is descended from the GUI system Dynamic Windows [4] of Symbolics' Lisp machines between 1988 and 1993.

Contents

... you can check out Common Lisp Interface Manager (CLIM). A descendant of the Symbolics Lisp machines GUI framework, CLIM is powerful but complex. Although many commercial Common Lisp implementations actually support it, it doesn't seem to have seen a lot of use. But in the past couple years, an open-source implementation of CLIM, McCLIM – now hosted at Common-Lisp.net [5] – has been picking up steam lately, so we may be on the verge of a CLIM renaissance. – From Practical Common Lisp [6]

The main development was CLIM 2.0, released in 1993. It is free and open source software released under a GNU Library General Public License (LGPL).

CLIM has been designed to be portable across different Common Lisp implementations and different windowing systems. It uses a reflective architecture for its window system interface. [7] CLIM supports, like Dynamic Windows, so-called Presentations. [8] [9] [10]

CLIM is available for Allegro CL, [11] LispWorks, [12] Macintosh Common Lisp, and Symbolics Genera [13]

McCLIM Lisp Listener Listener.png
McCLIM Lisp Listener

A free software implementation of CLIM is named McCLIM. [14] It has several extensions to CLIM and has been used for several applications like Climacs, an Emacs-like editor. It also provides a mouse-sensitive Lisp Listener, a read–eval–print loop (REPL) for Common Lisp. [15]

Applications using CLIM

Related Research Articles

The GUI, graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, instead of text-based UIs, typed command labels or text navigation. GUIs were introduced in reaction to the perceived steep learning curve of CLIs, which require commands to be typed on a computer keyboard.

An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools and a debugger. Some IDEs, such as NetBeans and Eclipse, contain the necessary compiler, interpreter, or both; others, such as SharpDevelop and Lazarus, do not.

<span class="mw-page-title-main">Lisp machine</span> Computer specialized in running Lisp

Lisp machines are general-purpose computers designed to efficiently run Lisp as their main software and programming language, usually via hardware support. They are an example of a high-level language computer architecture, and in a sense, they were the first commercial single-user workstations. Despite being modest in number Lisp machines commercially pioneered many now-commonplace technologies, including effective garbage collection, laser printing, windowing systems, computer mice, high-resolution bit-mapped raster graphics, computer graphic rendering, and networking innovations such as Chaosnet. Several firms built and sold Lisp machines in the 1980s: Symbolics, Lisp Machines Incorporated, Texas Instruments, and Xerox. The operating systems were written in Lisp Machine Lisp, Interlisp (Xerox), and later partly in Common Lisp.

Symbolics was a computer manufacturer Symbolics, Inc., and a privately held company that acquired the assets of the former company and continues to sell and maintain the Open Genera Lisp system and the Macsyma computer algebra system.

<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 DEC Alpha Tru64 UNIX, x86_64 and Arm64 Linux, x86_64 and Apple M1 macOS. It is released and licensed as proprietary software.

<span class="mw-page-title-main">Maxima (software)</span> Computer algebra system

Maxima is a computer algebra system (CAS) based on a 1982 version of Macsyma. It is written in Common Lisp and runs on all POSIX platforms such as macOS, Unix, BSD, and Linux, as well as under Microsoft Windows and Android. It is free software released under the terms of the GNU General Public License (GPL).

<span class="mw-page-title-main">Motif (software)</span>

In computing, Motif refers to both a graphical user interface (GUI) specification and the widget toolkit for building applications that follow that specification under the X Window System on Unix and Unix-like operating systems. The Motif look and feel is distinguished by its use of rudimentary square and chiseled three-dimensional effects for its various user interface elements.

Presentation Manager (PM) is the graphical user interface (GUI) that IBM and Microsoft introduced in version 1.1 of their operating system OS/2 in late 1988.

<span class="mw-page-title-main">Visual programming language</span> Programming language written graphically by a user

In computing, a visual programming language is any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations.

<span class="mw-page-title-main">Graphical user interface builder</span> Software development tool

A graphical user interface builder, also known as GUI designer or sometimes RAD IDE, is a software development tool that simplifies the creation of GUIs by allowing the designer to arrange graphical control elements using a drag-and-drop WYSIWYG editor. Without a GUI builder, a GUI must be built by manually specifying each widget's parameters in source-code, with no visual feedback until the program is run. Such tools usually called the term RAD IDE.

A read–eval–print loop (REPL), also termed an interactive toplevel or language shell, is a simple interactive computer programming environment that takes single user inputs, executes them, and returns the result to the user; a program written in a REPL environment is executed piecewise. The term usually refers to programming interfaces similar to the classic Lisp machine interactive environment. Common examples include command-line shells and similar environments for programming languages, and the technique is very characteristic of scripting languages.

<span class="mw-page-title-main">Shell (computing)</span> Computer program that exposes an operating systems services to a human user or other programs

In computing, a shell is a computer program that exposes an operating system's services to a human user or other programs. In general, operating system shells use either a command-line interface (CLI) or graphical user interface (GUI), depending on a computer's role and particular operation. It is named a shell because it is the outermost layer around the operating system.

A User Interface Management System (UIMS) is a mechanism for cleanly separating process or business logic from Graphical user interface (GUI) code in a computer program. UIMS are designed to support N-tier architectures by strictly defining and enforcing the boundary between the business logic and the GUI. A fairly rigid Software architecture is nearly always implied by the UIMS, and most often only one paradigm of separation is supported in a single UIMS. A UIMS may also have libraries and systems such as graphical tools for the creation of user interface resources or data stores.

LispWorks is computer software, a proprietary implementation and integrated development environment (IDE) for the programming language Common Lisp. LispWorks was developed by the UK software company Harlequin Ltd., and first published in 1989. Harlequin ultimately spun off its Lisp division as Xanalys Ltd., which took over management and rights to LispWorks. In January 2005, the Xanalys Lisp team formed LispWorks Ltd. to market, develop, and support the software.

Apple Dylan is the original implementation of the programming language Dylan. It was developed by Apple Computer from 1992 to 1995.

Daniel L. Weinreb was an American computer scientist and programmer, with significant work in the environment of the programming language Lisp.

Bernard S. Greenberg is a programmer and computer scientist, known for his work on Multics and the Lisp machine.

A scripting language or script language is a programming language that is used to manipulate, customize, and automate the facilities of an existing system. Scripting languages are usually interpreted at runtime rather than compiled.

McCLIM is an implementation of the Common Lisp Interface Manager (CLIM), for the programming language Common Lisp. The project is named partly after Mike McDonald, the person who began it. It is free and open-source software released under the GNU Lesser General Public License (LGPL) version 2.1.

References

  1. "CLIM 2 Specification: Part I: Overview and Conventions". Gilbert Baumann. Retrieved 2019-08-25.
  2. Möller, Ralf. "User Interface Management Systems: The CLIM Perspective". CiteSeerX   10.1.1.54.6663 .{{cite journal}}: Cite journal requires |journal= (help)
  3. "A Guided Tour of CLIM, Common Lisp Interface Manager" (PDF).
  4. "Programming the User Interface, Genera 8.3" (PDF). Bitsavers. Symbolics, Inc.
  5. "Common-Lisp.net".
  6. Seibel, Peter. "Conclusion: What's Next?". Practical Common Lisp.
  7. Rao, Ramana. "Implementation Reflection in Silica" (PDF). Springer: Extra Materials. Xerox PARC.
  8. C., Eugene; Ciccarelli, IV (1984). "Presentation Based User Interfaces, MIT Technical Report: AITR-794" (PDF).
  9. Zdybel, Frank; Greenfeld, Norton R.; Yonke, Martin D. "An information presentation system" (PDF).
  10. Moore, Timothy (2008). "An Implementation of CLIM Presentation Types" (PDF).
  11. "CLIM 2 User Guide, version 2.2.2, Allegro Common Lisp 9.0" (PDF). Franz, Inc.
  12. "Common Lisp Interface Manager User Guide, version 2.0, LIspWorks 7.0 Manual". LispWorks.
  13. "Common Lisp Interface Manager CLIM, Release 2.0, Symbolics Genera 8.3" (PDF). Bitsavers. Symbolics.
  14. Strandh, Robert; Moore, Timothy (August 17, 2002). "A Free Implementation of CLIM" (PDF). Retrieved 2019-08-25.
  15. "Climacs: An Emacs-like editor in Common Lisp". Common-lisp.net. Retrieved 2019-08-25.
  16. Brownston, Lee (November 1995). "BBK Manual". Knowledge Systems, AI Laboratory. Stanford University. Retrieved 2019-08-27.
  17. "CLASP" (PDF). School of Information. The University of Arizona. Retrieved 2019-08-27.
  18. Hesse, Jan; König, Rainer; Logi, Filippo; Herder, Jens (August 1993). "A prototype of an interface builder for the Common Lisp Interface Manager – CLIB". ACM SIGPLAN Notices. New York, New York, United States: Association for Computing Machinery. 28 (8): 19–28. doi:10.1145/163114.163116. S2CID   7329400.
  19. Rychtyckyj, Nestor (1999). "DLMS: Ten Years of AI for Vehicle Assembly Process Planning". IAAI-99 Proceedings. Association for the Advancement of Artificial Intelligence: 821–828. ISBN   978-0-262-51106-3 . Retrieved 2019-09-03.
  20. Wessel, Michael; Möller, Ralf (March 2009). "Flexible software architectures for ontology-based information systems". Journal of Applied Logic. 7 (1): 75–99. doi: 10.1016/j.jal.2007.07.006 .
  21. Haarslev, Volker; Wessel, Michael. "GenEd – An Editor with Generic Semantics for Formal Reasoning about Visual Notations". Proceedings, 12th IEEE Symposium on Visual Languages. Boulder, Colorado, USA: IEEE Press: September 3–6, 1996. Retrieved 2019-09-03.
  22. Karp, Peter D.; Lowrance, John D.; Strat, Thomas M.; Wilkins, David E. (20 January 1993). "The Grasper-CL Graph Management System" (PDF). SRI International. Retrieved 2019-09-06.
  23. Karp, Peter D; Midford, Peter E; Billington, Richard; Kothari, Anamika; Krummenacker, Markus; Latendresse, Mario; Ong, Wai Kit; Subhraveti, Pallavi; Caspi, Ron; Fulcher, Carol; Keseler, Ingrid M (2021-01-18). "Pathway Tools version 23.0 update: software for pathway/genome informatics and systems biology". Briefings in Bioinformatics. 22 (1): 109–126. doi:10.1093/bib/bbz104. ISSN   1467-5463. PMC   8453236 . PMID   31813964.
  24. Wessel, Michael; Haarslev, Volker (1998). "VISCO: Brining Visual Spatial Querying to Reality". Proceedings, 14th IEEE Symposium on Visual Languages. Nova Scotia, Canada: IEEE Press: September 1–4, 1998. CiteSeerX   10.1.1.52.2080 .