Michael L. Van de Vanter

Learn More
Many tools designed to help programmers view and manipulate source code exploit the formal structure of the programming language. Language-based tools use information derived via linguistic analysis to offer services that are impractical for purely text-based tools. In order to be effective, however, language-based tools must be designed to account properly(More)
Emerging technologies such as the Internet, the World Wide Web, Java TM technology, and software components are accelerating product life cycles and encouraging collaboration across organizational boundaries. The familiar coordination problems of large scale software development reappear in a context where tools used by collaborators must be less tightly(More)
Powerful editing systems for developing complex software documents are difficult to engineer. Besides requiring efficient incremental algorithms and complex data structures, such editors must integrate smoothly with the other tools in the environment, maintain a sharable database of information concerning the documents being edited, accommodate flexible(More)
A highly productive platform accelerates the production of research results. The design of a Virtual Machine (VM) written in the Java#8482; programming language can be simplified through exploitation of interfaces, type and memory safety, automated memory management (garbage collection), exception handling, and reflection. Moreover, modern Java IDEs offer(More)
Language-based tools necessarily translate textual source code into grammar-based representations. During translation , tools such as compilers and analyzers are generally free to discard comments and white space, which have no impact on the code's formal meaning. Tools that produce transformed source code for human consumption enjoy no such freedom.(More)
Language-based editing systems have the potential to become a practical , central, and powerful part of every software engineer's toolkit, but progress has been limited by inattention to user-centered design issues. Major usability requirements for such systems include familiar, unrestricted text editing; coherent user interaction with software; rich,(More)