Structured program editors can lower the entry barrier for beginning computer science students by preventing syntax errors. However, when editors force programs to be executable after every edit, a rigid development process results. We explore the use of a separate edit-time grammar that is more permissive than the runtime grammar. This helps achieve a balance between structured editing and flexibility, particularly in live development environments. JPie is a graphical programming environment that applies this separation to the live development of Java applications. We present the design goals for JPie’s edit-time grammar and describe how its implementation supports a balance between structure and flexibility. As further illustration of the benefits of a relaxed edit-time grammar, we present “mixed-mode editing,” an integration of textual and graphical editing for added flexibility.
Benjamin E. Birnbaum, Kenneth J. Goldman