Silhouette: visual language for meaningful shape

Programmers use many views of their code to assess its structure and behavior: call graphs, data-flow diagrams, structural diagrams, etc. The motivation for using such views is that the semantics of textual code is difficult to "stand back and assess": If you step back from code, it just appears as a mass of unreadable text. However, the diagrams themselves are also of limited use: the shapes only summarize limited semantic information, so the visual presentation can be as disorganized and confusing as the original code. In this paper we propose Silhouette, a visual programming language and design tool that allows developers to capture the meaning of their program in the visual structure of their code. The shapes chosen by the developer represent abstractions of the underlying functionality or structure, and can be infinitely nested to allow different levels of abstraction. The goal is for programmers to build a correspondence between the shape of their program and its meaning. We believe that Silhouette gives programmers more flexibility in matching their high-level abstractions to code and enables a wide variety of design strategies.

[1]  Calum A. M. Grant The Visula programming language and environment , 2006, Visual Languages and Human-Centric Computing (VL/HCC'06).

[2]  James Noble,et al.  Relationship aspects , 2006, AOSD.

[3]  Gregor Kiczales,et al.  Fluid AOP join point models , 2006, OOPSLA '06.

[4]  Mary Czerwinski,et al.  Code Thumbnails: Using Spatial Memory to Navigate Source Code , 2006, Visual Languages and Human-Centric Computing (VL/HCC'06).

[5]  Jonathan Edwards,et al.  Subtext: uncovering the simplicity of programming , 2005, OOPSLA '05.

[6]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[7]  Siobhán Clarke,et al.  Subject-oriented design: towards improved alignment of requirements, design, and code , 1999, OOPSLA '99.

[8]  Ephraim P. Glinert,et al.  C/sup 2/: a mixed textual/graphical environment for C , 1988, [Proceedings] 1988 IEEE Workshop on Visual Languages.

[9]  Robert DeLine,et al.  Staying Oriented with Software Terrain Maps , 2005, DMS.

[10]  Benjamin B. Bederson,et al.  Toolkit design for interactive structured graphics , 2004, IEEE Transactions on Software Engineering.

[11]  Wilfred J. Hansen The 1994 Visual Languages Comparison , 1994, Proceedings of 1994 IEEE Symposium on Visual Languages.