23 research outputs found

    Panini: a concurrent programming model for solving pervasive and oblivious interference

    Get PDF
    Modular reasoning about concurrent programs is complicated by the possibility of interferences happening between any two instructions of a task (pervasive interference), and these interferences not giving out any information about the behaviors of potentially interfering concurrent tasks (oblivious interference). Reasoning about a concurrent program would be easier if a programmer modularly and statically (1) knows precisely the program points at which interferences may happen (sparse interference), and (2) has some insights into behaviors of potentially interfering tasks at these points (cognizant interference). In this work we present Panini, a core concurrent calculus which guarantees sparse interference, by controlling sharing among concurrent tasks, and cognizant interference, by controlling dynamic name bindings and accessibility of states of tasks. Panini promotes capsule-oriented programming whose concurrently running capsules own their states, communicate by asynchronous invocations of their procedures and dynamically transfer ownership. Panini limits sharing among two capsules to other capsules and futures, limits accessibility of a capsule states to only through its procedures and dispatches a procedure invocation on the static type of its receiver capsule. We formalize Panini, present its semantics and illustrate how its interference model, using behavioral contracts, enables Hoare-style modular reasoning about concurrent programs with interference

    Panini: A Concurrent Programming Model for Solving Pervasive & Oblivious Interference

    Get PDF
    Modular reasoning about concurrent programs is complicated by the pervasiveness of interferences that do not give out any information about the behaviors of potentially interfering concurrent tasks, at the interference points. Reasoning about a concurrent program would be easier if a programmer, modularly and statically: (1) knows precisely the program points at which the interference may happen, and (2) has some insights into the behaviors of other potentially concurrent tasks at these points. In this work, we present a core concurrent calculus with these properties and their proofs. Using our calculus a programmer can design and implement concurrent modules of their software using capsules and modularly reason about properties of these concurrent modules using static types referred to in their code, and then automatically have these properties hold in the larger concurrent system formed by composing these capsules. We also illustrate how this concurrent calculus can be used in conjunction with standard Hoare style reasoning to modularly verify concurrent programs with interference

    Ur/Web: A Simple Model for Programming the Web

    Get PDF
    The World Wide Web has evolved gradually from a document delivery platform to an architecture for distributed programming. This largely unplanned evolution is apparent in the set of interconnected languages and protocols that any Web application must manage. This paper presents Ur/Web, a domain-specific, statically typed functional programming language with a much simpler model for programming modern Web applications. Ur/Web's model is unified, where programs in a single programming language are compiled to other "Web standards" languages as needed; modular, supporting novel kinds of encapsulation of Web-specific state; and exposes simple concurrency, where programmers can reason about distributed, multithreaded applications via a mix of transactions and cooperative preemption. We give a tutorial introduction to the main features of Ur/Web, formalize the basic programming model with operational semantics, and discuss the language implementation and the production Web applications that use it.National Science Foundation (U.S.) (Grant CCF-1217501

    Transforming the Culture of the Stem Disciplines: A Multiple Case Study of Successful Strategies for Inclusive Excellence

    Get PDF
    In spite of the myriad initiatives promoting diversity and inclusion in science, technology, engineering, and math (STEM) disciplines at colleges and universities across the country and the increased funding for these types of initiatives, colleges and universities have experienced modest gains and, in some cases, slight declines in the graduation rates of women and underrepresented minorities (URMs). In addressing this issue, some institutions rely on traditional or “deficit” approaches that place primary responsibility on students for their success in the STEM fields. A growing number of institutions, however, embrace the concept of inclusive excellence, which is an assumption that underrepresented students can and will rise to high expectations provided institutions have a better understanding of and commitment to fostering the conditions in which these students thrive. Although there is much in the literature about successful programs and initiatives in the STEM disciplines that are aligned with the concept of inclusive excellence, there is little information about the organizational change processes that ensure that these initiatives are implemented on a scale large enough to significantly impact the enrollment and graduation rates of women and URMs. This study addressed the void in the literature through a multiple case study of three departments/schools at elite Predominantly White Institutions that have had success with enrolling and graduating women and underrepresented minorities (URMs) at rates above the national average – the computer science department at Harvey Mudd College, the physics department at the Massachusetts Institute of Technology, and the Cockrell School of Engineering at the University of Texas Austin. Employing qualitative content analysis as the methodology, 246 documents from these institutions were analyzed both deductively with the Transformational Change Model for Inclusive Excellence as a framework and inductively to determine the strategies that advanced initiatives in the model departments and school. Analysis revealed that each department/school utilized, to some degree, strategies from the framework, including understanding and articulating the rationale for change, securing senior administrator buy-in, collaborating across multiple departments and disciplines, providing professional development for those associated with initiatives, focusing attention on the environment for underrepresented students, developing a vision for the department/school that was flexible and modified when needed, engaging in high impact and visible actions that were staged over time, and conducting comprehensive assessment and evaluation. Beyond the framework, analysis revealed that campus culture, external funding, and selective admissions also played a role in advancing initiatives on a large scale, as did other factors that were specific to each institution

    Revealing Behaviours of Concurrent Functional Programs by Systematic Testing

    Get PDF
    We aim to make it easier for programmers to write correct concurrent programs and to demonstrate that concurrency testing techniques, typically described in the context of simple core languages, can be successfully applied to languages with more complex concurrency. In pursuit of these goals, we develop three lines of work: Testing concurrent Haskell We develop a library for testing concurrent Haskell programs using a typeclass abstraction of concurrency, which we give a formal semantics. Our tool implements systematic concurrency testing, a family of techniques for deterministically testing concurrent programs. Along the way we also tackle how to soundly handle daemon threads, and how to usefully present complex execution traces to a user. We not only obtain a useful tool for Haskell programs, but we also show that these techniques work well in languages with rich concurrency abstractions. Randomised concurrency testing We propose a new algorithm for randomly testing concurrent programs. This approach is fundamentally incomplete, but can be suitable in cases where systematic concurrency testing is not. We show that our algorithm performs as well as a pre-existing popular algorithm for a standard set of benchmarks. This pre-existing algorithm requires the use of program-specific parameters, but our algorithm does not. We argue that this makes use and implementation of our algorithm simpler. Finding properties of programs We develop a tool for finding properties of sets of concurrency functions operating on some shared state, such as the API for a concurrent data type. Our tool enumerates Haskell expressions and discovers properties by comparing execution results for a variety of inputs. Unlike other property discovery tools, we support side effects. We do so by building on our tool for testing concurrent Haskell programs. We argue that this approach can lead to greater understanding of concurrency functions

    Effective testing for concurrency bugs

    Get PDF
    In the current multi-core era, concurrency bugs are a serious threat to software reliability. As hardware becomes more parallel, concurrent programming will become increasingly pervasive. However, correct concurrent programming is known to be extremely challenging for developers and can easily lead to the introduction of concurrency bugs. This dissertation addresses this challenge by proposing novel techniques to help developers expose and detect concurrency bugs. We conducted a bug study to better understand the external and internal effects of real-world concurrency bugs. Our study revealed that a significant fraction of concurrency bugs qualify as semantic or latent bugs, which are two particularly challenging classes of concurrency bugs. Based on the insights from the study, we propose a concurrency bug detector, PIKE that analyzes the behavior of program executions to infer whether concurrency bugs have been triggered during a concurrent execution. In addition, we present the design of a testing tool, SKI, that allows developers to test operating system kernels for concurrency bugs in a practical manner. SKI bridges the gap between user-mode testing and kernel-mode testing by enabling the systematic exploration of the kernel thread interleaving space. Our evaluation shows that both PIKE and SKI are effective at finding concurrency bugs.Im gegenwärtigen Multicore-Zeitalter sind Fehler aufgrund von Nebenläufigkeit eine ernsthafte Bedrohung der Zuverlässigkeit von Software. Mit der wachsenden Parallelisierung von Hardware wird nebenläufiges Programmieren nach und nach allgegenwärtig. Diese Art von Programmieren ist jedoch als äußerst schwierig bekannt und kann leicht zu Programmierfehlern führen. Die vorliegende Dissertation nimmt sich dieser Herausforderung an indem sie neuartige Techniken vorschlägt, die Entwicklern beim Aufdecken von Nebenläufigkeitsfehlern helfen. Wir führen eine Studie von Fehlern durch, um die externen und internen Effekte von in der Praxis vorkommenden Nebenläufigkeitsfehlern besser zu verstehen. Diese ergibt, dass ein bedeutender Anteil von solchen Fehlern als semantisch bzw. latent zu charakterisieren ist -- zwei besonders herausfordernde Klassen von Nebenläufigkeitsfehlern. Basierend auf den Erkenntnissen der Studie entwickeln wir einen Detektor (PIKE), der Programmausführungen daraufhin analysiert, ob Nebenläufigkeitsfehler aufgetreten sind. Weiterhin präsentieren wir das Design eines Testtools (SKI), das es Entwicklern ermöglicht, Betriebssystemkerne praktikabel auf Nebenläufigkeitsfehler zu überprüfen. SKI füllt die Lücke zwischen Testen im Benutzermodus und Testen im Kernelmodus, indem es die systematische Erkundung der Kernel-Thread-Verschachtelungen erlaubt. Unsere Auswertung zeigt, dass sowohl PIKE als auch SKI effektiv Nebenläufigkeitsfehler finden

    Integrated Environmental Modelling Framework for Cumulative Effects Assessment

    Get PDF
    Global warming and population growth have resulted in an increase in the intensity of natural and anthropogenic stressors. Investigating the complex nature of environmental problems requires the integration of different environmental processes across major components of the environment, including water, climate, ecology, air, and land. Cumulative effects assessment (CEA) not only includes analyzing and modeling environmental changes, but also supports planning alternatives that promote environmental monitoring and management. Disjointed and narrowly focused environmental management approaches have proved dissatisfactory. The adoption of integrated modelling approaches has sparked interests in the development of frameworks which may be used to investigate the processes of individual environmental component and the ways they interact with each other. Integrated modelling systems and frameworks are often the only way to take into account the important environmental processes and interactions, relevant spatial and temporal scales, and feedback mechanisms of complex systems for CEA. This book examines the ways in which interactions and relationships between environmental components are understood, paying special attention to climate, land, water quantity and quality, and both anthropogenic and natural stressors. It reviews modelling approaches for each component and reviews existing integrated modelling systems for CEA. Finally, it proposes an integrated modelling framework and provides perspectives on future research avenues for cumulative effects assessment

    Nuclear receptors in the Pacific oyster, Crassostrea gigas, as screening tool for determining response to environmental contaminants.

    Get PDF
    Marine environments are under constant pressure from anthropogenic pollution. Chemical pollutants are introduced into the aquatic environment through waste disposal, sewage, land runoff and environmental exploitation (harbours, fisheries, tourism) leading to disastrous effects on the marine wildlife. Developmental malformations, reproduction failure including sex changes and high death rates are commonly observed in aquatic animal populations around the world. Unfortunately, the underlying molecular mechanisms of these pollution effects, in particular for marine invertebrate species, are often unknown. One proposed mechanism through which environmental pollution affects wildlife, is the disruption of nuclear receptors (NRs), ligand-binding transcription factors in animals. Environmental pollutants can directly interact with nuclear receptors, inducing incorrect signals for gene expression and subsequently disrupt developmental and physiological processes. Elucidation of the exact mechanism in invertebrates, however, is sparse due to limited understanding of invertebrate endocrinology and molecular regulatory mechanisms. Here, I have investigated the presence, expression and function of NRs in the Pacific oyster, Crassostrea gigas, and explored their interrelation with known environmental pollutants. Using a suite of molecular techniques and bioinformatics tools I demonstrate that the Pacific oyster possesses a large variety of NR homologs (43 NRs), which display individual expression profiles during embryo/larval development and supposedly fulfil distinct functions in developmental and physiological processes. Functional studies on a small subset of oyster NRs provided evidence for their ability to regulate gene expression, including interactions with DNA, other NRs or small molecules (ligand-binding). Oyster receptors also show a high likeliness to be disrupted by environmental pollutants. Computational docking showed that the retinoid X receptor ortholog, CgRXR, is able to bind and be activated by 9-cis retinoic acid and by the well-known environmental contaminant tributyltin. A potential interaction between tributyltin and the peroxisome proliferator-activated receptor ortholog CgPPAR has also been found. In addition, exposure of oyster embryos to retinoic acids and tributyltin resulted in shell deformations and developmental failure. In contrast, computer modelling of another putative target for pollutants, the retinoic acid receptor ortholog CgRAR, did not indicate interactions with common retinoic acids, supporting a recently developed theory of loss of retinoid binding in molluscan RARs. Sequence analyses revealed six residues in the receptor sequence, which prevent the successful interaction with retinoid ligands. In conclusion, this investigative work aids the understanding of fundamental processes in invertebrates, such as gene expression and endocrinology, as well as further understanding and prediction of effects of environmental pollutants on marine invertebrates.Funded by the University of Exeter and the Centre for Environment, Fisheries and Aquaculture Scienc
    corecore