The text editor sam

  title={The text editor sam},
  author={Rob Pike},
  journal={Software: Practice and Experience},
  • R. Pike
  • Published 1 November 1987
  • Computer Science
  • Software: Practice and Experience
Sam is an interactive multi‐file text editor intended for bitmap displays. A textual command language supplements the mouse‐driven, cut‐and‐paste interface to make complex or repetitive editing tasks easy to specify. The language is characterized by the composition of regular expressions to describe the structure of the text being modified. The treatment of files as a database, with changes logged as atomic transactions, guides the implementation and makes a general ‘undo’ mechanism… 

Lightweight Structured Text Processing

This work describes a new approach, lightweight structured text processing, which overcomes difficulties by enabling users to define text structure interactively and manipulate the structure with generic tools.

Incremental algorithms for interactive text formatting

A library for incremental update of bitmap images

The ideas used in the screen update algorithms for the sam text editor are generalized so they may be applied to more structured documents than the simple character stream sam edits.

Data Structures for Text Sequences

This paper investigates and evaluates the range of possible data structures for text sequences, and the ADT interface to the text sequence component of a text editor is examined.

On the use of regular expressions for searching text

The generally accepted rule of “leftmost longest match” is an unfortunate choice and is at the root of the difficulties and a rule is proposed which is semantically cleaner and generally applicable to a variety of text search applications, including source code analysis.

Integrating a Command Shell into a Web Browser

The browser-shell is proposed, a web browser that integrates a command interpreter into the browser's Location box and offers a new shell interaction model, different from the conventional typescript model, which may improve usability in some respects.

Lightweight structure in text

Lightweight structure enables efficient composition and reuse of structure abstractions defined by various kinds of patterns and parsers, bringing improvements to pattern matching, text processing, web automation, repetitive text editing, inference of patterns from examples, and error detection.

Graphical editing by example

Individually and in combination, these techniques reduce repetition in graphical editing tasks, visually and by example, using the application's own interface.

A sophisticated shell environment

A make-like utility has been designed and implemented which provides automatic facilities in performing compilations of programs, based on the interception of a particular class of system calls, using tracing facilities supported by many Unix operating systems.

A Recovery Mechanism for Shells

Algorithms are presented for adding a recovery mechanism to a shell which allows previous commands to be selectively undone and redone, and previous versions of files to be recovered.



A generalized text editor

A generalized editor that edits text, directories, binary core images, and certain operating system data with a single user interface is described.

Concepts of the text editor Lara

Lara, a text editor developed for the Lilith workstation, exemplifies the principles underlying modern text-editor design: a high degree of interactivity, an internal data structure that mirrors

Regular Expression Search Algorithm

A method for locating specific character strings embedded in character text is described and an implementation of this method in the form of a compiler is discussed. The compiler accepts a regular

Graphics in overlapping bitmap layers

  • R. Pike
  • Computer Science
  • 1983
This paper describes a set of low-level graphics primitives to manipulate overlapping asynchronous windows, called layers, on a bitmap display terminal, that extend the domain of the general bitmap operator bitblt to include bitmaps that are partially or wholly obscured.

A language for bitmap manipulation

This paper proposes that bitmaps, or raster images, should be given full citizenship in the world of computer science. We introduce a calculus of bitmap operations and MUMBLE, a programming language

A Tour Through Cedar

  • W. Teitelman
  • Computer Science
    IEEE Transactions on Software Engineering
  • 1985
This paperlintroduces the reader to many of the salient features of the Cedar programming environment, a state-of-the-art progrmming system that combines in a single integrated environment: high

The UNIX system: The blit: A multiplexed graphics terminal

  • R. Pike
  • Computer Science
    AT&T Bell Laboratories Technical Journal
  • 1984
The design motivation of the Blit is discussed, an overview of the user interface is given, some of the novel uses of multiprogramming made possible by the Blits are mentioned, and the implementation of the multiplexing facilities on the host and in the terminal are described.

C++ Programming Language

Bjarne Stroustrup makes C even more accessible to those new to the language, while adding advanced information and techniques that even expert C programmers will find invaluable.

Hardware/software trade‐offs for bitmap graphics on the blit

This paper explains the paradox of the Blit by referring to some principles of design: the hardware and software should be designed together to complement each other; carefully designed software can outperform infelicitous hardware; and simplicity of design leads to efficiency of execution.

Smalltalk-80 - the interactive programming environment

This book describes the process by which Smalltalk was introduced to people outside Xerox PARC, where it was developed, and the way in which it was made public.