718 research outputs found

    Exploiting Term Hiding to Reduce Run-time Checking Overhead

    Full text link
    One of the most attractive features of untyped languages is the flexibility in term creation and manipulation. However, with such power comes the responsibility of ensuring the correctness of these operations. A solution is adding run-time checks to the program via assertions, but this can introduce overheads that are in many cases impractical. While static analysis can greatly reduce such overheads, the gains depend strongly on the quality of the information inferred. Reusable libraries, i.e., library modules that are pre-compiled independently of the client, pose special challenges in this context. We propose a technique which takes advantage of module systems which can hide a selected set of functor symbols to significantly enrich the shape information that can be inferred for reusable libraries, as well as an improved run-time checking approach that leverages the proposed mechanisms to achieve large reductions in overhead, closer to those of static languages, even in the reusable-library context. While the approach is general and system-independent, we present it for concreteness in the context of the Ciao assertion language and combined static/dynamic checking framework. Our method maintains the full expressiveness of the assertion language in this context. In contrast to other approaches it does not introduce the need to switch the language to a (static) type system, which is known to change the semantics in languages like Prolog. We also study the approach experimentally and evaluate the overhead reduction achieved in the run-time checks.Comment: 26 pages, 10 figures, 2 tables; an extension of the paper version accepted to PADL'18 (includes proofs, extra figures and examples omitted due to space reasons

    An overview of the ciao multiparadigm language and program development environment and its design philosophy

    Full text link
    We describe some of the novel aspects and motivations behind the design and implementation of the Ciao multiparadigm programming system. An important aspect of Ciao is that it provides the programmer with a large number of useful features from different programming paradigms and styles, and that the use of each of these features can be turned on and off at will for each program module. Thus, a given module may be using e.g. higher order functions and constraints, while another module may be using objects, predicates, and concurrency. Furthermore, the language is designed to be extensible in a simple and modular way. Another important aspect of Ciao is its programming environment, which provides a powerful preprocessor (with an associated assertion language) capable of statically finding non-trivial bugs, verifying that programs comply with specifications, and performing many types of program optimizations. Such optimizations produce code that is highly competitive with other dynamic languages or, when the highest levéis of optimization are used, even that of static languages, all while retaining the interactive development environment of a dynamic language. The environment also includes a powerful auto-documenter. The paper provides an informal overview of the language and program development environment. It aims at illustrating the design philosophy rather than at being exhaustive, which would be impossible in the format of a paper, pointing instead to the existing literature on the system

    X-Ray, UV And Optical Analysis Of Supergiants: Ï” Ori

    Get PDF
    We present a multi-wavelength (X-ray to optical) analysis, based on non-local thermodynamic equilibrium photospheric+wind models, of the B0 Ia-supergiant: Ï” Ori. The aim is to test the consistency of physical parameters, such as the mass-loss rate and CNO abundances, derived from different spectral bands. The derived mass-loss rate is M˙/f∞−−−√∌ 1.6 × 10−6 M⊙ yr−1 where f∞ is the volume filling factor. However, the S iv λλ1062,1073 profiles are too strong in the models; to fit the observed profiles it is necessary to use f∞ \u3c0.01. This value is a factor of 5 to 10 lower than inferred from other diagnostics, and implies M˙â‰Č1×10−7 M⊙ yr−1. The discrepancy could be related to porosity–vorosity effects or a problem with the ionization of sulphur in the wind. To fit the UV profiles of N v and O vi it was necessary to include emission from an interclump medium with a density contrast (ρcl/ρICM) of ∌100. X-ray emission in H/He like and Fe L lines was modelled using four plasma components located within the wind. We derive plasma temperatures from 1 × 106 to 7 × 106 K, with lower temperatures starting in the outer regions (R0 ∌ 3–6 R*), and a hot component starting closer to the star (R0 â‰Č 2.9 R*). From X-ray line profiles we infer M˙\u3c4.9 × 10−7 M⊙ yr−1. The X-ray spectrum (≄0.1 kev) yields an X-ray luminosity LX ∌ 2.0 × 10−7Lbol, consistent with the superion line profiles. X-ray abundances are in agreement with those derived from the UV and optical analysis: Ï” Ori is slightly enhanced in nitrogen and depleted in carbon and oxygen, evidence for CNO processed material

    Multivariant Assertion-based Guidance in Abstract Interpretation

    Full text link
    Approximations during program analysis are a necessary evil, as they ensure essential properties, such as soundness and termination of the analysis, but they also imply not always producing useful results. Automatic techniques have been studied to prevent precision loss, typically at the expense of larger resource consumption. In both cases (i.e., when analysis produces inaccurate results and when resource consumption is too high), it is necessary to have some means for users to provide information to guide analysis and thus improve precision and/or performance. We present techniques for supporting within an abstract interpretation framework a rich set of assertions that can deal with multivariance/context-sensitivity, and can handle different run-time semantics for those assertions that cannot be discharged at compile time. We show how the proposed approach can be applied to both improving precision and accelerating analysis. We also provide some formal results on the effects of such assertions on the analysis results.Comment: Pre-proceedings paper presented at the 28th International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR 2018), Frankfurt am Main, Germany, 4-6 September 2018 (arXiv:1808.03326

    An assertion language for constraint logic programs

    Full text link
    In an advanced program development environment, such as that discussed in the introduction of this book, several tools may coexist which handle both the program and information on the program in different ways. Also, these tools may interact among themselves and with the user. Thus, the different tools and the user need some way to communicate. It is our design principie that such communication be performed in terms of assertions. Assertions are syntactic objects which allow expressing properties of programs. Several assertion languages have been used in the past in different contexts, mainly related to program debugging. In this chapter we propose a general language of assertions which is used in different tools for validation and debugging of constraint logic programs in the context of the DiSCiPl project. The assertion language proposed is parametric w.r.t. the particular constraint domain and properties of interest being used in each different tool. The language proposed is quite general in that it poses few restrictions on the kind of properties which may be expressed. We believe the assertion language we propose is of practical relevance and appropriate for the different uses required in the tools considered

    Fluorescent and Electroactive Monoalkyl BTD-Based Liquid Crystals with Tunable Self-Assembling and Electronic Properties

    Get PDF
    We report here on a series of redox active benzothiadiazole-based luminophores ffinctionalized on one edge with a phenyl-nonyl substituent, which confers these molecules a rodlike shape and a tendency to self-assemble into layered superstructures. On the other edge, the molecules are endowed with different p-substituted phenyl rings, which allows the modulation of their redox and optical properties on the basis of the electronic nature of the terminal substituents. We have found that just one lateral alkyl chain is sufficient to induce mesomorphism in these molecules, which present nematic or smectic mesophases upon therinal treatment. Single-crystal analysis allows us to get an insight into the nature of the forces responsible for different supramolecular assemblies in these derivatives, and point to a strong contribution of the terminal groups in the different arrangements observed. The interesting redox and optical properties together with their self-assembling tendencies render these new materials interesting candidates for optoelectromcs
    • 

    corecore