Presentations


Higher-Order Transformation and the Distributed Data Problem

Abstract: The control mechanisms offered by strategic programming have been successfully used to address a variety of problems relating to confluence and termination. However, the application of strategic programming to problems of increasing complexity has raised another issue, namely how auxiliary data fits within a strategic framework. The distributed data problem characterizes the problem posed by auxiliary data. This problem arises from a discord between the semantic association of terms within a specification and the structural association of terms resulting from the term language definition. My research is based on the premise that higher-order rewriting provides a mechanism for dealing with auxiliary data conforming to the tenets of rewriting. In a higher-order framework, the use of auxiliary data is expressed as a rule. Instantiation of such rules can be done using standard (albeit higher-order) mechanisms controlling rule application (e.g., traversal). Typically, a traversal-driven application of a higher-order rule will result in a number of instantiations. If left unstructured, these instantiations can be collectively seen as constituting a rule base whose creation takes place dynamically. However, such rule bases again encounter difficulties with respect to confluence and termination. In order to address this concern the notion of strategy construction is lifted to the higher-order as well. That is, instantiations result in rule bases that are structured to form strategies. Nevertheless, in many cases, simply lifting first-order control mechanisms to the higher-order does not permit the construction of strategies that are sufficiently refined. This difficulty is alleviated traditional control mechanisms enables a variety of instances of the distributed data problem to be elegantly solved in a higher-order setting. These ideas are formalized in a higher-order strategic programming language called TL.


Why I want to be a Computer Scientist -- or -- Do a job you love and you will never work a day in your life

Abstract: Computer technology is the most rapidly advancing technology in the history of mankind. This technology is advancing so rapidly that the boundary between science fiction and fact has become blurred.


Languages, Models, Analysis, and Comprehension

Abstract: This talk gives an overview of some of the work that I have done in the area of language design and transformation. An overview of some of my research relating to BART is also presented.


Languages and Transformation

Abstract: This talk gives a technical overview of some of the work that I have done in the area of language design and transformation. Topics discussed include: the theory underlying program transformation, generic weaving, the BART case study, and model-based generation of Java tests. Links to numerous papers are also provided.