Searcharxiv⌕ Search

arXiv subjects

Johan Nyström-Persson

Publications and source records attributed to Johan Nyström-Persson.

2 recordsLinked to original sources

An Open Framework for Extensible Multi-Stage Bioinformatics Software

In research labs, there is often a need to customise software at every step in a given bioinformatics workflow, but traditionally it has been difficult to obtain both a high degree of customisability and good performance. Performance-sensitive tools are often highly monolithic, which can make research difficult. We present a novel set of software development principles and a bioinformatics framework, Friedrich, which is currently in early development. Friedrich applications support both early stage experimentation and late stage batch processing, since they simultaneously allow for good performance and a high degree of flexibility and customisability. These benefits are obtained in large part by basing Friedrich on the multiparadigm programming language Scala. We present a case study in the form of a basic genome assembler and its extension with new functionality. Our architecture has the potential to greatly increase the overall productivity of software developers and researchers in bioinformatics.

cs.SE↗

Poplar: A Java Extension for Evolvable Component Integration

The Java programming language contains many features that aid component-based software development (CBSD), such as interfaces, visibility levels, and strong support for encapsulation. However, component evolution often causes so-called breaking changes, largely because of the rigidity of component interconnections in the form of explicit method calls and field accesses. We present a Java extension, Poplar, which we are currently developing. In Poplar, inter-component dependencies are expressed using declarative queries; concrete linking code, generated using a planning algorithm, replaces these at compile time. Poplar includes a minimal specification language based on typestate-like protocols and labels, and a lightweight effect system, which ensures the absence of unwanted interference between hand-written code and generated code. We give several examples of fully automatic component integration using Poplar, and demonstrate its potential to simplify object-oriented software development greatly through evolvable and statically checkable integration links.

cs.PL↗