25,574 research outputs found

    Hidden Type Variables and Conditional Extension for More Expressive Generic Programs

    Full text link
    Generic object-oriented programming languages combine parametric polymorphism and nominal subtype polymorphism, thereby providing better data abstraction, greater code reuse, and fewer run-time errors. However, most generic object-oriented languages provide a straightforward combination of the two kinds of polymorphism, which prevents the expression of advanced type relationships. Furthermore, most generic object-oriented languages have a type-erasure semantics: instantiations of type parameters are not available at run time, and thus may not be used by type-dependent operations. This dissertation shows that two features, which allow the expression of many advanced type relationships, can be added to a generic object-oriented programming language without type erasure: 1. type variables that are not parameters of the class that declares them, and 2. extension that is dependent on the satisïŹability of one or more constraints. We refer to the first feature as hidden type variables and the second feature as conditional extension. Hidden type variables allow: covariance and contravariance without variance annotations or special type arguments such as wildcards; a single type to extend, and inherit methods from, infinitely many instantiations of another type; a limited capacity to augment the set of superclasses after that class is defined; and the omission of redundant type arguments. Conditional extension allows the properties of a collection type to be dependent on the properties of its element type. This dissertation describes the semantics and implementation of hidden type variables and conditional extension. A sound type system is presented. In addition, a sound and terminating type checking algorithm is presented. Although designed for the Fortress programming language, hidden type variables and conditional extension can be incorporated into other generic object-oriented languages. Many of the same problems would arise, and solutions analogous to those we present would apply

    Relational parametricity for higher kinds

    Get PDF
    Reynolds’ notion of relational parametricity has been extremely influential and well studied for polymorphic programming languages and type theories based on System F. The extension of relational parametricity to higher kinded polymorphism, which allows quantification over type operators as well as types, has not received as much attention. We present a model of relational parametricity for System Fω, within the impredicative Calculus of Inductive Constructions, and show how it forms an instance of a general class of models defined by Hasegawa. We investigate some of the consequences of our model and show that it supports the definition of inductive types, indexed by an arbitrary kind, and with reasoning principles provided by initiality

    Syntax for free: representing syntax with binding using parametricity

    Get PDF
    We show that, in a parametric model of polymorphism, the type ∀ α. ((α → α) → α) → (α → α → α) → α is isomorphic to closed de Bruijn terms. That is, the type of closed higher-order abstract syntax terms is isomorphic to a concrete representation. To demonstrate the proof we have constructed a model of parametric polymorphism inside the Coq proof assistant. The proof of the theorem requires parametricity over Kripke relations. We also investigate some variants of this representation

    The C++0x "Concepts" Effort

    Full text link
    C++0x is the working title for the revision of the ISO standard of the C++ programming language that was originally planned for release in 2009 but that was delayed to 2011. The largest language extension in C++0x was "concepts", that is, a collection of features for constraining template parameters. In September of 2008, the C++ standards committee voted the concepts extension into C++0x, but then in July of 2009, the committee voted the concepts extension back out of C++0x. This article is my account of the technical challenges and debates within the "concepts" effort in the years 2003 to 2009. To provide some background, the article also describes the design space for constrained parametric polymorphism, or what is colloquially know as constrained generics. While this article is meant to be generally accessible, the writing is aimed toward readers with background in functional programming and programming language theory. This article grew out of a lecture at the Spring School on Generic and Indexed Programming at the University of Oxford, March 2010

    APOE polymorphism and its effect on plasma C-reactive protein levels in a large general population sample

    Get PDF
    The literature on association between apolipoprotein E (APOE) gene variations and plasma levels of C-reactive protein (CRP) remains inconsistent, mainly due to low statistical power of previous studies. To clarify this question, we analysed data from large population sample of randomly selected individuals from 7 Czech towns (2886 males and 3344 females, the HAPIEE study). In both males and females, the lowest levels of plasma hsCRP were observed in the carriers of the APOE Δ4Δ4 and Δ4Δ3 genotypes. The median (inter-quartile range, IQR) concentration of hsCRP in carriers of the most common APOE Δ3Δ3 genotype (two thirds of participants) was 1.13 (IQR 0.56; 2.33) mg/l in men and 1.23 (IQR 0.61; 2.65) mg/l in women, compared with 0.72 (IQR 0.61; 0.86) mg/l in male and 0.72 (IQR 0.61-0.85) mg/l in female carriers of APOE Δ4Δ3/Δ4Δ4 genotypes; the differences were statistically significant (p<0.001). The association between APOE and CRP was not materially affected by adjustment for age, sex, history of cardiovascular disease or cardiovascular risk factors. This study, the largest to date, provides robust evidence of an association between plasma hsCRP and the APOE genotype, an association not explained by history of cardiovascular disease nor its risk factors

    Contextual equivalence in lambda-calculi extended with letrec and with a parametric polymorphic type system

    Get PDF
    This paper describes a method to treat contextual equivalence in polymorphically typed lambda-calculi, and also how to transfer equivalences from the untyped versions of lambda-calculi to their typed variant, where our specific calculus has letrec, recursive types and is nondeterministic. An addition of a type label to every subexpression is all that is needed, together with some natural constraints for the consistency of the type labels and well-scopedness of expressions. One result is that an elementary but typed notion of program transformation is obtained and that untyped contextual equivalences also hold in the typed calculus as long as the expressions are well-typed. In order to have a nice interaction between reduction and typing, some reduction rules have to be accompanied with a type modification by generalizing or instantiating types

    Tumor-Targeting Anti-CD20 Antibodies Mediate In Vitro Expansion of Memory Natural Killer Cells: Impact of CD16 Affinity Ligation Conditions and In Vivo Priming

    Get PDF
    Natural Killer (NK) cells represent a pivotal player of innate anti-tumor immune responses. The impact of environmental factors in shaping the representativity of different NK cell subsets is increasingly appreciated. Human Cytomegalovirus (HCMV) infection profoundly affects NK cell compartment, as documented by the presence of a CD94/NKG2C+Fc∝RI≄- long-lived “memory” NK cell subset, endowed with enhanced CD16-dependent functional capabilities, in a fraction of HCMV seropositive subjects. However, the requirements for memory NK cell pool establishment/maintenance and activation have not been fully characterised yet. Here we describe the capability of anti-CD20 tumor-targeting therapeutic monoclonal antibodies (mAbs) to drive the selective in vitro expansion of memory NK cells, and we show the impact of donor' HCMV serostatus and CD16 affinity ligation conditions on this event. In vitro expanded memory NK cells maintain the phenotypic and functional signature of their freshly isolated counterpart; furthermore, our data demonstrate that CD16 affinity ligation conditions differently affect memory NK cell proliferation and functional activation, as rituximab-mediated low-affinity ligation represents a superior proliferative stimulus, while high-affinity aggregation mediated by glycoengineered obinutuzumab results in improved multifunctional responses. Our work also expands the molecular and functional characterization of memory NK cells, and investigates the possible impact of CD16 functional allelic variants on their in vivo and in vitro expansion. These results reveal new insights in Ab-driven memory NK cell responses in a therapeutic setting, and may ultimately inspire new NK cell-based intervention strategies against cancer, in which the enhanced responsiveness to mAb-bound target could significantly impact therapeutic efficacy

    A Bi-Directional Refinement Algorithm for the Calculus of (Co)Inductive Constructions

    Full text link
    The paper describes the refinement algorithm for the Calculus of (Co)Inductive Constructions (CIC) implemented in the interactive theorem prover Matita. The refinement algorithm is in charge of giving a meaning to the terms, types and proof terms directly written by the user or generated by using tactics, decision procedures or general automation. The terms are written in an "external syntax" meant to be user friendly that allows omission of information, untyped binders and a certain liberal use of user defined sub-typing. The refiner modifies the terms to obtain related well typed terms in the internal syntax understood by the kernel of the ITP. In particular, it acts as a type inference algorithm when all the binders are untyped. The proposed algorithm is bi-directional: given a term in external syntax and a type expected for the term, it propagates as much typing information as possible towards the leaves of the term. Traditional mono-directional algorithms, instead, proceed in a bottom-up way by inferring the type of a sub-term and comparing (unifying) it with the type expected by its context only at the end. We propose some novel bi-directional rules for CIC that are particularly effective. Among the benefits of bi-directionality we have better error message reporting and better inference of dependent types. Moreover, thanks to bi-directionality, the coercion system for sub-typing is more effective and type inference generates simpler unification problems that are more likely to be solved by the inherently incomplete higher order unification algorithms implemented. Finally we introduce in the external syntax the notion of vector of placeholders that enables to omit at once an arbitrary number of arguments. Vectors of placeholders allow a trivial implementation of implicit arguments and greatly simplify the implementation of primitive and simple tactics
    • 

    corecore