Learn More
An aspect observes the execution of a base program; when certain actions occur, the aspect runs some extra code of its own. In the AspectJ language, the observations that an aspect can make are confined to the <i>current</i> action: it is not possible to directly observe the <i>history</i> of a computation.Recently, there have been several interesting(More)
Research in the design of aspect-oriented programming languages requires a workbench that facilitates easy experimentation with new language features and implementation techniques. In particular, new features for AspectJ have been proposed that require extensions in many dimensions: syntax, type checking and code generation, as well as data flow and control(More)
We have implemented a two-stage language, Paradise, for building reusable components which are used to price financial products. Paradise is embedded in Haskell and makes heavy use of type-class based overloading, allowing the second stage to be compiled into a variety of backend platforms. Paradise has enabled us to begin moving away from implementation(More)
Both isotopic and nonisotopic assay methodologies are employed in high-throughput screening for drug discovery. Recent advances in cell-based and in vitro biochemical assays will be reviewed, with special emphasis on detection technologies amenable to automated 'mix and read' procedures in high-throughput screening. A major trend is the advent of homogenous(More)
This paper proposes and implements a rigorous method for studying the dynamic behaviour of AspectJ programs. As part of this methodology several new metrics specific to AspectJ programs are proposed and tools for collecting the relevant metrics are presented. The major tools consist of: (1) a modified version of the AspectJ compiler that tags bytecode(More)
We present a simple, practical algorithm for higher order matching in the context of automatic program transformation. Our algorithm nds more matches than the standard second order matching algorithm of Huet and Lang, but it has an equally simple speciication, and it is better suited to the transformation of programs in modern programming languages such as(More)
AspectJ does not provide a mechanism to hide implementation details from advice. As a result, aspects are tightly coupled to the implementation of the code they advise, while the behaviour of the base code is impossible to determine without analysing all advice that could modify its behaviour.The concept of <i>open modules</i> is proposed by Aldrich to(More)
Human insulin was labeled with fluorescein isothiocyanate (FITC) and fully characterized to yield four distinct insulin-FITC species. High-performance liquid chromatography and electrospray mass spectrometry were used to determine the extent and location of fluorescein conjugation. By changing the reaction conditions (i.e., pH, time, and FITC/insulin ratio)(More)