3,984 research outputs found
Towards an Abstract Domain for Resource Analysis of Logic Programs Using Sized Types
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
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
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
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
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
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
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
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)
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
- …