CSAIL Event Calendar: Previous Series
Programming without Syntax and Names
Representing programs as text strings makes programming harder then it has to be. The source text of a program is far removed from its behavior. Bridging this conceptual gulf is what makes programming so inhumanly difficult – we are not compilers. Subtext is a new medium in which the representation of a program is the same thing as its execution. Like a spreadsheet, a program is visible and alive, constantly executing even as it is edited. Edits are coherent semantic transformations. Notably absent from Subtext are syntax and names, the workhorses of textual languages. But neither is Subtext a visual programming language that replaces text with diagrams. Text and diagrams become user-interface techniques for the display of an abstract semantic model. The fundamental mechanism of this model is copying within trees. The simple idea of copying turns out to generate a rich model of both computation and the programming process itself.