28,142 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

    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

    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

    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

    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

    A Proposal of a Parsing Method and its Tool that Treats Syntactically Incomplete Programs Using Parsing Expression Grammars

    Get PDF
    Visual programming, especially block-based programming, is used for beginners in programming. Particularly, there are systems that programmers freely convert between a block-based language and a general text-based language. However, there is a problem that the conversion can be done only when there is no syntax error in the text program. This is because programs with syntax error cannot be parsed and therefore cannot be converted into abstract syntax trees or other forms of representation. In order to solve this problem, we propose a tool that can automatically generate a grammar that allows a program with missing parts. The tool generates a parsing expression grammar that can parse such incomplete program by providing the syntax of the programming language. At the same time, the tool generates a template for manipulating concrete syntax trees that are created in the process of parsing with the generated parser, and supports conversion from concrete syntax trees. The template is that for a syntax-directed parsing program for the concrete syntax tree, which supports the conversion from the concrete syntax tree to the abstract syntax tree or other program representations such as blocks. As a result, it is easy to introduce a system that can convert between text-based languages and block-based languages, even if the program has some missing parts in the process of editing

    Tree-oriented interactive processing with an application to theorem-proving, appendix E

    Get PDF
    The concept of unstructured structure editing and ted, an editor for unstructured trees, is described. Ted is used to manipulate hierarchies of information in an unrestricted manner. The tool was implemented and applied to the problem of organizing formal proofs. As a proof management tool, it maintains the validity of a proof and its constituent lemmas independently from the methods used to validate the proof. It includes an adaptable interface which may be used to invoke theorem provers and other aids to proof construction. Using ted, a user may construct, maintain, and verify formal proofs using a variety of theorem provers, proof checkers, and formatters
    • …
    corecore