Information Technology Reference
In-Depth Information
A related theory lending support to this view is that of Dual Coding, developed
through rigorous empirical research by Paivio ( 1990 ). Humans have a capacity to
simultaneously attend to both the discrete codes of language and the analogue codes
of imagery. We are also able to reason by invoking quasi-perceptual states, for ex-
ample by performing mental rotation in shape matching tasks (Shepard and Metzler
1971 ). Through studying such behaviour Paivio ( 1990 ) concludes that humans have
a dual system of symbolic representation; an analogue system for relating to modes
of perception, and a discrete system for the arbitrary, discrete codes of language.
These systems are distinct but interrelate, with “high imagers” being those with high
integration between their linguistic and quasi-perceptual symbolic systems (Vogel
2003 ).
Returning to our theme of programming, the above theories lead us to question
the role of continuous representation in computer language. Computer language op-
erates in the domain of abstraction and communication but in general does not at
base include spatial semantics. Do programmers simply switch off a whole chan-
nel of perception to focus only on the discrete representation of code? It would
appear not. In fact, spatial layout is an important feature of secondary notation in
all mainstream programming languages (Blackwell and Green 2002 ), which gen-
erally allow programmers to add white-space to their code freely with little or no
syntactical meaning. Programmers use this freedom to arrange their code so that ge-
ometrical features may relate its structure at a glance. That programmers need to use
spatial layout as a crutch while composing discrete symbolic sequences is telling; to
the interpreter, a block may be a subsequence between braces, but to an experienced
programmer it is a perceptual gestalt grouped by indentation. From this we assert
that concordant with Dual Coding theory, the linguistic work of programming is
supported by spatial reasoning, with secondary notation helping bridge the divide.
There are few examples of spatial arrangement being part of primary syntax. In
the large majority of mainstream programming languages geometric syntax does
not go beyond one-dimensional adjacency, although in the Python and Haskell lan-
guages statements are grouped according to two dimensional rules of indentation.
Even visual programming languages, such as the Patcher Languages mentioned in
Sect. 9.1 , generally do not take spatial arrangement into account (execution order in
Max is given by right-left ordering, but the same can be said of 'non-visual' pro-
gramming languages).
As we noted in Sect. 9.1 , the study of “Programming Languages for the Arts”
is pushing the boundaries of programming notation, and geometrical syntax is no
exception. There are several compelling examples of geometry used in the syntax of
languages for music, often commercial projects emerging from academic research.
The ReacTable (Jordà et al. 2005 ) is a tangible, multi-user interface, where blocks
imprinted with computer readable symbols are placed on a circular display surface
(Fig. 9.5 ). We consider the ReacTable as a programming language environment, al-
though it is not presented as such by its creators. Each symbol represents a sound
synthesis function, with a synthesis graph formed based upon the pairwise prox-
imity of the symbols. Relative proximity and orientation of connected symbols are
used as parameters modifying the operation of synthesis nodes. Figure 9.6 shows a
Search WWH ::




Custom Search