1,513 research outputs found

    Refinement Type Inference via Horn Constraint Optimization

    Full text link
    We propose a novel method for inferring refinement types of higher-order functional programs. The main advantage of the proposed method is that it can infer maximally preferred (i.e., Pareto optimal) refinement types with respect to a user-specified preference order. The flexible optimization of refinement types enabled by the proposed method paves the way for interesting applications, such as inferring most-general characterization of inputs for which a given program satisfies (or violates) a given safety (or termination) property. Our method reduces such a type optimization problem to a Horn constraint optimization problem by using a new refinement type system that can flexibly reason about non-determinism in programs. Our method then solves the constraint optimization problem by repeatedly improving a current solution until convergence via template-based invariant generation. We have implemented a prototype inference system based on our method, and obtained promising results in preliminary experiments.Comment: 19 page

    GhostMinion: A Strictness-Ordered Cache System for Spectre Mitigation

    Get PDF
    Out-of-order speculation, a technique ubiquitous since the early 1990s, remains a fundamental security flaw. Via attacks such as Spectre and Meltdown, an attacker can trick a victim, in an otherwise entirely correct program, into leaking its secrets through the effects of misspeculated execution, in a way that is entirely invisible to the programmer's model. This has serious implications for application sandboxing and inter-process communication. Designing efficient mitigations, that preserve the performance of out-of-order execution, has been a challenge. The speculation-hiding techniques in the literature have been shown to not close such channels comprehensively, allowing adversaries to redesign attacks. Strong, precise guarantees are necessary, but at the same time mitigations must achieve high performance to be adopted. We present Strictness Ordering, a new constraint system that shows how we can comprehensively eliminate transient side channel attacks, while still allowing complex speculation and data forwarding between speculative instructions. We then present GhostMinion, a cache modification built using a variety of new techniques designed to provide Strictness Order at only 2.5% overhead

    VAMP: semantic validation for MPEG-7 profile descriptions

    Get PDF
    MPEG-7 can be used to create complex and comprehensive metadata descriptions of multimedia content. Since MPEG-7 is defined in terms of an XML schema, the semantics of its elements has no formal grounding. In addition, certain features can be described in multiple ways. MPEG-7 profiles are subsets of the standard that apply to specific application areas and that aim to reduce this syntactic variability, but they still lack formal semantics. We propose an approach for expressing the semantics explicitly

    Parallel programming using functional languages

    Get PDF
    It has been argued for many years that functional programs are well suited to parallel evaluation. This thesis investigates this claim from a programming perspective; that is, it investigates parallel programming using functional languages. The approach taken has been to determine the minimum programming which is necessary in order to write efficient parallel programs. This has been attempted without the aid of clever compile-time analyses. It is argued that parallel evaluation should be explicitly expressed, by the programmer, in programs. To do achieve this a lazy functional language is extended with parallel and sequential combinators. The mathematical nature of functional languages means that programs can be formally derived by program transformation. To date, most work on program derivation has concerned sequential programs. In this thesis Squigol has been used to derive three parallel algorithms. Squigol is a functional calculus from program derivation, which is becoming increasingly popular. It is shown that some aspects of Squigol are suitable for parallel program derivation, while others aspects are specifically orientated towards sequential algorithm derivation. In order to write efficient parallel programs, parallelism must be controlled. Parallelism must be controlled in order to limit storage usage, the number of tasks and the minimum size of tasks. In particular over-eager evaluation or generating excessive numbers of tasks can consume too much storage. Also, tasks can be too small to be worth evaluating in parallel. Several program techniques for parallelism control were tried. These were compared with a run-time system heuristic for parallelism control. It was discovered that the best control was effected by a combination of run-time system and programmer control of parallelism. One of the problems with parallel programming using functional languages is that non-deterministic algorithms cannot be expressed. A bag (multiset) data type is proposed to allow a limited form of non-determinism to be expressed. Bags can be given a non-deterministic parallel implementation. However, providing the operations used to combine bag elements are associative and commutative, the result of bag operations will be deterministic. The onus is on the programmer to prove this, but usually this is not difficult. Also bags' insensitivity to ordering means that more transformations are directly applicable than if, say, lists were used instead. It is necessary to be able to reason about and measure the performance of parallel programs. For example, sometimes algorithms which seem intuitively to be good parallel ones, are not. For some higher order functions it is posible to devise parameterised formulae describing their performance. This is done for divide and conquer functions, which enables constraints to be formulated which guarantee that they have a good performance. Pipelined parallelism is difficult to analyse. Therefore a formal semantics for calculating the performance of pipelined programs is devised. This is used to analyse the performance of a pipelined Quicksort. By treating the performance semantics as a set of transformation rules, the simulation of parallel programs may be achieved by transforming programs. Some parallel programs perform poorly due to programming errors. A pragmatic method of debugging such programming errors is illustrated by some examples

    Teacher-Student Relationships and Student Achievement in Grades Six and Seven Math

    Get PDF
    This study analyzed the effect of teacher-student relationships on the Virginia Standards of Learning (SOL) math scores for grades six and seven. Data were studied to determine if an increase in student achievement was related to the often-overlooked interpersonal human relationships between teachers and students. The researcher expected to find a correlation between positive teacher-student relationships and an increase in standardized test scores. The researcher analyzed the data of student scores in rural middle school mathematics\u27 class and teacher characteristics to determine if a relation existed between student achievement and positive teacher-student relationships. The American version of the Questionnaire on Teacher Interaction (QTI) was used to collect information on teacher-student relationships from the student point of view and was correlated to end-of-year math SOL test scores. The participants were sixth and seventh grade students who answered questions about the mathematics teacher. The results of the survey were then compared to the year end Standards of Learning Mathematics Test. The survey answers were compiled using a pre-set number organization that grouped the answers into the eight different teacher characteristic categories. In review of the overall percentages, it appeared that the students found the teachers in this mathematics-teaching group to have strong skills in leadership, helpfulness, dissatisfaction, and uncertainty. In the teacher categories, leadership, helpfulness, dissatisfaction, and uncertainty, there was a significant correlation between the Virginia Standards of Learning passing test scores and teacher categories

    Modular, higher order cardinality analysis in theory and practice

    Get PDF
    Since the mid '80s, compiler writers for functional languages (especially lazy ones) have been writing papers about identifying and exploiting thunks and lambdas that are used only once. However, it has proved difficult to achieve both power and simplicity in practice. In this paper, we describe a new, modular analysis for a higher order language, which is both simple and effective. We prove the analysis sound with respect to a standard call-by-need semantics, and present measurements of its use in a full-scale, state-of-the-art optimising compiler. The analysis finds many single-entry thunks and one-shot lambdas and enables a number of program optimisations. This paper extends our preceding conference publication (Sergey et al. 2014 Proceedings of the 41st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2014). ACM, pp. 335–348) with proofs, expanded report on evaluation and a detailed examination of the factors causing the loss of precision in the analysis

    School\u27s out: Adolescent \u27leisure time\u27 activities, influences and consequences

    Get PDF
    The current study investigated the out-of-school activities in which adolescents participate categorised in terms of structure, type (creative, physical, passive) and level of interaction (individual, group), the developmental, psychological and social consequences of such involvement, and the factors influencing participation. Questionnaires completed by 1280, 12 to 17 year old Western Australian metropolitan, high-school students provided information on adolescents\u27 out-of-school time use, their perceptions of parental values and behaviours, friends\u27 behaviours and relationships and their own behaviours and beliefs. A model, based on the research literature, indicated that parent support and intrinsic motivation were the two factors contributing most to adolescent participation in structured `leisure\u27 activities. There was some support for the hypothesis that involvement in structured `leisure\u27 activities would be associated with higher levels of self-worth and life satisfaction, less boredom and less frequent engagement in risk behaviours. However, it was found that parent strictness and connectedness (as perceived by the adolescents) were the largest contributors to these outcomes. The findings provided support for the `positive psychology movement\u27 and suggest that the majority of this group of adolescents are living effectively in the demanding and changing environment of today\u27s society

    Benchmarking and Error Diagnosis in Multi-Instance Pose Estimation

    Get PDF
    We propose a new method to analyze the impact of errors in algorithms for multi-instance pose estimation and a principled benchmark that can be used to compare them. We define and characterize three classes of errors - localization, scoring, and background - study how they are influenced by instance attributes and their impact on an algorithm's performance. Our technique is applied to compare the two leading methods for human pose estimation on the COCO Dataset, measure the sensitivity of pose estimation with respect to instance size, type and number of visible keypoints, clutter due to multiple instances, and the relative score of instances. The performance of algorithms, and the types of error they make, are highly dependent on all these variables, but mostly on the number of keypoints and the clutter. The analysis and software tools we propose offer a novel and insightful approach for understanding the behavior of pose estimation algorithms and an effective method for measuring their strengths and weaknesses.Comment: Project page available at http://www.vision.caltech.edu/~mronchi/projects/PoseErrorDiagnosis/; Code available at https://github.com/matteorr/coco-analyze; published at ICCV 1
    • …
    corecore