39 research outputs found

    The Vaccinia Virus Bifunctional Gene J3 (Nucleoside-2′-O-)-methyltransferase and Poly(A) Polymerase Stimulatory Factor Is Implicated as a Positive Transcription Elongation Factor by Two Genetic Approaches

    Get PDF
    AbstractVaccinia virus genes A18 and G2 affect the elongation and termination of postreplicative viral gene transcription in opposite ways. Viruses with mutations in gene A18 produce abnormally long transcripts, indicating that A18 is a negative transcription elongation factor. Viruses containing mutations in gene G2 produce transcripts that are abnormally short, truncated specifically from their 3′ ends, indicating that G2 is a positive transcription elongation factor. Despite the fact that both A18 and G2 are essential genes, A18-G2 double-mutant viruses are viable, presumably because the effects of the mutations are mutually compensatory. In addition, the anti-poxviral drug isatin-β-thiosemicarbazone (IBT) seems to enhance elongation during a vaccinia infection: IBT treatment of a wildtype vaccinia infection induces a phenotype identical to an A18 mutant infection, and G2 mutant viruses are dependent on IBT for growth, presumably because IBT restores the G2 mutant truncated transcripts to a normal length. These observations inspire two independent genetic selections that have now been used to identify an additional vaccinia gene, J3, that regulates postreplicative transcription elongation. In the first selection, a single virus that contains an extragenic suppressor of the A18 temperature-sensitive mutant, Cts23, was isolated. In the second selection, several spontaneous IBT-dependent (IBTd) mutant viruses were isolated and characterized genetically. Marker rescue mapping and DNA sequence analysis show that the extragenic suppressor of Cts23 contains a point mutation in the J3 gene, while each of seven new IBTd mutants contains null mutations in the J3 gene. The J3 protein has previously been identified as a (nucleoside-2′-O-)-methyltransferase and as a processivity subunit for the heterodimeric viral poly(A) polymerase. The nature of the two independent selections used to isolate the J3 mutants strongly suggests that the J3 protein serves as a positive postreplicative transcription elongation factor during a normal virus infection

    Demographic trade-offs predict tropical forest dynamics

    Get PDF
    Understanding tropical forest dynamics and planning for their sustainable management require efficient, yet accurate, predictions of the joint dynamics of hundreds of tree species. With increasing information on tropical tree life histories, our predictive understanding is no longer limited by species data but by the ability of existing models to make use of it. Using a demographic forest model, we show that the basal area and compositional changes during forest succession in a neotropical forest can be accurately predicted by representing tropical tree diversity (hundreds of species) with only five functional groups spanning two essential trade-offs—the growth-survival and stature-recruitment trade-offs. This data-driven modeling framework substantially improves our ability to predict consequences of anthropogenic impacts on tropical forests

    Published in “Conference on Compiler Construction ” (CC), 2005, pp. 172–187. Data Slicing: Separating the Heap into Independent Regions

    No full text
    Abstract. In this paper, we present a formal description of data slicing, which is a type-directed program transformation technique that separates a program’s heap into several independent regions. Pointers within each region mirror the structure of pointers in the original heap; however, each field whose type is a base type (e.g., the integer type) appears in only one of these regions. In addition, we discuss several applications of data slicing. First, data slicing can be used to add extra fields to existing data structures without compromising backward compatibility; the CCured project uses data slicing to preserve library compatibility in instrumented programs at a reasonable performance cost. Data slicing can also be used to improve locality by separating “hot ” and “cold ” fields in an array of data structures, and it can be used to protect sensitive data by separating “public ” and “private ” fields. Finally, data slicing can serve as a refactoring tool, allowing the programmer to split data structures while automatically updating the code that manipulates them.

    Why Events Are a Bad Idea (for High-Concurrency Servers)

    No full text
    Event-based programming has been highly touted in recent years as the best way to write highly concurrent applications. Having worked on several of these systems, we now believe this approach to be a mistake. Specifically, we believe that threads can achieve all of the strengths of events, including support for high concurrency, low overhead, and a simple concurrency model. Moreover, we argue that threads allow a simpler and more natural programming style

    SafeDrive: Safe and recoverable extensions using language-based techniques

    No full text
    We present SafeDrive, a system for detecting and recovering from type safety violations in software extensions. SafeDrive has low overhead and requires minimal changes to existing source code. To achieve this result, SafeDrive uses a novel type system that provides finegrained isolation for existing extensions written in C. In addition, SafeDrive tracks invariants using simple wrappers for the host system API and restores them when recovering from a violation. This approach achieves finegrained memory error detection and recovery with few code changes and at a significantly lower performance cost than existing solutions based on hardware-enforced domains, such as Nooks [33], L4 [21], and Xen [13], or software-enforced domains, such as SFI [35]. The principles used in SafeDrive can be applied to any large system with loadable, error-prone extension modules. In this paper we describe our experience using SafeDrive for protection and recovery of a variety of Linux device drivers. In order to apply SafeDrive to these device drivers, we had to change less than 4 % of the source code. SafeDrive recovered from all 44 crashes due to injected faults in a network card driver. In experiments with 6 different drivers, we observed increases in kernel CPU utilization of 4–23 % with no noticeable degradation in end-to-end performance.

    The Chord Ad-hoc Routing Protocol

    No full text
    This paper describes the Chord Ad-Hoc Routing Protocol, which is a multi-hop, ad-hoc networking protocol that provides the Chord Distributed Hash Table (DHT) abstraction to the network. Nodes form a spanning tree among themselves, which forms a cycle that becomes the Chord overlay network. By coupling naming, location, and routing, the CARP protocol provides ecient data access for many types of applications, such as sensor networks. The protocol is evaluated as an ns-2 simulation, and results of that simulation are discussed. Proposed optimisations and future work then describe

    Abstract Thirty Years is Long Enough: Getting Beyond C

    No full text
    Thirty years after its creation, C remains one of the most widely used systems programming languages. Unfortunately, the power of C has become a liability for large systems projects, which are now focusing on security and reliability. Modern languages and static analyses provide an opportunity to improve the quality of systems software, and yet adoption of these tools has been slow. To address this problem, we propose a new language called Ivy that has an evolutionary path from C. The mechanism for this evolutionary path is a system of extensions and refactorings: extensions augment the language with new features, and refactorings assist the programmer in updating their code to use these new features. Extensions and refactorings have a wide variety of applications, from enforcing memory safety to detecting user/kernel pointer errors. We also demonstrate Macroscope, a tool we have built to enable refactoring of existing C code.
    corecore