Languages let users say things, whether in static text or a dynamic GUI.
I have designed both.

In early times there were stack of cards menus and walking menus, neither entirely satisfactory. The least mouse movement and easiest operation are provided by stacks of cards that lean to the northwest. This approach was adopted in Andrew.

(60K + images)
It has always bothered me when languages require string operations to be expressed in terms of integers. So I invented an algebra of subsequence references, where identifiers, as m in the picture, refer to subsequences of a base string. With the algebra, string algorithms can be written entirely without resort to integers.  

(45K + images)
Based on the subsequence algebra just above, I constructed Ness, the Andrew document extension language. With it, documents can embed arbitrary behavior. The language greatly aided conversion of Andrew from C to C++.
Website construction  is easier with a macro capability to insert common text into pages. While preparing the E=M site (see logo page), I found no suitable general macro processor in Java and built my own. Macros are fully extensible because they can call arbitrary Java functions. The same macro language design later served as a base for a web statistics processor. (Neither program is yet published.)
[Home][Resume][DesignPortfolio][Logos][Diagrams][Prototypes][Deliveries]