34,689 research outputs found

    PCG: A prototype incremental compilation facility for the SAGA environment, appendix F

    Get PDF
    A programming environment supports the activity of developing and maintaining software. New environments provide language-oriented tools such as syntax-directed editors, whose usefulness is enhanced because they embody language-specific knowledge. When syntactic and semantic analysis occur early in the cycle of program production, that is, during editing, the use of a standard compiler is inefficient, for it must re-analyze the program before generating code. Likewise, it is inefficient to recompile an entire file, when the editor can determine that only portions of it need updating. The pcg, or Pascal code generation, facility described here generates code directly from the syntax trees produced by the SAGA syntax directed Pascal editor. By preserving the intermediate code used in the previous compilation, it can limit recompilation to the routines actually modified by editing

    Generating Correctness-Preserving Editing Operations for Diagram Editors

    Get PDF
    In previous work it has already been shown that syntax-directed and free-hand editing can be gainfully integrated into a single diagram editor. That way, the user can arrange diagram components on the screen without any restrictions in free-hand editing mode, whereas syntax-directed editing operations provide powerful assistance. So far, editing operations had to be specified or programmed by the editor developer. In contrast, this paper proposes an approach where diagram-specific editing operations are generated on the fly during the editing process and without any additional specification effort. These operations provably preserve the correctness of the diagram. The proposed approach requires a specification of the visual language by a hypergraph grammar

    Type-Directed Program Transformations for the Working Functional Programmer

    Get PDF
    We present preliminary research on Deuce+, a set of tools integrating plain text editing with structural manipulation that brings the power of expressive and extensible type-directed program transformations to everyday, working programmers without a background in computer science or mathematical theory. Deuce+ comprises three components: (i) a novel set of type-directed program transformations, (ii) support for syntax constraints for specifying "code style sheets" as a means of flexibly ensuring the consistency of both the concrete and abstract syntax of the output of program transformations, and (iii) a domain-specific language for specifying program transformations that can operate at a high level on the abstract (and/or concrete) syntax tree of a program and interface with syntax constraints to expose end-user options and alleviate tedious and potentially mutually inconsistent style choices. Currently, Deuce+ is in the design phase of development, and discovering the right usability choices for the system is of the highest priority

    A Syntax-Directed Editor for Borland’s Turbo Pascal

    Get PDF
    This study details the design and implementation of the LSD program, a syntax-directed editor for use in editing the source code for Borland’s Turbo Pascal. LSD is a dual-mode editor which allows both traditional text editing and also grammar-based editing. LSD promotes better programming for novice users by allowing the user to edit the program with a graphical representation of a parse tree. A list of syntactically correct choices is displayed at each point where a choice must be made in the structure of the program. Since only these choices are available, no syntax errors are possible. For more advanced users, the ability to take an existing program and display the syntax tree will help show the underlying structure of the Pascal language grammar

    Object Oriented and Rule-based Design of Visual Languages using Tiger

    Get PDF
    In this paper we present the state-of-the-art of the TIGER environment for the generation of visual editor plug-ins in Eclipse, with the focus on its Designer component, a visual environment for object oriented and rule-based design of visual languages. Based on an alphabet for finite automata we show how a visual language can be designed by defining the abstract and concrete syntax of the visual language and syntax directed editing operations in the generated editor plug-in. For the graphical layout we use the Graphical Editing Framework (GEF) of ECLIPSE which offers an efficient and standardized way for graphical layouting

    ACE: A Cliché-based Program Structure Editor

    Get PDF
    ACE extends the syntax-directed paradigm of program editing by adding support for programming clichés. A programming cliché is a standard algorithmic fragment. ACE supports the rapid construction of programs through the combination of clichés selected from a cliché library. ACE is also innovative in the way it support the basic structure editor operations. Instead of being based directly on the grammar for a programming language, ACE is based on a modified grammar which is designed to facilitate editing. Uniformity of the user interface is achieved by encoding the modified grammar as a set of clichés.MIT Artificial Intelligence Laborator

    HASKEU: An editor to support visual and textual programming in tandem

    Get PDF
    Typical text editors allow "Free Typing" (syntax/semantics-free editing) to construct and maintain textual programs rapidly and easily by expert programmers, but this style does not support novice programmers learning the syntax and semantics of a language. On the other hand, visual editors enforce correct construction of programs using syntax-directed editing. Additionally, they clearly represent the program flow in a visual way. Both textual and visual editors have pros and cons for learners and experts. This paper argues that an editor that offers both a visual and a textual representation of the program in tandem has advantages to offer both learner and expert programmers. It describes the editor, HASKEU, which embodies this principle by providing visual and textual support for editing Haskell functional programs

    GED - a generalised syntax editor : a thesis presented in partial fulfilment of the requirements for the degree of Master of Science in Computer Science at Massey University

    Get PDF
    This thesis traces the development of a full-screen syntax-directed editor - a type of editor that operates on a program in terms of its syntactic tree structure instead of its sequential character representation. The editor is table-driven, reading as input an extended BNF syntax of the target language. It can therefore be used for any language whose syntax can be defined in EBNF. Print formatting information can be included with the syntactic definition to enable programs to be pretty-printed when they are displayed. The user is presented with a pretty-printed skeletal outline of a program with the currently selected construct highlighted and all required syntactic items provided by the editor. Any constructs with alternatives, such as "", which occurs in many languages, are initially denoted by a placeholder in the form of a non-terminal name (i.e. "") which is expanded when the user indicates which alternative is wanted. All symbols entered by the user are parsed immediately and any erroneous symbols rejected, making it impossible to create a syntactically incorrect program. The editor cannot detect semantic errors as no semantic information is available from the EBNF syntax. However the first use of all identifiers is flagged by the editor as an aid to the detection of undeclared identifiers. A "help" area at the bottom of the screen continuously displays a list of the correct next symbols and the syntactic definition of the currently selected program construct. This display, together with a multi-level "undo" command and the provision of a skeletal program by the editor, provides a way of exploring the various constructs in a programming language, while ensuring the syntactic correctness of the resultant program
    • …
    corecore