92,057 research outputs found

    Inference of bounded L systems with polymorphic P systems

    Get PDF

    Allozyme Variation in a Rare Plant Species, Pediomelum piedmontanum (Fabaceae), from the Lower Piedmont Plateau of Georgia

    Get PDF
    A single population of Pediomelum piedmontanum (Fabaceae) occurs in Columbia County, Georgia. We examined allozyme variation in this population for 20 loci in eleven enzyme systems. Genetic diversity was low (P = 20.0%; A = 1.20; overall average HO= 0.038). Allelic frequencies in a large sample from one of two subpopulations predicted a significant deficiency of heterozygotes for all polymorphic loci (P \u3c 0.001), inconsistent with Hardy-Weinberg expectations. Allelic frequencies for a smaller sample from the other subpopulation predicted a significant deficiency of heterozygotes for one polymorphic locus (P \u3c 0.025) and nonsignificant excesses of heterozygotes for two others. Genetic differentiation among subpopulations was low (FST = 0.0142). Factors responsible for the extreme rarity of P. piedmontanum are unknown, but low genetic variation in the small, isolated Georgia population is most likely due to historical factors, genetic drift, and perhaps inbreeding

    Compositional Explanation of Types and Algorithmic Debugging of Type Errors

    Get PDF
    The type systems of most typed functional programming languages are based on the Hindley-Milner type system. A practical problem with these type systems is that it is often hard to understand why a program is not type correct or a function does not have the intended type. We suggest that at the core of this problem is the difficulty of explaining why a given expression has a certain type. The type system is not defined compositionally. We propose to explain types using a variant of the Hindley-Milner type system that defines a compositional type explanation graph of principal typings. We describe how the programmer understands types by interactive navigation through the explanation graph. Furthermore, the explanation graph can be the foundation for algorithmic debugging of type errors, that is, semi-automatic localisation of the source of a type error without even having to understand the type inference steps. We implemented a prototype of a tool to explore the usefulness of the proposed methods

    Koka: Programming with Row Polymorphic Effect Types

    Full text link
    We propose a programming model where effects are treated in a disciplined way, and where the potential side-effects of a function are apparent in its type signature. The type and effect of expressions can also be inferred automatically, and we describe a polymorphic type inference system based on Hindley-Milner style inference. A novel feature is that we support polymorphic effects through row-polymorphism using duplicate labels. Moreover, we show that our effects are not just syntactic labels but have a deep semantic connection to the program. For example, if an expression can be typed without an exn effect, then it will never throw an unhandled exception. Similar to Haskell's `runST` we show how we can safely encapsulate stateful operations. Through the state effect, we can also safely combine state with let-polymorphism without needing either imperative type variables or a syntactic value restriction. Finally, our system is implemented fully in a new language called Koka and has been used successfully on various small to medium-sized sample programs ranging from a Markdown processor to a tier-splitted chat application. You can try out Koka live at www.rise4fun.com/koka/tutorial.Comment: In Proceedings MSFP 2014, arXiv:1406.153
    • …
    corecore