3,984 research outputs found

    Towards an Abstract Domain for Resource Analysis of Logic Programs Using Sized Types

    Get PDF
    We present a novel general resource analysis for logic programs based on sized types.Sized types are representations that incorporate structural (shape) information and allow expressing both lower and upper bounds on the size of a set of terms and their subterms at any position and depth. They also allow relating the sizes of terms and subterms occurring at different argument positions in logic predicates. Using these sized types, the resource analysis can infer both lower and upper bounds on the resources used by all the procedures in a program as functions on input term (and subterm) sizes, overcoming limitations of existing analyses and enhancing their precision. Our new resource analysis has been developed within the abstract interpretation framework, as an extension of the sized types abstract domain, and has been integrated into the Ciao preprocessor, CiaoPP. The abstract domain operations are integrated with the setting up and solving of recurrence equations for both, inferring size and resource usage functions. We show that the analysis is an improvement over the previous resource analysis present in CiaoPP and compares well in power to state of the art systems.Comment: Part of WLPE 2013 proceedings (arXiv:1308.2055

    Implications of the design of monetary policy for financial stability

    Get PDF
    This paper is a contribution to the literature on the factors behind financial stability, focusing on monetary policy design. In particular, it assesses empirically for a sample of 79 countries in the period 1970 to 2000 whether the choice of the central bank objectives and the monetary policy strategy affect financial stability. We find that focusing the central bank objectives on price stability reduces the likelihood of a banking crisis. This result is robust to several model specifications and groups of countries. As regards the monetary policy strategy, exchange rate targeting significantly reduces the likelihood of a banking crisis for some model specifications and, in particular, for the group of countries in transition.Monetary policy design, monetary policy objectives, monetary policy strategy, financial stability, and banking crisis

    Inhomogeneities and caustics in the sedimentation of noninertial particles in incompressible flows

    Full text link
    In an incompressible flow, fluid density remains invariant along fluid element trajectories. This implies that the spatial distribution of non-interacting noninertial particles in such flows cannot develop density inhomogeneities beyond those that are already introduced in the initial condition. However, in certain practical situations, density is measured or accumulated on (hyper-) surfaces of dimensionality lower than the full dimensionality of the flow in which the particles move. An example is the observation of particle distributions sedimented on the floor of the ocean. In such cases, even if the initial distribution of noninertial particles is uniform within a finite support in an incompressible flow, advection in the flow will give rise to inhomogeneities in the observed density. In this paper we analytically derive, in the framework of an initially homogeneous particle sheet sedimenting towards a bottom surface, the relationship between the geometry of the flow and the emerging distribution. From a physical point of view, we identify the two processes that generate inhomogeneities to be the stretching within the sheet, and the projection of the deformed sheet onto the target surface. We point out that an extreme form of inhomogeneity, caustics, can develop for sheets. We exemplify our geometrical results with simulations of particle advection in a simple kinematic flow, study the dependence on various parameters involved, and illustrate that the basic mechanisms work similarly if the initial (homogeneous) distribution occupies a more general region of finite extension rather than a sheet.Comment: 56 pages, 17 figure

    A technique for dynamic term size computation via program transformation

    Get PDF
    Knowing the size of the terms to which program variables are bound at run-time in logic programs is required in a class of applications related to program optimization such as, for example, granularity analysis and selection among different algorithms or control rules whose performance may be dependent on such size. Such size is difficult to even approximate at compile time and is thus generally computed at run-time by using (possibly predefined) predicates which traverse the terms involved. We propose a technique based on program transformation which has the potential of performing this computation much more efficiently. The technique is based on finding program procedures which are called before those in which knowledge regarding term sizes is needed and which traverse the terms whose size is to be determined, and transforming such procedures so that they compute term sizes "on the fly". We present a systematic way of determining whether a given program can be transformed in order to compute a given term size at a given program point without additional term traversal. Also, if several such transformations are possible our approach allows finding minimal transformations under certain criteria. We also discuss the advantages and applications of our technique and present some performance results

    Efficient term size computation for granularity control

    Get PDF
    Knowing the size of the terms to which program variables are bound at run-time in logic programs is required in a class of optimizations which includes granularity control and recursion elimination. Such size is difficult to even approximate at compile time and is thus generally computed at run-time by using (possibly predeñned) predicates which traverse the terms involved. We propose a technique which has the potential of performing this computation much more efficiently. The technique is based on ñnding program procedures which are called before those in which knowledge regarding term sizes is needed and which traverse the terms whose size is to be determined, and transforming such procedures so that they compute term sizes "on the fly". We present a systematic way of determining whether a given program can be transformed in order to compute a given term size at a given program point without additional term traversal. Also, if several such transformations are possible our approach allows ñnding minimal transformations under certain criteria. We also discuss the advantages and applications of our technique (specifically in the task of granularity control) and present some performance results

    Dynamic term size computation in logic programs via program transformation

    Get PDF
    Knowing the size of the terms to which program variables are bound at run-time in logic programs is required in a class of applications related to program optimization such as, for example, recursion elimination and granularity analysis. Such size is difficult to even approximate at compile time and is thus generally computed at run-time by using (possibly predefined) predicates which traverse the terms involved. We propose a technique based on program transformation which has the potential of performing this computation much more efficiently. The technique is based on finding program procedures which are called before those in which knowledge regarding term sizes is needed and which traverse the terms whose size is to be determined, and transforming such procedures so that they compute term sizes "on the fly". We present a systematic way of determining whether a given program can be transformed in order to compute a given term size at a given program point without additional term traversal. Also, if several such transformations are possible our approach allows finding minimal transformations under certain criteria. We also discuss the advantages and present some applications of our technique

    Towards dynamic term size computation via program transformation

    Get PDF
    Knowing the size of the terms to which program variables are bound at run-time in logic programs is required in a class of applications related to program optimization such as, for example, recursion elimination and granularity analysis. Such size is difficult to even approximate at compile time and is thus generally computed at run-time by using (possibly predefined) predicates which traverse the terms involved. We propose a technique based on program transformation which has the potential of performing this computation much more efficiently. The technique is based on finding program procedures which are called before those in which knowledge regarding term sizes is needed and which traverse the terms whose size is to be determined, and transforming such procedures so that they compute term sizes "on the fly". We present a systematic way of determining whether a given program can be transformed in order to compute a given term size at a given program point without additional term traversal. Also, if several such transformations are possible our approach allows finding minimal transformations under certain criteria. We also discuss the advantages and present some applications of our technique

    Análisis de factibilidad para el diseño y construcción de instalaciones de gas natural en viviendas unifamiliares empleando el R.N. E. EM - 040, en el distrito de Trujillo - 2018

    Get PDF
    En la presente investigación se realizó un análisis de factibilidad para el diseño y construcción de instalaciones de gas natural en viviendas unifamiliares en el distrito de Trujillo; para ello se recogió información de Osinergmin y clientes que actualmente cuentan con este servicio. Así también información de la normativa EM 040 acerca de las instalaciones de gas natural ; cuya finalidad es determinar la factibilidad de este servicio en las viviendas del distrito de Trujillo mediante un estudio del mercado del GN y el GLP, un estudio técnico para la instalación interna de la red domiciliaria de gas , un estudio financiero para determinar el ahorro del cliente al solicitar el uso del suministro de GN y un estudio medioambiental obteniendo los criterios técnicos que debemos tener en cuenta al realizar una instalación de GN; cuanto ahorraremos y cuanto nos beneficia solicitar la instalación de este servicio. Asimismo, determinar el grado de contaminación que genera el uso de este combustible en comparación con los existentes en el mercado. La investigación nos sirvió para dar a conocer la factibilidad de una instalación interna de gas natural en su hogar.In the present investigation, a feasibility analysis was carried out for the design and construction of natural gas installations of single-family homes in the Trujillo district for this information was collected from Osinergmin, companies related to natural gas, customers who currently have the service of natural gas and information of the EM 040 regulation of natural gas installations, in order to determine the feasibility of natural gas installations in Trujillo district homes, through a study of the GN and LPG market, a study Technician for the internal installation of the home gas network, a financial study to determine the client's savings when requesting the use of the GN supply, and an environmental study, obtaining the technical criteria that we have to take into account when installing a GN, how much we will save and how much it benefits us to request the installation of this service as well same determine the degree of pollution generated by the use of this fuel compared to those in the market. The investigation helped us to publicize the feasibility of an internal installation of natural gas in your home.Tesi

    Program development using abstract interpretation (and the ciao system preprocessor)

    Get PDF
    The technique of Abstract Interpretation has allowed the development of very sophisticated global program analyses which are at the same time provably correct and practical. We present in a tutorial fashion a novel program development framework which uses abstract interpretation as a fundamental tool. The framework uses modular, incremental abstract interpretation to obtain information about the program. This information is used to validate programs, to detect bugs with respect to partial specifications written using assertions (in the program itself and/or in system librarles), to genérate and simplify run-time tests, and to perform high-level program transformations such as múltiple abstract specialization, parallelization, and resource usage control, all in a provably correct way. In the case of validation and debugging, the assertions can refer to a variety of program points such as procedure entry, procedure exit, points within procedures, or global computations. The system can reason with much richer information than, for example, traditional types. This includes data structure shape (including pointer sharing), bounds on data structure sizes, and other operational variable instantiation properties, as well as procedure-level properties such as determinacy, termination, non-failure, and bounds on resource consumption (time or space cost). CiaoPP, the preprocessor of the Ciao multi-paradigm programming system, which implements the described functionality, will be used to illustrate the fundamental ideas
    corecore