64,438 research outputs found
An Environment for Analyzing Space Optimizations in Call-by-Need Functional Languages
We present an implementation of an interpreter LRPi for the call-by-need
calculus LRP, based on a variant of Sestoft's abstract machine Mark 1, extended
with an eager garbage collector. It is used as a tool for exact space usage
analyses as a support for our investigations into space improvements of
call-by-need calculi.Comment: In Proceedings WPTE 2016, arXiv:1701.0023
Recommended from our members
Graph models for reachability analysis of concurrent programs
Reachability analysis is an attractive technique for analysis of concurrent programs because it is simple and relatively straightforward to automate, and can be used in conjunction with model-checking procedures to check for application-specific as well as general properties. Several techniques have been proposed differing mainly on the model used; some of these propose the use of flowgraph based models, some others of Petri nets.This paper addresses the question: What essential difference does it make, if any, what sort of finite-state model we extract from program texts for purposes of reachability analysis? How do they differ in expressive power, decision power, or accuracy? Since each is intended to model synchronization structure while abstracting away other features, one would expect them to be roughly equivalent.We confirm that there is no essential semantic difference between the most well known models proposed in the literature by providing algorithms for translation among these models. This implies that the choice of model rests on other factors, including convenience and efficiency.Since combinatorial explosion is the primary impediment to application of reachability analysis, a particular concern in choosing a model is facilitating divide-and-conquer analysis of large programs. Recently, much interest in finite-state verification systems has centered on algebraic theories of concurrency. Yeh and Young have exploited algebraic structure to decompose reachability analysis based on a flowgraph model. The semantic equivalence of graph and Petri net based models suggests that one ought to be able to apply a similar strategy for decomposing Petri nets. We show this is indeed possible through application of category theory
Saving Lives, Promoting Democracy, Alleviating Poverty, and Fighting AIDS: The Case for Funding Lesbian, Gay, Bisexual and Transgender Populations
Outlines how advocacy for LGBT rights contribute to broader human rights, criminal justice reform, and development efforts. Calls for funding for hate crimes prevention, HIV/AIDS education, economic empowerment, and local organizations' capacity building
Making the great transformation, November 13, 14, and 15, 2003
This repository item contains a single issue of the Pardee Conference Series, a publication series that began publishing in 2006 by the Boston University Frederick S. Pardee Center for the Study of the Longer-Range Future. This Conference took place during November 13, 14, and 15, 2003. Co-organized by Cutler Cleveland and Adil Najam.The conference discussants and participants analyze why transitions happen, and why they matter. Transitions are those wide-ranging changes in human organization and well being that can be convincingly attributed to a concerted set of choices that make the world that was significantly and recognizably different from the world that becomes.
Transition scholars argue that that history does not just stumble along a pre-determined path, but that human ingenuity and entrepreneurship have the ability to fundamentally alter its direction. However, our ability to ‘will’ such transitions remains in doubt. These doubts cannot be removed until we have a better understanding of how transitions work
Deuce: A Lightweight User Interface for Structured Editing
We present a structure-aware code editor, called Deuce, that is equipped with
direct manipulation capabilities for invoking automated program
transformations. Compared to traditional refactoring environments, Deuce
employs a direct manipulation interface that is tightly integrated within a
text-based editing workflow. In particular, Deuce draws (i) clickable widgets
atop the source code that allow the user to structurally select the
unstructured text for subexpressions and other relevant features, and (ii) a
lightweight, interactive menu of potential transformations based on the current
selections. We implement and evaluate our design with mostly standard
transformations in the context of a small functional programming language. A
controlled user study with 21 participants demonstrates that structural
selection is preferred to a more traditional text-selection interface and may
be faster overall once users gain experience with the tool. These results
accord with Deuce's aim to provide human-friendly structural interactions on
top of familiar text-based editing.Comment: ICSE 2018 Paper + Supplementary Appendice
Secure and efficient application monitoring and replication
Memory corruption vulnerabilities remain a grave threat to systems software written in C/C++. Current best practices dictate compiling programs with exploit mitigations such as stack canaries, address space layout randomization, and control-flow integrity. However, adversaries quickly find ways to circumvent such mitigations, sometimes even before these mitigations are widely deployed. In this paper, we focus on an "orthogonal" defense that amplifies the effectiveness of traditional exploit mitigations. The key idea is to create multiple diversified replicas of a vulnerable program and then execute these replicas in lockstep on identical inputs while simultaneously monitoring their behavior. A malicious input that causes the diversified replicas to diverge in their behavior will be detected by the monitor; this allows discovery of previously unknown attacks such as zero-day exploits. So far, such multi-variant execution environments (MVEEs) have been held back by substantial runtime overheads. This paper presents a new design, ReMon, that is non-intrusive, secure, and highly efficient. Whereas previous schemes either monitor every system call or none at all, our system enforces cross-checking only for security critical system calls while supporting more relaxed monitoring policies for system calls that are not security critical. We achieve this by splitting the monitoring and replication logic into an in-process component and a cross-process component. Our evaluation shows that ReMon offers same level of security as conservative MVEEs and run realistic server benchmarks at near-native speeds
- …