36 research outputs found
Combining Aspect-Oriented and Strategic Programming
Properties such as logging, persistence, debugging, tracing, distribution, performance monitoring and exception handling occur in most programming paradigms and are normally very difficult or even impossible to modularizewith traditional modularization mechanisms because they are cross-cutting. Recently, aspect-oriented programming has enjoyed recognition as a practical solution for separating these concerns. In this paper we describe an extension to the Stratego term rewriting language for capturing such properties. We show our aspect language offers a concise, practical and adaptable solution for dealing with unanticipated algorithm extension for forward data-flow propagation and dynamic type checking of terms. We briefly discuss some of the challenges faced when designing and implementing an aspect extension for and in a rule-based term rewriting system.publishedVersio
Making Slicing Mainstream How can we be Weiser?
By now, the concept of program slicing has been known in the research community for around 25 years. As a research topic, it has enjoyed a fair share of popularity, evidenced by the number of articles published on the topic following Mark Weiser\u27s seminal paper. However, outside research circles, program slicing appears to be virtually unknown.
In this report, we take the premise that program slicing is both technically relevant, and has a sufficient theoretical foundation, to be applied in practice within the software industry. With this premise in mind, we ask ourselves, ``what are the mechanisms by which we as a community could make program slicing mainstream\u27\u27
EWAS of post-COVID-19 patients shows methylation differences in the immune-response associated gene, IFI44L, three months after COVID-19 infection
Although substantial progress has been made in managing COVID-19, it is still difficult to predict a patient’s prognosis. We explored the epigenetic signatures of COVID-19 in peripheral blood using data from an ongoing prospective observational study of COVID-19 called the Norwegian Corona Cohort Study. A series of EWASs were performed to compare the DNA methylation profiles between COVID-19 cases and controls three months post-infection. We also investigated differences associated with severity and long-COVID. Three CpGs—cg22399236, cg03607951, and cg09829636—were significantly hypomethylated (FDR < 0.05) in COVID-19 positive individuals. cg03607951 is located in IFI44L which is involved in innate response to viral infection and several systemic autoimmune diseases. cg09829636 is located in ANKRD9, a gene implicated in a wide variety of cellular processes, including the degradation of IMPDH2. The link between ANKRD9 and IMPDH2 is striking given that IMPDHs are considered therapeutic targets for COVID-19. Furthermore, gene ontology analyses revealed pathways involved in response to viruses. The lack of significant differences associated with severity and long-COVID may be real or reflect limitations in sample size. Our findings support the involvement of interferon responsive genes in the pathophysiology of COVID-19 and indicate a possible link to systemic autoimmune diseases.publishedVersio
Combining Aspect-Oriented and Strategic Programming
Properties such as logging, persistence, debugging, tracing, distribution, performance monitoring and exception handling occur in most programming paradigms and are normally very difficult or even impossible to modularizewith traditional modularization mechanisms because they are cross-cutting. Recently, aspect-oriented programming has enjoyed recognition as a practical solution for separating these concerns. In this paper we describe an extension to the Stratego term rewriting language for capturing such properties. We show our aspect language offers a concise, practical and adaptable solution for dealing with unanticipated algorithm extension for forward data-flow propagation and dynamic type checking of terms. We briefly discuss some of the challenges faced when designing and implementing an aspect extension for and in a rule-based term rewriting system
Fusing a Transformation Language with an Open Compiler
Program transformation systems provide powerful analysis and transformation frameworks as well as concise languages for language processing, but instantiating them for every subject language is an arduous task, most often resulting in half-completed frontends. Compilers provide mature frontends with robust parsers and type checkers, but solving language processing problems in general-purpose languages without transformation libraries is tedious. Reusing these frontends with existing transformation systems is therefore attractive. However, for this reuse to be optimal, the functional logic found in the frontend should be exposed to the transformation system – simple data serialization of the abstract syntax tree is not enough, since this fails to expose important compiler functionality, such as import graphs, symbol tables and the type checker. In this paper, we introduce a novel and general technique for combining term-based transformation systems with existing language frontends. The technique is presented in the context of a scriptable analysis and transformation framework for Java built on top of the Eclipse Java compiler. The framework consists of an adapter automatically extracted from the abstract syntax tree of the compiler and an interpreter for the Stratego program transformation language. The adapter allows the Stratego interpreter to rewrite directly on the compiler AST. We illustrate the applicability of our system with scripts written in Stratego that perform framework and library-specific analyses and transformations
User-configurable, high-level transformations with CodeBoost
Scalable design of large applications requires domain-specific, high-level abstraction. Classically, there has been a tension between abstraction and good performance. We demonstrate how to overcome this tension by augmenting a numerical library providing domain-specific, high-level abstractions with user-configurable optimizations for matrix operations and differentiation