Topic: structured editors

topics > computer science > Group: document preparation

compiler error checking
editor as the UserInterface
forms as a UserInterface
incremental compilation
programming environment
programming with forms
structure transformation languages
structured programming
syntax analysis
text editing


A structured editor recognizes a language's syntactic units for manipulation by the user. Programming then becomes a form-fill-in process with forms as syntactic units and fill-ins as non-terminals of the language. Editing commands are defined for adding a template, moving to different fields, adding and deleting forms, accessing optional fields, and relocating forms. (cbb 5/80)

Programs have a hierarchical structure which should be recognized by the editor. Furthermore the same structural components occur repeatedly in programs. An editor can indent statements, detect syntactic errors, and balance parentheses.

Subtopic: editing structure vs. text up

Quote: programs are not text; they are hierarchical compositions of computational structures; should be processed as such [»teitT9_1981]
Quote: every PL/CS main procedure has the same structure; built into the editor to prevent unnecessary and error-prone retyping [»teitT6_1979]

Subtopic: automated syntax up

Quote: since parentheses are really one character, they should be typed and deleted as such [»shneB_1985]
Quote: could automate the transformation of a conditional statement into a case statement, or splitting an expression into subexpressions [»shneB_1985]
Quote: every other 'return' creates a temporary place-holder (e.g., a statement) in a list of place-holders [»teitT6_1979, OK]
Quote: if a second exit is added to a loop, Programmers_Assistant embeds the loop in a conditional and notifies the programmer of the additional level [»wateRC1_1982]
Quote: TOPD deduces classes and procedures by statements of the appropriate form; e.g., CHR.TEST in class CHAREADER [»hendP9_1975]
Quote: PCM uses a database of parse trees of each program; PCM uses this information to assist with editing and display [»yonkMD10_1975]

Subtopic: auto indent up

Quote: the Z editor automatically indents after a 'newline'; can be overridden [»woodSR6_1981]

Subtopic: dynamic syntax checking up

Quote: Magpie detects syntax errors during editing; it recompiles whenever code is modified [»deliNM5_1984]
Quote: Cornell_Program_Synthesizer reports syntactic errors as soon as they are made [»teitT9_1981]
Quote: Cornell_Program_Synthesizer checks phrases for syntactic error when the cursor leaves the placeholder
Quote: MicroTool performs immediate consistency checking across all items in the program database [»elshJL1_1991]

Subtopic: show argument types, optional args, data records up

Quote: a program editor can know argument types and optional arguments for each statement; editor can display appropriate data records [»shimBE4_1987]
Quote: program input by selecting words from screen with automatic indentation; for experiment [»simeME1_1973]

Subtopic: syntax-directed cursor up

Quote: 'up' and 'down' move between program elements, while 'left' and 'right' move through modifiable text [»teitT6_1979]
Quote: special command to place cursor at an optional component [»teitT6_1979]
Quote: special commands to skip embedded place-holders and to move backwards to enclosing place-holder [»teitT6_1979, OK]

Subtopic: template programming up

Quote: to create a Smalltalk method, select a method category and fill in the template in the editing plane [»teslL8_1981]
Quote: program by selecting templates and scratchpad names with an electronic pen; prompts for variables, etc. and generates code [»blacR3_1983]
Quote: a programming language grammar in the Cornell_Program_Synthesizer is a collection of templates
Quote: write a program in the Cornell_Program_Synthesizer by inserting statements and expressions into the skeleton of previously entered templates [»teitT9_1981]
Quote: Cornell Program Synthesizer used formatted templates for almost all statements; placeholders are prompts that indicate the syntactic class [»teitT6_1979]
Quote: a Cornell_Program_Synthesizer template is a fixed, formatted pattern of keywords, punctuation, and indentation [»teitT9_1981]
Quote: placeholders in a Cornell_Program_Synthesizer template designates the location and syntactic class of an insertion; e.g., if (condition) then ... [»teitT9_1981]
Quote: change the structure of a Cornell_Program_Synthesizer program by adding and deleting whole templates and phrases; guarantees structural integrity [»teitT9_1981]
Quote: Cornell Program Synthesizer inserted statement templates by command; could be moved, deleted, or filled in; could not be altered [»teitT6_1979]
Quote: can cut and paste phrases or entire templates with their subordinate parts [»teitT6_1979]
Quote: to place a list of statements in a loop, cut the list, generate a loop template, enter the condition, and paste in the sequence [»teitT6_1979]

Subtopic: user-defined functions up

Quote: EMACS has strong support for Lisp because of the simplicity of Lisp syntax [»stalRM6_1981]

Subtopic: dual display of program and plan up

Quote: Programmers_Assistant maintains a program and a plan; the programmer can edit either and the analyzer or coder respectively updates the other [»wateRC1_1982]
Quote: Programmers_Assistant coder creates code from an edited plan; displayed to programmer as a summary of the program's current state [»wateRC1_1982]

Subtopic: user studies of structured editing up

Quote: while more problems were solved the first time with a structured editor, error lifetimes and debugging was not improved [»simeME1_1977]

Subtopic: problems with structured editors up

Quote: the problem with attribute grammars for language-based editors and immediate computation is their inefficient visits to every node [»repsT11_1987]
Quote: syntax-directed editors are seldom used; because professional programmers have little difficulty with syntax

Related Topics up

Topic: compiler error checking (16 items)
Topic: editor as the UserInterface (10 items)
Topic: forms as a UserInterface (11 items)
Topic: incremental compilation (3 items)
Topic: indentation (25 items)
Topic: macros (22 items)
Topic: outlines (16 items)
Topic: programming environment (46 items)
Topic: programming with forms (26 items)
Topic: structure transformation languages (7 items)
Topic: structured programming (27 items)
Topic: syntax analysis (29 items)
Topic: text editing
(34 items)

Updated barberCB 2/05
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.