37 research outputs found

    Method for Statically Checking an Object-oriented Computer Program Module

    Get PDF
    A method for statically checking an object-oriented computer program module includes the step of identifying objects within a computer program module, at least one of the objects having a plurality of references thereto, possibly from multiple clients. A discipline of permissions is imposed on the objects identified within the computer program module. The permissions enable tracking, from among a discrete set of changeable states, a subset of states each object might be in. A determination is made regarding whether the imposed permissions are violated by a potential reference to any of the identified objects. The results of the determination are output to a user

    Red Opal: Product-Feature Scoring from Reviews

    Get PDF
    ABSTRACT Online shoppers are generally highly task-driven: they have a certain goal in mind, and they are looking for a product with features that are consistent with that goal. Unfortunately, finding a product with specific features is extremely time-consuming using the search functionality provided by existing web sites. In this paper, we present a new search system called Red Opal that enables users to locate products rapidly based on features. Our fully automatic system examines prior customer reviews, identifies product features, and scores each product on each feature. Red Opal uses these scores to determine which products to show when a user specifies a desired product feature. We evaluate our system on four dimensions: precision of feature extraction, efficiency of feature extraction, precision of product scores, and estimated time savings to customers. On each dimension, Red Opal performs better than a comparison system

    Channels as Objects in Concurrent Object-Oriented Programming

    Full text link
    There is often a sort of a protocol associated to each class, stating when and how certain methods should be called. Given that this protocol is, if at all, described in the documentation accompanying the class, current mainstream object-oriented languages cannot provide for the verification of client code adherence against the sought class behaviour. We have defined a class-based concurrent object-oriented language that formalises such protocols in the form of usage types. Usage types are attached to class definitions, allowing for the specification of (1) the available methods, (2) the tests clients must perform on the result of methods, and (3) the object status - linear or shared - all of which depend on the object's state. Our work extends the recent approach on modular session types by eliminating channel operations, and defining the method call as the single communication primitive in both sequential and concurrent settings. In contrast to previous works, we define a single category for objects, instead of distinct categories for linear and for shared objects, and let linear objects evolve into shared ones. We introduce a standard sync qualifier to prevent thread interference in certain operations on shared objects. We formalise the language syntax, the operational semantics, and a type system that enforces by static typing that methods are called only when available, and by a single client if so specified in the usage type. We illustrate the language via a complete example.Comment: In Proceedings PLACES 2010, arXiv:1110.385

    Mapping H4K20me3 onto the chromatin landscape of senescent cells indicates a function in control of cell senescence and tumor suppression through preservation of genetic and epigenetic stability

    Get PDF
    Background: Histone modification H4K20me3 and its methyltransferase SUV420H2 have been implicated in suppression of tumorigenesis. The underlying mechanism is unclear, although H4K20me3 abundance increases during cellular senescence, a stable proliferation arrest and tumor suppressor process, triggered by diverse molecular cues, including activated oncogenes. Here, we investigate the function of H4K20me3 in senescence and tumor suppression. Results: Using immunofluorescence and ChIP-seq we determine the distribution of H4K20me3 in proliferating and senescent human cells. Altered H4K20me3 in senescence is coupled to H4K16ac and DNA methylation changes in senescence. In senescent cells, H4K20me3 is especially enriched at DNA sequences contained within specialized domains of senescence-associated heterochromatin foci (SAHF), as well as specific families of non-genic and genic repeats. Altered H4K20me3 does not correlate strongly with changes in gene expression between proliferating and senescent cells; however, in senescent cells, but not proliferating cells, H4K20me3 enrichment at gene bodies correlates inversely with gene expression, reflecting de novo accumulation of H4K20me3 at repressed genes in senescent cells, including at genes also repressed in proliferating cells. Although elevated SUV420H2 upregulates H4K20me3, this does not accelerate senescence of primary human cells. However, elevated SUV420H2/H4K20me3 reinforces oncogene-induced senescence-associated proliferation arrest and slows tumorigenesis in vivo. Conclusions: These results corroborate a role for chromatin in underpinning the senescence phenotype but do not support a major role for H4K20me3 in initiation of senescence. Rather, we speculate that H4K20me3 plays a role in heterochromatinization and stabilization of the epigenome and genome of pre-malignant, oncogene-expressing senescent cells, thereby suppressing epigenetic and genetic instability and contributing to long-term senescence-mediated tumor suppression

    Checking the Hardware-Software Interface in Spec#

    No full text
    Research operating systems are often written in type-safe, highlevel languages. These languages perform automatic static and dynamic checks to give basic assurances about run-time behavior. Yet such operating systems still rely on unsafe, low-level code to communicate with hardware, with little or no automated checking of the correctness of the hardware-software interaction. This paper describes experience using the Spec # language and Boogie verifier to statically specify and statically verify the safety of a driver's interaction with a network interface, including the safety of DMA. 1
    corecore