PressingA Pressure-sensitive Interpreter with Visual Feedbacks
Abstract
Pressing is a pressure-sensitive programming environment with visual feedbacks of the built-in 2D physical simulator. It runs on a PC with a practical pressure-sensitive keyboard developed by Microsoft Applied Science Group.
This work was presented at UIST 2009 Student Innovation Contest with a flyer.
Programming Experience
When the programmer runs the software, a vacant screen appears with a text box. He can start typing immediately and there is no program compilation; The programming experience is completely live and direct.
For example, when he types new Ball()
and hits the enter key, a ball apears on the screen. The size of the ball is defined according to how strong the class name Ball is typed.
There are several interesting predefined classes. For instance, these two sentences will bind the ball instance to a variable b and its track will be painted with a red brush. The brush width is defined by how strong Brush is typed.
b = new Ball(); b.pen(new Brush(255,0,0));
The programmer can interact with the instantiated ball objects not only by writing code,
World.setGravity(0, 0.98); b.setSpeed(100);
but also by directly touching them using a mouse cursor. This environment is equipped with a two-dimensional physics simulator and thus provides natural interaction experience.
Implementation
This integrated development environment (IDE) has its original interpreter named Kotosaka which interprets a JavaScript-like language. The language shares basic ideas of object-oriented programming such as classes (methods and fields), functions and variables. Variables can be used without declaration and are dynamically typed, capable of storing primitive values (boolean, integer and string,) class instances, and function objects.
The IDE contains a two-dimensional virtual world equipped with a Box2D-based physics simulator and provides interesting APIs to interact with the virtual world. Examples are shown below in the figure.