18,970 research outputs found
The C Object System: Using C as a High-Level Object-Oriented Language
The C Object System (Cos) is a small C library which implements high-level
concepts available in Clos, Objc and other object-oriented programming
languages: uniform object model (class, meta-class and property-metaclass),
generic functions, multi-methods, delegation, properties, exceptions, contracts
and closures. Cos relies on the programmable capabilities of the C programming
language to extend its syntax and to implement the aforementioned concepts as
first-class objects. Cos aims at satisfying several general principles like
simplicity, extensibility, reusability, efficiency and portability which are
rarely met in a single programming language. Its design is tuned to provide
efficient and portable implementation of message multi-dispatch and message
multi-forwarding which are the heart of code extensibility and reusability.
With COS features in hand, software should become as flexible and extensible as
with scripting languages and as efficient and portable as expected with C
programming. Likewise, Cos concepts should significantly simplify adaptive and
aspect-oriented programming as well as distributed and service-oriented
computingComment: 18
Target enrichment of ultraconserved elements from arthropods provides a genomic perspective on relationships among Hymenoptera
Gaining a genomic perspective on phylogeny requires the collection of data
from many putatively independent loci collected across the genome. Among
insects, an increasingly common approach to collecting this class of data
involves transcriptome sequencing, because few insects have high-quality genome
sequences available; assembling new genomes remains a limiting factor; the
transcribed portion of the genome is a reasonable, reduced subset of the genome
to target; and the data collected from transcribed portions of the genome are
similar in composition to the types of data with which biologists have
traditionally worked (e.g., exons). However, molecular techniques requiring RNA
as a template are limited to using very high quality source materials, which
are often unavailable from a large proportion of biologically important insect
samples. Recent research suggests that DNA-based target enrichment of conserved
genomic elements offers another path to collecting phylogenomic data across
insect taxa, provided that conserved elements are present in and can be
collected from insect genomes. Here, we identify a large set (n1510) of
ultraconserved elements (UCE) shared among the insect order Hymenoptera. We use
in silico analyses to show that these loci accurately reconstruct relationships
among genome-enabled Hymenoptera, and we design a set of baits for enriching
these loci that researchers can use with DNA templates extracted from a variety
of sources. We use our UCE bait set to enrich an average of 721 UCE loci from
30 hymenopteran taxa, and we use these UCE loci to reconstruct phylogenetic
relationships spanning very old (220 MYA) to very young (1 MYA)
divergences among hymenopteran lineages. In contrast to a recent study
addressing hymenopteran phylogeny using transcriptome data, we found ants to be
sister to all remaining aculeate lineages with complete support
Stateful Testing: Finding More Errors in Code and Contracts
Automated random testing has shown to be an effective approach to finding
faults but still faces a major unsolved issue: how to generate test inputs
diverse enough to find many faults and find them quickly. Stateful testing, the
automated testing technique introduced in this article, generates new test
cases that improve an existing test suite. The generated test cases are
designed to violate the dynamically inferred contracts (invariants)
characterizing the existing test suite. As a consequence, they are in a good
position to detect new errors, and also to improve the accuracy of the inferred
contracts by discovering those that are unsound. Experiments on 13 data
structure classes totalling over 28,000 lines of code demonstrate the
effectiveness of stateful testing in improving over the results of long
sessions of random testing: stateful testing found 68.4% new errors and
improved the accuracy of automatically inferred contracts to over 99%, with
just a 7% time overhead.Comment: 11 pages, 3 figure
Ice Accretion and Performance Degradation Calculations with LEWICE/NS
The LEWICE ice accretion computer code has been extended to include the solution of the two-dimensional Navier-Stokes equations. The code is modular and contains separate stand-alone program elements that create a grid, calculate the flow field parameters, calculate the droplet trajectory paths, determine the amount of ice growth, calculate aeroperformance changes, and plot results. The new elements of the code are described. Calculated results are compared to experiment for several cases, including both ice shape and drag rise
Instant restore after a media failure
Media failures usually leave database systems unavailable for several hours
until recovery is complete, especially in applications with large devices and
high transaction volume. Previous work introduced a technique called
single-pass restore, which increases restore bandwidth and thus substantially
decreases time to repair. Instant restore goes further as it permits read/write
access to any data on a device undergoing restore--even data not yet
restored--by restoring individual data segments on demand. Thus, the restore
process is guided primarily by the needs of applications, and the observed mean
time to repair is effectively reduced from several hours to a few seconds.
This paper presents an implementation and evaluation of instant restore. The
technique is incrementally implemented on a system starting with the
traditional ARIES design for logging and recovery. Experiments show that the
transaction latency perceived after a media failure can be cut down to less
than a second and that the overhead imposed by the technique on normal
processing is minimal. The net effect is that a few "nines" of availability are
added to the system using simple and low-overhead software techniques
- …