953 resultados para Modular programming.
Resumo:
El artículo se propone a discutir el entrelace entre historia, poesía y ciudad en la obra Taller de arquitectura, de José Agustín Goytisolo, especialmente en su poema 'Bilbao song'. Integrante de la denominada generación de los 50, Goytisolo demostró, frecuentemente, gran preocupación sobre la condición del hombre en la sociedad moderna y su vida en las grandes ciudades. Taller de arquitectura es una obra representativa en el contexto de sus reflexiones sobre el hombre y su entorno. En nuestro texto discutiremos como el poeta articula distintas visiones de la ciudad de Bilbao con los discursos que surgen a lo largo del poema. Para emprender dicha discusión, proponemos un recorrido por la historia política, social y estética del final de los años 60 y principios de los 70 en España, a fin de examinar los procedimientos poéticos utilizados por el autor en la configuración de las relaciones entre historia, poesía y sociedad presentes en 'Bilbao song'. Expondremos como el autor aprehende y modula las voces de 'Bilbao song' utilizándose de la yuxtaposición de imágenes, de historias y de ritmos, para componer un mosaico que revela las diversas caras de la ciudad y de sus gentes bajo el cielo de la dictadura franquista
Resumo:
We show a method for parallelizing top down dynamic programs in a straightforward way by a careful choice of a lock-free shared hash table implementation and randomization of the order in which the dynamic program computes its subproblems. This generic approach is applied to dynamic programs for knapsack, shortest paths, and RNA structure alignment, as well as to a state-of-the-art solution for minimizing the máximum number of open stacks. Experimental results are provided on three different modern multicore architectures which show that this parallelization is effective and reasonably scalable. In particular, we obtain over 10 times speedup for 32 threads on the open stacks problem.
Resumo:
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 libraries), to generate and simplify run-time tests, and to perform high-level program transformations such as multiple 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, nonfailure, 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.
Resumo:
The complexity in the execution of cooperative tasks is high due to the fact that a robot team requires movement coordination at the beginning of the mission and continuous coordination during the execution of the task. A variety of techniques have been proposed to give a solution to this problem assuming standard mobile robots. This work focuses on presenting the execution of a cooperative task by a modular robot team. The complexity of the task execution increases due to the fact that each robot is composed of modules which have to be coordinated in a proper way to successfully work. A combined tight and loose cooperation strategy is presented and a bar-pushing example is used as a cooperative task to show the performance of this type of system.
Resumo:
El cálculo de relaciones binarias fue creado por De Morgan en 1860 para ser posteriormente desarrollado en gran medida por Peirce y Schröder. Tarski, Givant, Freyd y Scedrov demostraron que las álgebras relacionales son capaces de formalizar la lógica de primer orden, la lógica de orden superior así como la teoría de conjuntos. A partir de los resultados matemáticos de Tarski y Freyd, esta tesis desarrolla semánticas denotacionales y operacionales para la programación lógica con restricciones usando el álgebra relacional como base. La idea principal es la utilización del concepto de semántica ejecutable, semánticas cuya característica principal es el que la ejecución es posible utilizando el razonamiento estándar del universo semántico, este caso, razonamiento ecuacional. En el caso de este trabajo, se muestra que las álgebras relacionales distributivas con un operador de punto fijo capturan toda la teoría y metateoría estándar de la programación lógica con restricciones incluyendo los árboles utilizados en la búsqueda de demostraciones. La mayor parte de técnicas de optimización de programas, evaluación parcial e interpretación abstracta pueden ser llevadas a cabo utilizando las semánticas aquí presentadas. La demostración de la corrección de la implementación resulta extremadamente sencilla. En la primera parte de la tesis, un programa lógico con restricciones es traducido a un conjunto de términos relacionales. La interpretación estándar en la teoría de conjuntos de dichas relaciones coincide con la semántica estándar para CLP. Las consultas contra el programa traducido son llevadas a cabo mediante la reescritura de relaciones. Para concluir la primera parte, se demuestra la corrección y equivalencia operacional de esta nueva semántica, así como se define un algoritmo de unificación mediante la reescritura de relaciones. La segunda parte de la tesis desarrolla una semántica para la programación lógica con restricciones usando la teoría de alegorías—versión categórica del álgebra de relaciones—de Freyd. Para ello, se definen dos nuevos conceptos de Categoría Regular de Lawvere y _-Alegoría, en las cuales es posible interpretar un programa lógico. La ventaja fundamental que el enfoque categórico aporta es la definición de una máquina categórica que mejora e sistema de reescritura presentado en la primera parte. Gracias al uso de relaciones tabulares, la máquina modela la ejecución eficiente sin salir de un marco estrictamente formal. Utilizando la reescritura de diagramas, se define un algoritmo para el cálculo de pullbacks en Categorías Regulares de Lawvere. Los dominios de las tabulaciones aportan información sobre la utilización de memoria y variable libres, mientras que el estado compartido queda capturado por los diagramas. La especificación de la máquina induce la derivación formal de un juego de instrucciones eficiente. El marco categórico aporta otras importantes ventajas, como la posibilidad de incorporar tipos de datos algebraicos, funciones y otras extensiones a Prolog, a la vez que se conserva el carácter 100% declarativo de nuestra semántica. ABSTRACT The calculus of binary relations was introduced by De Morgan in 1860, to be greatly developed by Peirce and Schröder, as well as many others in the twentieth century. Using different formulations of relational structures, Tarski, Givant, Freyd, and Scedrov have shown how relation algebras can provide a variable-free way of formalizing first order logic, higher order logic and set theory, among other formal systems. Building on those mathematical results, we develop denotational and operational semantics for Constraint Logic Programming using relation algebra. The idea of executable semantics plays a fundamental role in this work, both as a philosophical and technical foundation. We call a semantics executable when program execution can be carried out using the regular theory and tools that define the semantic universe. Throughout this work, the use of pure algebraic reasoning is the basis of denotational and operational results, eliminating all the classical non-equational meta-theory associated to traditional semantics for Logic Programming. All algebraic reasoning, including execution, is performed in an algebraic way, to the point we could state that the denotational semantics of a CLP program is directly executable. Techniques like optimization, partial evaluation and abstract interpretation find a natural place in our algebraic models. Other properties, like correctness of the implementation or program transformation are easy to check, as they are carried out using instances of the general equational theory. In the first part of the work, we translate Constraint Logic Programs to binary relations in a modified version of the distributive relation algebras used by Tarski. Execution is carried out by a rewriting system. We prove adequacy and operational equivalence of the semantics. In the second part of the work, the relation algebraic approach is improved by using allegory theory, a categorical version of the algebra of relations developed by Freyd and Scedrov. The use of allegories lifts the semantics to typed relations, which capture the number of logical variables used by a predicate or program state in a declarative way. A logic program is interpreted in a _-allegory, which is in turn generated from a new notion of Regular Lawvere Category. As in the untyped case, program translation coincides with program interpretation. Thus, we develop a categorical machine directly from the semantics. The machine is based on relation composition, with a pullback calculation algorithm at its core. The algorithm is defined with the help of a notion of diagram rewriting. In this operational interpretation, types represent information about memory allocation and the execution mechanism is more efficient, thanks to the faithful representation of shared state by categorical projections. We finish the work by illustrating how the categorical semantics allows the incorporation into Prolog of constructs typical of Functional Programming, like abstract data types, and strict and lazy functions.
Resumo:
The purpose of this study is to set up the basis needed to develop real applications designed for the control and management of heterogeneous fleets. This paper tries to present some programming patterns which will lead to the design and development of good quality applications. The premise for this purpose should be the design of scalable, platform independent, modular and user friendly programs which require very small maintenance and if possible to give the ability to nonprogrammer users the ability to extend the application beyond their original design. To achieve it, a web design with the use of content management system following a model-view-controller architectural pattern has been purposed.
Resumo:
Irregular computations pose sorne of the most interesting and challenging problems in automatic parallelization. Irregularity appears in certain kinds of numerical problems and is pervasive in symbolic applications. Such computations often use dynamic data structures, which make heavy use of pointers. This complicates all the steps of a parallelizing compiler, from independence detection to task partitioning and placement. Starting in the mid 80s there has been significant progress in the development of parallelizing compilers for logic programming (and more recently, constraint programming) resulting in quite capable parallelizers. The typical applications of these paradigms frequently involve irregular computations, and make heavy use of dynamic data structures with pointers, since logical variables represent in practice a well-behaved form of pointers. This arguably makes the techniques used in these compilers potentially interesting. In this paper, we introduce in a tutoríal way, sorne of the problems faced by parallelizing compilers for logic and constraint programs and provide pointers to sorne of the significant progress made in the area. In particular, this work has resulted in a series of achievements in the areas of inter-procedural pointer aliasing analysis for independence detection, cost models and cost analysis, cactus-stack memory management, techniques for managing speculative and irregular computations through task granularity control and dynamic task allocation such as work-stealing schedulers), etc.
Resumo:
An antenna which has been conceived as a portable system for satellite communications based on the recommendations ITU-R S.580-6 [1] and ITU-R S.465-5 [2] for small antennas, i.e., with a diameter lower than 50 wavelengths, is introduced. It is a planar and a compact structure with a size of 40×40×2 cm. The antenna is formed by an array of 256 printed elements covering a large bandwidth (14.7%) at X-Band. The specification includes transmission (Tx) and reception (Rx) bands simultaneously. The printed antenna has a radiation pattern with a 3dB beamwidth of 5°, over a 31dBi gain, and a dual and an interchangeable circular polarization
Resumo:
La Guadua (Guadua angustifolia Kunth) es una de las especies forestales más características de Colombia. Perteneciente a la familia del bambú, ésta planta nativa de Colombia usada en la construcción permite una reducción de costos, garantizados, entre otras ventajas, por sus propiedades físico-mecánicas de flexibilidad, resistencia, dureza, efecto climatizado y sismo resistencia. En el proyecto se plantea inicialmente un estudio de la Guadua como material estructural. Se estudiará su anatomía, sus propiedades físicas y mecánicas así como la normativa existente que rige su uso en construcción y por último se darán algunos ejemplos en los que se puede comprobar su uso en la actualidad. Posteriormente se procederá al desarrollo del proyecto cuya finalidad es el diseño de una estructura modular multifuncional que se necesita para llevarla a cabo en un proyecto de cooperación localizado en Neiva (Colombia). El proyecto incluirá todos los documentos necesarios para un trabajo de estas características: memoria, pliego de condiciones técnicas, presupuesto, planos, así como el Estudio de Seguridad y Salud Laboral. Como solución a las necesidades planteadas en el proyecto de cooperación, se realizará el diseño de dos estructuras modulares cuya finalidad sea las de uso como oficina y como almacén. Se aplicará para su cálculo el CTE cómo normativa de construcción, pero apoyándose en algunos parámetros en la NSR-10, estableciendo una comparativa posterior entre ambas normativas. Debido a la importancia de la acción sísmica en Colombia se comprobará la resistencia sísmica del módulo diseñado según el “Manual de Construcción, evaluación y rehabilitación sismo resistente de viviendas de mampostería” creado por la Asociación Colombiana de Ingeniería Sísmica. Basándose en este manual se definirán los tipos de uniones más favorables sísmicamente de los módulos con el diseño de una cercha auxiliar necesaria según el tipo de unión. ABSTRACT PROJECT: Structural applications of the guadua (Guadua angustifolia Kunth). Project of modular multifunctional structure in Colombia Guadua (Guadua angustifolia Kunth) is one of the forest species more characteristics of Colombia. Pertaining to the family of the bamboo, this one native plant of Colombia used in the construction allows a reduction of costs, guaranteed, among others advantages, by its physic mechanical properties of flexibility, resistance, hardness, climatic effect and earthquake resistance. The project initially considers a study of the Guadua as structural material. We will study its anatomy, its physical and mechanical properties as well as the existing norm that governs its use in construction and finally some examples will be provided in which its actual use can be verified. Later on, we will proceed with the development of the project which purpose is the design of a multifunctional modular structure required to in a project of cooperation located in Neiva (Colombia). The project will include all the necessary documents for a work of these characteristics: memory, technical specifications, budget, drawings, as well as the Security and Labor Health Study. In order to satisfy the needs raised in the cooperation project, we will undertake the design of two modular structures with the purpose to be used as office and warehouse. The construction normative CTE will be applied for its calculation, but some parameters will be based in the NSR-10, establishing a comparison between both norms. Due to the importance of the seismic action in Colombia, the seismic resistance of the module will be verified according to the “Manual of Construction, evaluation and rehabilitation resistant earthquake of rubblework houses” created by the Colombian Association of Seismic Engineering,. We will also use this Manual to define the types of unions more favorable from seismic point of view, designing the required auxiliary segments according to the type of union.
Resumo:
Compilation techniques such as those portrayed by the Warren Abstract Machine(WAM) have greatly improved the speed of execution of logic programs. The research presented herein is geared towards providing additional performance to logic programs through the use of parallelism, while preserving the conventional semantics of logic languages. Two áreas to which special attention is given are the preservation of sequential performance and storage efficiency, and the use of low overhead mechanisms for controlling parallel execution. Accordingly, the techniques used for supporting parallelism are efficient extensions of those which have brought high inferencing speeds to sequential implementations. At a lower level, special attention is also given to design and simulation detail and to the architectural implications of the execution model behavior. This paper offers an overview of the basic concepts and techniques used in the parallel design, simulation tools used, and some of the results obtained to date.
Resumo:
We report on a detailed study of the application and effectiveness of program analysis based on abstract interpretation to automatic program parallelization. We study the case of parallelizing logic programs using the notion of strict independence. We first propose and prove correct a methodology for the application in the parallelization task of the information inferred by abstract interpretation, using a parametric domain. The methodology is generic in the sense of allowing the use of different analysis domains. A number of well-known approximation domains are then studied and the transformation into the parametric domain defined. The transformation directly illustrates the relevance and applicability of each abstract domain for the application. Both local and global analyzers are then built using these domains and embedded in a complete parallelizing compiler. Then, the performance of the domains in this context is assessed through a number of experiments. A comparatively wide range of aspects is studied, from the resources needed by the analyzers in terms of time and memory to the actual benefits obtained from the information inferred. Such benefits are evaluated both in terms of the characteristics of the parallelized code and of the actual speedups obtained from it. The results show that data flow analysis plays an important role in achieving efficient parallelizations, and that the cost of such analysis can be reasonable even for quite sophisticated abstract domains. Furthermore, the results also offer significant insight into the characteristics of the domains, the demands of the application, and the trade-offs involved.
Resumo:
We address the problem of developing mechanisms for easily implementing modular extensions to modular (logic) languages. By(language) extensions we refer to different groups of syntactic definitions and translation rules that extend a language. Our use of the concept of modularity in this context is twofold. We would like these extensions to be modular, in the sense above, i.e., we should be able to develop different extensions mostly separately. At the same time, the sources and targets for the extensions are modular languages, i.e., such extensions may take as input sepárate pieces of code and also produce sepárate pieces of code. Dealing with this double requirement involves interesting challenges to ensure that modularity is not broken: first, combinations of extensions (as if they were a single extensión) must be given a precise meaning. Also, the sepárate translation of múltiple sources (as if they were a single source) must be feasible. We present a detailed description of a code expansion-based framework that proposes novel solutions for these problems. We argüe that the approach, while implemented for Ciao, can be adapted for other Prolog-based systems and languages.
Resumo:
We discuss from a practical point of view a number of ssues involved in writing distributed Internet and WWW applications using LP/CLP systems. We describe PiLLoW, a publicdomain Internet and WWW programming library for LP/CLP systems that we have designed in order to simplify the process of writing such applications. PiLLoW provides facilities for accessing documents and code on the WWW; parsing, manipulating and generating HTML and XML structured documents and data; producing HTML forms; writing form handlers and CGI-scripts; and processing HTML/XML templates. An important contribution of PÍ'LLOW is to model HTML/XML code (and, thus, the content of WWW pages) as terms. The PÍ'LLOW library has been developed in the context of the Ciao Prolog system, but it has been adapted to a number of popular LP/CLP systems, supporting most of its functionality. We also describe the use of concurrency and a highlevel model of client-server interaction, Ciao Prolog's active modules, in the context of WWW programming. We propose a solution for client-side downloading and execution of Prolog code, using generic browsers. Finally, we also provide an overview of related work on the topic.
Resumo:
We propose a number of challenges for future constraint programming systems, including improvements in implementation technology (using global analysis based optimization and parallelism), debugging facilities, and the extensión of the application domain to distributed, global programming. We also briefly discuss how we are exploring techniques to meet these challenges in the context of the development of the CIAO constraint logic programming system.
Resumo:
An abstract is not available.