Multics Emacs

Last updated
Multics Emacs
Original author(s) Bernard Greenberg
Developer(s) Honeywell
Initial release1978;45 years ago (1978)
Written in Maclisp
Operating system Multics
Available inEnglish
Type Text editor

Multics Emacs is an early implementation of the Emacs text editor. [1] It was written in Maclisp by Bernard Greenberg at Honeywell's Cambridge Information Systems Lab in 1978, as a successor to the original 1976 TECO implementation of Emacs and a precursor of later GNU Emacs. [2]

It has been claimed to be the first version of Emacs to be written in the Lisp programming language, [3] although the same claim has also been made for the Lisp Machine editors EINE and ZWEI, also written in the late 1970s. As well as the editor itself being written in Lisp, user-supplied extensions were also written in Lisp. The choice of Lisp provided more extensibility than ever before, and has been followed by most subsequent Emacs implementations. [4]

Rather than using TECO's gap buffer representation for the text being edited, it used a doubly linked list of lines of text. [5]

Related Research Articles

The editor war is the rivalry between users of the Emacs and vi text editors. The rivalry has become an enduring part of hacker culture and the free software community.

<span class="mw-page-title-main">Emacs Lisp</span> Dialect of Lisp used as an Emacs scripting language

Emacs Lisp is a dialect of the Lisp programming language used as a scripting language by Emacs. It is used for implementing most of the editing functionality built into Emacs, the remainder being written in C, as is the Lisp interpreter. Emacs Lisp is also termed Elisp, although there are also older, unrelated Lisp dialects with that name.

<span class="mw-page-title-main">Text editor</span> Computer software used to edit plain text documents

A text editor is a type of computer program that edits plain text. Such programs are sometimes known as "notepad" software. Text editors are provided with operating systems and software development packages, and can be used to change files such as configuration files, documentation files and programming language source code.

TECO, short for Text Editor & Corrector, is both a character-oriented text editor and a programming language, that was developed in 1962 for use on Digital Equipment Corporation computers, and has since become available on PCs and Unix. Dan Murphy developed TECO while a student at the Massachusetts Institute of Technology (MIT).

Maclisp is a programming language, a dialect of the language Lisp. It originated at the Massachusetts Institute of Technology's (MIT) Project MAC in the late 1960s and was based on Lisp 1.5. Richard Greenblatt was the main developer of the original codebase for the PDP-6; Jon L. White was responsible for its later maintenance and development. The name Maclisp began being used in the early 1970s to distinguish it from other forks of PDP-6 Lisp, notably BBN Lisp.

Gosling Emacs is a discontinued Emacs implementation written in 1981 by James Gosling in C.

Incompatible Timesharing System (ITS) is a time-sharing operating system developed principally by the MIT Artificial Intelligence Laboratory, with help from Project MAC. The name is the jocular complement of the MIT Compatible Time-Sharing System (CTSS).

A gap buffer in computer science is a dynamic array that allows efficient insertion and deletion operations clustered near the same location. Gap buffers are especially common in text editors, where most changes to the text occur at or near the current location of the cursor. The text is stored in a large buffer in two contiguous segments, with a gap between them for inserting new text. Moving the cursor involves copying text from one side of the gap to the other. Insertion adds new text at the end of the first segment; deletion deletes it.

<span class="mw-page-title-main">Zmacs</span> Text editor for Lisp machines

Zmacs is one of the many variants of the Emacs text editor. Zmacs was written for the MIT Lisp machine and runs on its descendants. Zmacs is written in Lisp Machine Lisp. It is based on the ZWEI programming substrate, which stands for "Zwei Was EINE Initially"; Zwei was a collection of routines which could be used to easily implement other programs, like the Symbolics mail program, Zmail.

Hemlock is a free Emacs text editor for most POSIX-compliant Unix systems. It follows the tradition of the Lisp Machine editor ZWEI and the ITS/TOPS-20 implementation of Emacs, but differs from XEmacs or GNU Emacs, the most popular Emacs variants, in that it is written in Common Lisp rather than Emacs Lisp and C—although it borrows features from the later editors. Hemlock was originally written by the CMU Spice project in Spice Lisp for the PERQ computer.

EINE and ZWEI are two discontinued Emacs-like text editors developed by Daniel Weinreb and Mike McMahon for Lisp machines in the 1970s and 1980s.

Freemacs is a small, programmable computer text editor for MS-DOS with some degree of compatibility with GNU Emacs. Written by Russ Nelson and later maintained by Jim Hall, Freemacs is currently distributed under the GPL-1.0-only license in the FreeDOS project.

<span class="mw-page-title-main">Dired</span>

Dired is a computer program for editing file system directories. It typically runs inside the Emacs text editor as a specialized mode, though standalone versions have been written. Dired was the first file manager, or visual editor of file system information. The first version of Dired was written as a stand-alone program independently in 1972 by Dave Lebling at Project MAC, and circa 1974 by Stan Kugell at the Stanford Artificial Intelligence Laboratory (SAIL). It was incorporated into GNU Emacs from the earliest versions, and re-implemented in C and C++ on other operating systems.

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.

<span class="mw-page-title-main">GNU Emacs</span> GNU version of the Emacs text editor

GNU Emacs is a free software text editor. It was created by GNU Project founder Richard Stallman, based on the Emacs editor developed for Unix operating systems. GNU Emacs has been a central component of the GNU project and a flagship project of the free software movement. Its tag line is "the extensible self-documenting text editor."

Emacs, originally named EMACS, is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, self-documenting, real-time display editor". Development of the first Emacs began in the mid-1970s, and work on its direct descendant, GNU Emacs, is ongoing; its latest version is 29.1, released July 2023.

<span class="mw-page-title-main">Scripting language</span> Programming language for run-time events

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.

<span class="mw-page-title-main">David A. Moon</span> American computer scientist

David A. Moon is a programmer and computer scientist, known for his work on the Lisp programming language, as co-author of the Emacs text editor, as the inventor of ephemeral garbage collection, and as one of the designers of the Dylan programming language. Guy L. Steele Jr. and Richard P. Gabriel (1993) name him as a leader of the Common Lisp movement and describe him as "a seductively powerful thinker, quiet and often insulting, whose arguments are almost impossible to refute".

References

  1. Stallman, Richard M. (1981), "EMACS: the extensible, customizable self-documenting display editor", Proceedings of the ACM SIGPLAN SIGOA Symposium on Text Manipulation, doi:10.1145/800209.806466, hdl: 1721.1/5736 , S2CID   14803750
  2. Finseth, Craig A. (2012), The Craft of Text Editing: Emacs for the Modern World, Springer, p. 210, ISBN   9781461231882
  3. Seibel, Peter (2006), Practical Common Lisp, Apress, p. xxi, ISBN   9781430200178
  4. Greenberg, Bernard S. (April 8, 1996), "Multics Emacs: The History, Design and Implementation", Multicians
  5. Strandh, Robert; Villeneuve, Matthieu; Moore, Timothy (2004), "Flexichain: An editable sequence and its gap-buffer implementation" (PDF), Proceedings of the Lisp and Scheme Workshop