Topic: compiler error checking
Topic: editor as the UserInterface
Topic: forms as a UserInterface
Topic: incremental compilation
Topic: indentation
Topic: macros
Topic: outlines
Topic: programming environment
Topic: programming with forms
Topic: structure transformation languages
Topic: structured programming
Topic: syntax analysis
Topic: text editing
| |
Summary
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
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
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
Quote: the Z editor automatically indents after a 'newline'; can be overridden [»woodSR6_1981]
| Subtopic: dynamic syntax checking
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
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
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
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
Quote: EMACS has strong support for Lisp because of the simplicity of Lisp syntax [»stalRM6_1981]
| Subtopic: dual display of program and plan
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
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
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 [»demeA7_1985]
|
Related Topics
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)
|