122 research outputs found

    Three Discussions on Object-Oriented Typing

    Get PDF
    This paper summarizes three discussions conducted at the ECOOP'91 W5 Workshop on ''Types, Inheritance, and Assignments'' Tuesday July 16, 1991 in Geneva, Switzerland, organized by the authors. The three discussions were entitled ''Classes versus Types'', ''Static versus Dynamic Typing'', and ''Type Inference''. All these topics were assumed to be volatile and controversial; indeed, a broad range of diverging opinions were represented. However, much superficial disagreement seemed to be rooted in confusions about terminology. When such issues were resolved, there appeared a consensus about basic definitions and the - often incompatible - choices that one is at liberty to make. This clarification, which we hope to have described below, was the most important achievement of the workshop

    Polyvariant Analysis of the Untyped Lambda Calculus

    Get PDF
    We present a polyvariant closure, safety, and binding time analysis for the untyped lambda calculus. The innovation is to analyze each abstraction afresh at all syntactic application points. This is achieved by a semantics-preserving program transformation followed by a novel monovariant analysis, expressed using type constraints. The constraints are solved in cubic time by a single fixed-point computation.Safety analysis is aimed at determining if a term will cause an error during evaluation. We have recently proved that the monovariant safety analysis accepts strictly more terms than simple type inference. This paper demonstrates that the polyvariant transformation makes even more terms acceptable, even some without higher-order polymorphic types. Furthermore, polyvariant binding time analysis can improve the partial evaluators that base a polyvariant specialization on only monovariant binding time analysis

    A Unified Type System for Object-Oriented Programming

    Get PDF
    We present a new type system for object-oriented languages with assignments. Types are sets of classes, subtyping is set inclusion, and genericity is class substitution. The type system enables separate compilation, and unifies, generalizes, and simplifies the type systems underlying SIMULA/BETA, C++, EIFFEL, and Typed Smalltalk, and the type system with type substitutions proposed by Palsberg and Schwartzbach, Classes and types are both modeled as node-labeled, ordered regular trees; this allows an efficient type-checking algorithm

    Safety Analysis versus Type Inference

    Get PDF
    Safety analysis is an algorithm for determining if a term in the untyped lambda calculus with constants is safe, i.e., if it does not cause an error during evaluation. This ambition is also shared by algorithms for type inference. Safety analysis and type inference are based on rather different perspectives, however. Safety analysis is based on closure analysis, whereas type inference attempts to assign a type to all subterms.In this paper we prove that safety analysis is sound, relative to both a strict and a lazy operational semantics, and superior to type inference, in the sense that it accepts strictly more safe lambda terms.The latter result may indicate the relative potentials of static program analyses based on respectively closure analysis and type inference

    The bigwig Project

    Get PDF
    We present the results of the <bigwig> project, which aims to design and implement a high-level domain-specific language for programming interactive Web services. A fundamental aspect of the development of the World Wide Web during the last decade is the gradual change from static to dynamic generation of Web pages. Generating Web pages dynamically in dialogue with the client has the advantage of providing up-to-date and tailor-made information. The development of systems for constructing such dynamic Web services has emerged as a whole new research area. The <bigwig> language is designed by analyzing its application domain and identifying fundamental aspects of Web services inspired by problems and solutions in existing Web service development languages. The core of the design consists of a session-centered service model together with a flexible template-based mechanism for dynamic Web page construction. Using specialized program analyses, certain Web specific properties are verified at compile-time, for instance that only valid HTML 4.01 is ever shown to the clients. In addition, the design provides high-level solutions to form field validation, caching of dynamic pages, and temporal-logic based concurrency control, and it proposes syntax macros for making highly domain-specific languages. The language is implemented via widely available Web technologies, such as Apache on the server-side and JavaScript and Java Applets on the client-side. We conclude with experience and evaluation of the project

    The DSD Schema Language and its Applications

    Get PDF
    XML (eXtensible Markup Language), a linear syntax for trees, has gathered a remarkable amount of interest in industry. The acceptance of XML opens new venues for the application of formal methods such as specification of abstract syntax tree sets and tree transformations. A user domain may be specified as a set of trees. For example, XHTML is a user domain corresponding to the set of XML documents that make sense asHTML. A notation for defining such a set of XML trees is called a schema language. We believe that a useful schema notation must identify most of the syntacticrequirements that the documents in the user domain follow; allow efficient parsing; be readable to the user; allow a declarative default notation `a la CSS; and bemodular and extensible to support evolving classes of XML documents. In the present paper, we give a tutorial introduction to the DSD (Document Structure Description) notation as our bid on how to meet these requirements. TheDSD notation was inspired by industrial needs, and we show how DSDs help manage aspects of complex XML software through a case study about interactive voiceresponse systems (automated telephone answering systems, where input is through the telephone keypad or speech recognition). The expressiveness of DSDs goes beyond the DTD schema concept that is alreadypart of XML. We advocate the use of nonterminals in a top-down manner, coupled with boolean logic and regular expressions to describe how constraints on tree nodes depend on their context. We also support a general, declarative mechanism for inserting default elements and attributes that is reminiscent of CascadingStyle Sheets (CSS), a way of manipulating formatting instructions in HTML that is built into all modern browsers. Finally, we include a simple technique for evolving DSDs through selective redefinitions. DSDs are in many ways much more expressive than XML Schema (the schema language proposed by the W3C), but their syntactic and semantic definition in English is only 1/8th the size. Also, the DSD notation is self-describable: the syntax of legal DSD documents and all static semantic requirements can be captured in a DSD document, called the meta-DSD

    The bigwig Project

    Get PDF
    We present the results of the -bigwig- project, which aims to design and implement a high-level domain-specific language for programming interactive Web services.The World Wide Web has undergone an extreme development since its invention ten years ago. A fundamental aspect is the change from static to dynamic generation of Web pages. Generating Web pages dynamically in dialogue with the client has the advantage of providing up-to-date and tailor-made information. The development of systems for constructing such dynamic Web services has emerged as a whole new research area. The language is designed by analyzing its application domain and identifying fundamental aspects of Web services. Each aspect is handled by a nearly independent sublanguage, and the entire collection is integrated into a common core language. The -bigwig- compiler uses the available Web technologies as target languages, making -bigwig- available on almost any combination of browser and server, without relying on plug-ins or server modules

    Nanopods: A New Bacterial Structure and Mechanism for Deployment of Outer Membrane Vesicles

    Get PDF
    Background: Bacterial outer membrane vesicles (OMV) are packets of periplasmic material that, via the proteins and other molecules they contain, project metabolic function into the environment. While OMV production is widespread in proteobacteria, they have been extensively studied only in pathogens, which inhabit fully hydrated environments. However, many (arguably most) bacterial habitats, such as soil, are only partially hydrated. In the latter, water is characteristically distributed as films on soil particles that are, on average thinner, than are typical OMV (ca. ≀10 nm water film vs. 20 to >200 nm OMV;). Methodology/Principal Findings: We have identified a new bacterial surface structure, termed a "nanopod", that is a conduit for projecting OMV significant distances (e.g., ≄6 ”m) from the cell. Electron cryotomography was used to determine nanopod three-dimensional structure, which revealed chains of vesicles within an undulating, tubular element. By using immunoelectron microscopy, proteomics, heterologous expression and mutagenesis, the tubes were determined to be an assembly of a surface layer protein (NpdA), and the interior structures identified as OMV. Specific metabolic function(s) for nanopods produced by Delftia sp. Cs1-4 are not yet known. However, a connection with phenanthrene degradation is a possibility since nanopod formation was induced by growth on phenanthrene. Orthologs of NpdA were identified in three other genera of the Comamonadaceae family, and all were experimentally verified to form nanopods. Conclusions/Significance: Nanopods are new bacterial organelles, and establish a new paradigm in the mechanisms by which bacteria effect long-distance interactions with their environment. Specifically, they create a pathway through which cells can effectively deploy OMV, and the biological activity these transmit, in a diffusion-independent manner. Nanopods would thus allow environmental bacteria to expand their metabolic sphere of influence in a manner previously unknown for these organisms

    Correction to: Cluster identification, selection, and description in Cluster randomized crossover trials: the PREP-IT trials

    Get PDF
    An amendment to this paper has been published and can be accessed via the original article
    • 

    corecore