On designing a language for exclusive use in a syntax directed programming environment

  • Authors:
  • Donald J. Bagert, Jr.

  • Affiliations:
  • Department of Computer Science, Northeast Louisiana University, Monroe, LA

  • Venue:
  • CSC '88 Proceedings of the 1988 ACM sixteenth annual conference on Computer science
  • Year:
  • 1988

Quantified Score

Hi-index 0.00

Visualization

Abstract

Certain types of syntax-directed editors are actually syntax-directed programming environments (SDPEs) since incremental compilation is performed as the user constructs and modifies the program. An early example of an SDPE was the Cornell Program Synthesizer (3). In such an environment, most of the parse tree is specified by the user through the specification of templates which correspond to the application of a production in a language's grammar. Since the programmer is specifying most of the parse tree, many ambiguous context-free languages are well-suited for use in SDPEs.The suggestion that languages be created for specific use in a syntax-directed programming environment is not new [2], but has received relatively little attention. One reason for this is that many syntax-directed editors do not provide for incremental compilation; another reason is that syntax-directed environments are not yet in widespread use. However, the use of SDPEs are increasing and all indications are that this trend will continue [4].Therefore, research has recently been undertaken to develop a block-structured language which will be well-suited to a syntax-directed programming environment. The major design issues being considered for the prototype language are:Elimination of symbols (e.g. semicolons) which are needed to avoid ambiguity in a standard compiler but which are unnecessary when the user is specifying most of the parse tree;A syntax definition for the language which is better-suited to user interface than for compiler-writers [1];The ability to restrict use of the language within the SDPE to a subset of the entire definition, which would allow easier use of the language in an introductory course, and would permit a system manager to enforce various coding standards (e.g. no goto statements);A pretty printing standard for the language; andThe ability, if desired, to enforce coding standards which cannot be restricted under issues 3 and 4 listed above (e.g. requiring all variables to be locally defined).