Journal ArticleDOI
The Cornell program synthesizer: a syntax-directed programming environment
Tim Teitelbaum,Thomas Reps +1 more
TLDR
The Cornell Program Synthesizer demands a structural perspective at all stages of program development and its separate features are unified by a common foundation: a grammar for the programming language.Abstract:
Programs are not text; they are hierarchical compositions of computational structures and should be edited, executed, and debugged in an environment that consistently acknowledges and reinforces this viewpoint. The Cornell Program Synthesizer demands a structural perspective at all stages of program development. Its separate features are unified by a common foundation: a grammar for the programming language. Its full-screen derivation-tree editor and syntax-directed diagnostic interpreter combine to make the Synthesizer a powerful and responsive interactive programming tool.read more
Citations
More filters
Proceedings ArticleDOI
Hazelnut: a bidirectionally typed structure editor calculus
TL;DR: Hazelnut is introduced, a structure editor based on a small bidirectionally typed lambda calculus extended with holes and a cursor that serves as a foundational account of typed structure editing, and how its semantics lends itself to implementation as an event-based functional reactive program.
Patent
Token-based computer program editor with program comment management
TL;DR: A user-friendly text editor for structurally represented computer programs is presented in this article, which combines advantages of text editors and structure editors by transforming, as the user types, the text stream entered by the user into a token stream, where the tokens of the token stream constitute the words of the program being entered.
Proceedings ArticleDOI
Continuous execution: the VisiProg environment
Peter B. Henderson,Mark Weiser +1 more
TL;DR: This paper envision an even more dynamic environment in which the functionality of a network of programs, an individual program, or a program segment can be viewed “continuously” with editing changes to either the program input or program body.
Patent
Per-keystroke incremental lexing using a conventional batch lexer
TL;DR: In this article, a batch lexer is used to incrementally update a token stream representation of a computer program maintained in an editor as the computer program is being edited, and a keystroke executive interprets editing inputs and dispatches editing events to a lexical analyzer.
Proceedings ArticleDOI
Extended programming in the large in a software development environment
TL;DR: The main concern of this paper is to show how an incremental and integrated tool set, regarding the consistency of software documents can support software development.
References
More filters
Proceedings ArticleDOI
Closest-point problems
Michael Ian Shamos,Dan Hoey +1 more
TL;DR: The purpose of this paper is to introduce a single geometric structure, called the Voronoi diagram, which can be constructed rapidly and contains all of the relevant proximity information in only linear space, and is used to obtain O(N log N) algorithms for most of the problems considered.
Journal ArticleDOI
Algorithms for Reporting and Counting Geometric Intersections
TL;DR: Algorithms that count the number of pairwise intersections among a set of N objects in the plane and algorithms that report all such intersections are given.
Proceedings ArticleDOI
A research center for augmenting human intellect
TL;DR: In this article, a multisponsor research center at Stanford Research Institute in man-computer interaction is described, where the authors describe a multiscale multi-modal system.
Proceedings ArticleDOI
Geometric intersection problems
Michael Ian Shamos,Dan Hoey +1 more
TL;DR: An O(N log N) algorithm is given to determine whether any two intersect and use it to detect whether two simple plane polygons intersect and to show that the Simplex method is not optimal.
Journal ArticleDOI
An Optimal Worst Case Algorithm for Reporting Intersections of Rectangles
TL;DR: This paper investigates the problem of reporting all intersecting pairs in a set of n rectilinearly oriented rectangles in the plane and describes an algorithm that solves this problem in worst case time proportional to n lg n + k, where k is the number of interesecting pairs found.