STET (text editor)
Encyclopedia
The STET text editor
(the 'STructured Editing Tool') may have been the first folding editor
; its first version was written in 1977 by Mike Cowlishaw
. The editor runs on the IBM VM/CMS
operating system.
STET was written to explore an approach to text editing that followed the principles of Structured programming
. It allows programs and documentation to be written 'top-down', with blocks of code or text kept to a limited size (usually less than a page).
This was "a first attempt to take the structure out of the domain of languages, and into the domain of editors. In addition to conventional editing facilities, STET gives the user a third dimension: a tree structure that may be traversed using Program Function Keys much as scrolling is normally implemented"
Top-line commands generally apply to the entire file being edited, and include the usual operations such as saving, searching, replacing, movement around the file, and so on (over 60 in all).
Line commands apply to a single line or a number of lines, and allow copying, moving, overlaying, merging, uppercasing and the like. An innovation in STET is the ability to mark a group of lines using the < line command to mark the first and last lines of a group. The group of lines can then be manipulated as a whole; they can be copied, merged, etc., and also make possible the 'structured editing commands' which provide the folding capabilities of the editor.
The block reference concept is very similar to the idea of links in a Wikipedia file, and indeed in STET a block can also be created by putting a new reference on a line and then 'entering' that reference to edit the block.
The structured editing commands also allow the user to see a map of the tree structure of the file, list the blocks alphabetically, and navigate the structure of the file. Navigation upwards and downwards or to a named block is possible, along with 'go to next block at this level' (that is, go up a level, find the next block reference at that level, and then go down a level). Other commands allow blocks to be renamed, expanded, etc., and also allow a flat file to be built from all or part of the structured file.
except for the 3270
screen interface which is written in Assembler. STET was written and maintained by Mike Cowlishaw from 1976–1979 and then taken over by Steve Davies, who continued to enhance and maintain it through the 1980s. Many of the features in STET were used in later IBM text editors, including XEDIT
and Lexx.
A structured file is stored on disk in a special format which allows efficient loading and navigation of the blocks in the file. This allows each file to also store useful meta-information (such as statistics of action key usage, total edit time, etc.), but has
the disadvantage that a flat file has to be 'built' from the structured file before (for example) it can be processed by a compiler or word-processing utility.
Text editor
A text editor is a type of program used for editing plain text files.Text editors are often provided with operating systems or software development packages, and can be used to change configuration files and programming language source code....
(the 'STructured Editing Tool') may have been the first folding editor
Folding editor
A folding editor is a text editor which supports text folding or code folding, a mechanism allowing the user to hide and reveal blocks of text—usually named...
; its first version was written in 1977 by Mike Cowlishaw
Mike Cowlishaw
Mike Cowlishaw is a retired IBM Fellow, a Visiting Professor at the Department of Computer Science at the University of Warwick, and is a Fellow of the Royal Academy of Engineering , the Institute of Engineering and Technology , and the British Computer Society.- Career at IBM :Cowlishaw joined IBM...
. The editor runs on the IBM VM/CMS
Conversational Monitor System
The Conversational Monitor System is a relatively simple interactive computing single-user operating system.* CMS is part of IBM's VM family, which runs on IBM mainframe computers...
operating system.
STET was written to explore an approach to text editing that followed the principles of Structured programming
Structured programming
Structured programming is a programming paradigm aimed on improving the clarity, quality, and development time of a computer program by making extensive use of subroutines, block structures and for and while loops - in contrast to using simple tests and jumps such as the goto statement which could...
. It allows programs and documentation to be written 'top-down', with blocks of code or text kept to a limited size (usually less than a page).
This was "a first attempt to take the structure out of the domain of languages, and into the domain of editors. In addition to conventional editing facilities, STET gives the user a third dimension: a tree structure that may be traversed using Program Function Keys much as scrolling is normally implemented"
Principles
The editor, like many text editors, is a full-screen editor; a window into the file being edited is displayed and the lines displayed can be edited directly on-screen by insertions, deletions, or overtyping. Editing is also effected by pressing programmable action keys or by typing in commands. Commands are either 'top-line commands' (entered in a command entry area on the top line of the screen) or 'line commands' (entered in a 4-character command entry field adjacent to each displayed line of text).Top-line commands generally apply to the entire file being edited, and include the usual operations such as saving, searching, replacing, movement around the file, and so on (over 60 in all).
Line commands apply to a single line or a number of lines, and allow copying, moving, overlaying, merging, uppercasing and the like. An innovation in STET is the ability to mark a group of lines using the < line command to mark the first and last lines of a group. The group of lines can then be manipulated as a whole; they can be copied, merged, etc., and also make possible the 'structured editing commands' which provide the folding capabilities of the editor.
Structured editing commands
The structured editing facilities of STET are based on the concept that each file is represented as a collection of named blocks of lines. A block is created from an (anonymous) marked group of lines by the command (for example) 'form commands'. This command creates the block with name 'COMMANDS' and replaces the group of lines with a single line with a reference to COMMANDS (identified by its first non-blank character being some special character, by default ')'). This feature makes it easy to create a structured file from a flat file.The block reference concept is very similar to the idea of links in a Wikipedia file, and indeed in STET a block can also be created by putting a new reference on a line and then 'entering' that reference to edit the block.
The structured editing commands also allow the user to see a map of the tree structure of the file, list the blocks alphabetically, and navigate the structure of the file. Navigation upwards and downwards or to a named block is possible, along with 'go to next block at this level' (that is, go up a level, find the next block reference at that level, and then go down a level). Other commands allow blocks to be renamed, expanded, etc., and also allow a flat file to be built from all or part of the structured file.
Other
The editor is written in PL/IPL/I
PL/I is a procedural, imperative computer programming language designed for scientific, engineering, business and systems programming applications...
except for the 3270
IBM 3270
The IBM 3270 is a class of block oriented terminals made by IBM since 1972 normally used to communicate with IBM mainframes. As such, it was the successor to the IBM 2260 display terminal. Due to the text colour on the original models, these terminals are informally known as green screen terminals...
screen interface which is written in Assembler. STET was written and maintained by Mike Cowlishaw from 1976–1979 and then taken over by Steve Davies, who continued to enhance and maintain it through the 1980s. Many of the features in STET were used in later IBM text editors, including XEDIT
XEDIT
XEDIT is a visual editor for VM/CMS using block mode IBM 3270 terminals.It is much more line-oriented than modern PC and Unix editors. For example, it supports automatic line numbers, and many of the commands operate on blocks of lines. One of the features is a command line which allows the user to...
and Lexx.
Limitations
All files that can be edited are limited to a maximum of 32,767 characters wide (line length) and each block is limited to a maximum of 32,767 lines. A unstructured 'flat file' is edited as a single block.A structured file is stored on disk in a special format which allows efficient loading and navigation of the blocks in the file. This allows each file to also store useful meta-information (such as statistics of action key usage, total edit time, etc.), but has
the disadvantage that a flat file has to be 'built' from the structured file before (for example) it can be processed by a compiler or word-processing utility.