Barista: An implementation framework for enabling new tools, interaction techniques and views in code editors

Recent advances in programming environments have focused on improving programmer productivity by utilizing the inherent structure in computer programs. However, because these environments represent code as plain text, it is difficult and sometimes impossible to embed interactive tools, annotations, and alternative views in the code itself. Barista is an implementation framework that enables the creation of such user interfaces by simplifying the implementation of editors that represent code internally as an abstract syntax tree and maintain a corresponding, fully structured visual representation on-screen. Barista also provides designers of editors with a standard text-editing interaction technique that closely mimics that of conventional text editors, overcoming a central usability issue of previous structured code editors.

[1]  Benjamin E. Birnbaum,et al.  Achieving flexibility in direct-manipulation programming environments by relaxing the edit-time grammar , 2005, 2005 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC'05).

[2]  Brad A. Myers,et al.  Citrus: a language and toolkit for simplifying the creation of structured editors for code and data , 2005, UIST '05.

[3]  Marian Petre,et al.  Usability Analysis of Visual Programming Environments: A 'Cognitive Dimensions' Framework , 1996, J. Vis. Lang. Comput..

[4]  Steven P. Reiss,et al.  Graphical program development with PECAN program development systems , 1984, SDE 1.

[5]  Thomas D. LaToza,et al.  Maintaining mental models: a study of developer work habits , 2006, ICSE.

[6]  Curtis R. Cook,et al.  Typographic style is more than cosmetic , 1990, CACM.

[7]  Philip Miller,et al.  Evolution of Novice Programming Environments: The Structure Editors of Carnegie Mellon University , 1994, Interact. Learn. Environ..

[8]  Marat Boshernitsan,et al.  Harmonia: A Flexible Framework for Constructing Interactive , 2001 .

[9]  Tim A. Wagner,et al.  Efficient and flexible incremental parsing , 1998, TOPL.

[10]  Marat Boshernitsan,et al.  HARMONIA: A Flexible Framework for Constructing Interactive Language-Based Programming Tools , 2003 .

[11]  David Garlan,et al.  GNOME: An introductory programming environment based on a family of structure editors , 1984 .

[12]  Thomas Reps,et al.  Programming Techniques and Data Structures , 1981 .

[13]  Martijn M. Schrage,et al.  Proxima: a presentation-oriented editor for structured documents , 2000 .

[14]  John T. Stasko,et al.  Rethinking the evaluation of algorithm animations as learning aids: an observational study , 2001, Int. J. Hum. Comput. Stud..

[15]  Ethan V. Munson,et al.  The Proteus presentation system , 1992, SDE.

[16]  Brad A. Myers,et al.  Design requirements for more flexible structured editors from a study of programmers' text editing , 2005, CHI Extended Abstracts.

[17]  Brad A. Myers,et al.  Using HCI techniques to design a more usable programming system , 2002, Proceedings IEEE 2002 Symposia on Human Centric Computing Languages and Environments.

[18]  Amy J. Ko,et al.  Eliciting design requirements for maintenance-oriented IDEs: a detailed study of corrective and perfective maintenance tasks , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[19]  A. Marcus,et al.  Design principles for the enhanced presentation of computer program source text , 1986, CHI '86.