SUMMARYThis paper presents SPOON, a library for the analysis and transformation of Java source code. SPOON enables Java developers to write a large range of domain-specific analyses and transformations in an easy and concise manner. SPOON analyses and transformations are written in plain Java. With SPOON, developers do not need to dive into parsing, to hack a compiler infrastructure, or to master a new formalism.
Program queries can answer important software engineering questions that range from "which expressions are cast to this type?" over "does my program attempt to read from a closed file?" to "does my code follow the prescribed design?". In this paper, we present a comprehensive tool suite for querying Java programs. It consists of the logic program query language SOUL, the CAVA library of predicates for quantifying over an Eclipse workspace and the Eclipse plugin BARISTA for launching queries and inspecting their results. BARISTA allows other Eclipse plugins to peruse program query results which is facilitated by the symbiosis of SOUL with Java -setting SOUL apart from other program query languages. This symbiosis enables the CAVA library to forego the predominant transcription to logic facts of the queried program. Instead, the library queries the actual AST nodes used by Eclipse itself, making it trivial for any Eclipse plugin to find the AST nodes that correspond to a query result. Moreover, such plugins do not have to worry about having queried stale program information. We illustrate the extensibility of our suite by implementing a tool for co-evolving source code and annotations using program queries.
Three patients receiving diphenylhydantoin (DPH) were seen with a reversible process suggesting mycosis fungoides. Clinical and laboratory manifestations included generalized pruritic exfoliative erythroderma, eosinophilia, lymphadenopathy, hepatosplenomegaly, circulating Sézary cells, epidermal Pautrier's microabscesses on skin biopsy, and moderate liver dysfunction. Studies of the distribution and function of the various lymphocyte subpopulations from these patients showed: (1) an increase in the relative and absolute number of T lymphocytes (85–92%); (2) significant stimulation of lymphocyte‐blastic transformation by DPH and low response to pokeweed mitogen stimultion; (3) the impaired ability of Tγ lymphocytes to suppress B‐cell differentiation and immunoglobulin production. With only one exception, 15 symptom‐free patients on DPH showed none of these abnormalities. The clinical manifestations and immunologic abnormalities of patients with this pseudo mycosis fungoides syndrome remitted three to four weeks after DPH administration was discontinued. The proliferation of T lymphocytes and the inhibition of the function of Tγ‐suppressor lymphocytes noted in these patients may be significant to the development of other types of pseudolymphoma and to that of true lymphoma.
Abstract-Annotations are a means to attach additional meta data to the source code of a system. Nowadays, more and more technologies rely on the presence of such annotations in the source code: beyond their use for documentation purposes, annotations impact the behaviour of the system. Since there exists little or no support to make sure that upon evolution of the system, the source code remains correctly annotated, source code can become miss-annotated. This in turn, can result in erroneous behaviour. In this paper we present Smart Annotations, an approach for co-evolving source code and annotations. Our approach enables developers to constrain the use of annotations in the source code and offers tool support to identify conflicts between source code and annotations. To illustrate the use of our approach, we demonstrate its applicability using examples from the domain of aspect-oriented programming and Enterprise Java Beans.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.