Eidola Notation Gallery

Eidola Notation Gallery
Notations and Visualizations
User Interface Philosophy
User Interfaces of Note
Existing Visualizations of Programs
Possible Eidola Notations

Discussion

Eidola home
 

  The Fibrani Brace
Next: Possible Eidola Notations - Semantic Layering >>
Discuss it!
My friend Florin once, while explaining some code to me, drew a sketch something like this:

It occurred to me that this would work nicely in a generally text-oriented Eidola notation -- delimiters could surround the code they delimit and grow as the code grew, in style of TeX. The delimiters, and comments, could be collapsible. In the honor of Florin, who earned the nickname "Fibrani" from his e-mail address, I dubbed this the Fibrani Brace. Here's a mock-up of the idea showing some Java code:

This has the obvious benefit of showing block and expression structure clearly. (Some input from a good graphic designer could really help guide the eye.) It also allows the exciting ability to take variously high- and low-level views of the code. Here are some examples from the Eidola kernel function Capsule.checkLazy() formatted using Fibrani braces:

High-level view

Comments expanded

Focused on one section

Detailed view


(Click images to enlarge)

Implementing a reasonable editor for this notation is no small task! Doing the layout and rendering the delimiters and selection ranges would be trouble enough; keeping editing intuitive and responsive make this notation a rather difficult problem. Interesting questions about editing actions abound: What happens if you try to delete a right parenthesis without deleting the left one? Should a right curly brace appear if there is more stuff on the same line? Should that even be allowed?

I implemented a prototype version of this notation in C++ on a Macintosh in college, so it is possible. The implementation didn't deal with many of the sticky issues, but had at least the basics working. The mockups above are slightly modified screen shots of the prototype. If you're interested in seeing it in action (more or less) and you have a Mac handy, drop me a note.

Discuss it!
Next: Possible Eidola Notations - Semantic Layering >>
 
Copyright 1998, 2001 Paul Cantrell