> Essentially, it supports a mapping from the abstract syntax (AS) of a
> program to typographical abstract syntax (TAS), which is then
> displayed using the capabilities of a modern machine.
Would it be missing the point to ask why? I program mainly in C-family
languages, and one of the reasons I like them is that they can be written
to look good. I haven't taken a printout since I first got a 50-line
screen 5 years back.
I would agree that bitmapped screens may have advantages for
programming: my favorite environment has a syntax-sensitive C++ editor
which puts different constructs (comments, strings, keywords etc.) in
different colours. It sounds awful, but is comfortable to use. It
might be useful to use the bitmap capabilities to do things like
showing the range of a while loop, which isn't done at the moment.
However I think the reason it is useful is because of the immediate
response. Suppose I am typing in a C++ hex integer, 0x10. At the first
0, the character is blue, indicating a valid number (colours are
configurable). At the x, it turns red: the construct is illegal. It
then turns blue when the following digits are inserted. It is also
possible to do things like greying out the comments when they are
obscuring the code. With this interaction the system is useful, but I
can't see myself being attracted to a batch-mode system, however
pretty the result - I just don't read code in isolation from editing
it.
> It is intended to be used to present *any* programming language
Another problem is that the approach seems linked to text-form
executable languages. Several of the languages I use are not
executable - eg. UIL (a specification language for Motif UIs), XDR
(used for specifying RPC interfaces), or one of my own for specifying
the nesting of bitmaps in mimic diagrams. Several others either have
no text form, or have a text form only as an optional storage format
e.g. GIL (a storage format for the OpenWindows DevGuide UI builder) or
the resource language for MS Windows (almost always generated as an
optional storage format for UI builders). The former group do not have
constructs such as the addition, while-loops and conditionals you
refer to. For the latter group, it is very unlikely that humans would
be interested in the code stored: the interest lies in the UI
specified, which can be reviewed and edited interactively.
|