3,731 research outputs found

    WWW Programming using computational logic systems (and the PiLLoW/Ciao library)

    Get PDF
    We discuss from a practical point of view a number of issues involved in writing Internet and WWW applications using LP/CLP systems. We describe Pd_l_oW, a public-domain Internet and WWW programming library for LP/CLP systems which we argüe significantly simplifies the process of writing such applications. Pd_l_oW provides facilities for generating HTML structured documents, producing HTML forms, writing form handlers, accessing and parsing WWW documents, and accessing code posted at HTTP addresses. We also describe the architecture of some application classes, using a high-level model of client-server interaction, active modules. We then propose an architecture for automatic LP/CLP code downloading for local execution, using generic browsers. Finally, we also provide an overview of related work on the topic. The PiLLoW library has been developed in the context of the &- Prolog and CIAO systems, but it has been adapted to a number of popular LP/CLP systems, supporting most of its functionality

    A new module system for prolog

    Get PDF
    It is now widely accepted that separating programs into modules has proven very useful in program development and maintenance. While many Prolog implementations include useful module systems, we feel that these systems can be improved in a number of ways, such as, for example, being more amenable to effective global analysis and allowing sepárate compilation or sensible creation of standalone executables. We discuss a number of issues related to the design of such an improved module system for Prolog. Based on this, we present the choices made in the Ciao module system, which has been designed to meet a number of objectives: allowing sepárate compilation, extensibility in features and in syntax, amenability to modular global analysis, etc

    Implementing distributed concurrent constraint execution in the CIAO system

    Full text link
    This paper describes the current prototype of the distributed CIAO system. It introduces the concepts of "teams" and "active modules" (or active objects), which conveniently encapsulate different types of functionalities desirable from a distributed system, from parallelism for achieving speedup to client-server applications. The user primitives available are presented and their implementation described. This implementation uses attributed variables and, as an example of a communication abstraction, a blackboard that follows the Linda model. Finally, the CIAO WWW interface is also briefly described. The unctionalities of the system are illustrated through examples, using the implemented primitives

    The ciao modular, standalone compiler and its generic program processing library

    Get PDF
    Ciao Prolog incorporates a module system which allows sepárate compilation and sensible creation of standalone executables. We describe some of the main aspects of the Ciao modular compiler, ciaoc, which takes advantage of the characteristics of the Ciao Prolog module system to automatically perform sepárate and incremental compilation and efficiently build small, standalone executables with competitive run-time performance, ciaoc can also detect statically a larger number of programming errors. We also present a generic code processing library for handling modular programs, which provides an important part of the functionality of ciaoc. This library allows the development of program analysis and transformation tools in a way that is to some extent orthogonal to the details of module system design, and has been used in the implementation of ciaoc and other Ciao system tools. We also describe the different types of executables which can be generated by the Ciao compiler, which offer different tradeoffs between executable size, startup time, and portability, depending, among other factors, on the linking regime used (static, dynamic, lazy, etc.). Finally, we provide experimental data which illustrate these tradeoffs

    The response of Mediterranean coralligenous assemblages to climate change: an integrated, long-term view from species and populations to the ecosystem level

    Get PDF
    [eng] Climate change has emerged as one of the greatest and most pervasive threats that our natural heritage will have to face in the coming decades. Together with other anthropogenic pressures such as pollution, overfishing or habitat degradation, climate change is causing enormous impacts on oceans, affecting all kind of marine communities and driving major losses to biodiversity. In this framework of global change, the Mediterranean Sea, which has been identified as one of the major hotspots of marine biodiversity, has also become a hotspot of climate change. Consequently, some of its most emblematic and ecologically important communities are now under threat. This is the case of the coralligenous assemblages, which are temperate benthic communities which stand out for their great structural complexity and exceptional biodiversity (they harbour approximately 10% of Mediterranean species). Most of the constituent species of these communities exhibit high longevity and slow population dynamics. Consequently, they are especially vulnerable to disturbances that increase adults mortality. In fact, thermal anomalies linked to ocean warming have impacted the coralligenous assemblages in several ways during last decades, triggering changes that go from the observed mass mortalities of benthic organisms to potential changes at the community and ecosystem levels. However, despite the increasing interest of the scientific community to conserve the coralligenous, how these benthic communities are responding to climate change at the community level is poorly understood. In this thesis, we have taken this leap by integrating responses from species to the ecosystem level, through populations and communities. In particular, we have combined field observations of ecological and environmental changes, aquaria experiments, ecological theory, and cutting-edge quantitative research to improve our understanding of the bio-ecological consequences of ocean warming for Mediterranean coralligenous assemblages. In the first three chapters, we gathered field and experimental data on sensitivity of several coralligenous species and populations to marine heatwaves (MHWs) by conducting a literature review on previous mass mortality events occurred in the Mediterranean and by carrying out scaled-up thermotolerance experiments. The results of Chapter 1 revealed contrasting patterns of sensitivity to MHWs among different coralligenous species and populations. The posterior multi-specific thermotolerance experiment (including corals, sponges and tunicates) conducted in Chapter 2 confirmed the high response diversity to warming among co-occurring species observed in the field. These results demonstrate that co-occurring species that are taxonomically and morpho- functionally similar can have contrasting thermotolerances. Moreover, the observed patterns suggest that coralligenous assemblages could have certain degree of insurance against MHWs, since the decline of sensitive species could potentially be compensated by other functionally similar species that are more resistant. The results of the multi- population thermal experiment conducted in Chapter 3 with 12 populations of the red gorgonian Paramuricea clavata (Risso, 1826) revealed that this species, which has a key habitat-forming role in coralligenous assemblages, is highly sensitive to thermal stress across its distributional range. Moreover, we found little local adaptation to average thermal regime and little acclimatization to local above-average warm temperatures prior to the experiment. These findings, which were obtained at a spatial scale never addressed before (> 2000 km) for P. clavata, question the adaptive potential of this species to climate change. In Chapter 4, we further explored the vulnerability of Mediterranean habitat- forming octocorals to climate change by exploring the long-term recovery capacity of Corallium rubrum (Linnaeus, 1758) and P. clavata from recurrent MHWs. We explored the long-term trajectories (15 years) of different populations that were firstly impacted by the 2003-MHW in terms of changes in biomass, density and size structure. We found that all impacted populations have followed collapse trajectories. These results further highlight the high vulnerability of these species to the ongoing climate change. Finally, we took the leap from species and populations to the community and ecosystem levels in Chapter 5, to explore if MHWs have driven changes in the functional community structure of coralligenous assemblages, which could imply changes for ecosystem functioning. Specifically, we conducted a multi-taxa, trait-based analysis and found that MHW are shifting the functional identity of coralligenous assemblages (i.e., dominant functional traits). Interestingly, the observed changes were driven primarily by the decline of a single functional group (habitat-forming octocorals), whose species are functionally unique. Consequently, by severely affecting habitat-forming octocorals, MHWs are leading to assemblages that are deficient in key functional traits, likely causing changes in ecosystem functioning. Overall, this thesis provides an integrated, long-term view of the interconnected responses to ocean warming found in coralligenous assemblages. The combined results of this thesis suggest that despite structural changes induced by climate change, most ecosystem functions count on certain degree of insurance against MHWs. However, some essential functions (e.g., 3D-habitat provision) could be highly compromised or even totally disappear, threatening the overall assemblage stability. Given the current climate change trends, identifying and preserving the mechanisms that maintain essential ecosystem functions and the overall ecosystem stability is critical. In this thesis, we have identified the general loss of arborescent octocorals as the greatest disruptive process for coralligenous assemblages. Therefore, the future trajectories of these emblematic Mediterranean communities will greatly depend on the design and implementation of measures that favour the conservation and adaptive management of these key habitat-forming species in the face of climate change

    Distributed www programming using (Ciao-) prolog and the pillow library

    Get PDF
    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

    Towards extracting non-strict independent and-parallelism using sharing and freeness information

    Get PDF
    Logic programming systems which exploit and-parallelism among non-deterministic goals rely on notions of independence among those goals in order to ensure certain efficiency properties. "Non-strict" independence (NSI) is a more relaxed notion than the traditional notion of "strict" independence (SI) which still ensures the relevant efficiency properties and can allow considerable more parallelism than SI. However, all compilation technology developed to date has been based on SI, presumably because of the intrinsic complexity of exploiting NSI. This is related to the fact that NSI cannot be determined "a priori" as SI. This paper fills this gap by developing a technique for compile-time detection and annotation of NSI. It also proposes algorithms for combined compile- time/run-time detection, presenting novel run-time checks for this type of parallelism. Also, a transformation procedure to eliminate shared variables among parallel goals is presented, attempting to perform as much work as possible at compiletime. The approach is based on the knowledge of certain properties about run-time instantiations of program variables —sharing and freeness— for which compile-time technology is available, with new approaches being currently proposed

    html.pl: A simple HTML package for Prolog and CLP systems

    Get PDF
    We describe a simple, public domain, HTML package for LP/CLP systems. The package allows generating HTML documents easily from LP/CLP systems, including HTML forms. It also provides facilities for parsing the input provided by HTML forms, as well as for creating standalone form handlers. The purpose of this document is to serve as a user's manual as well as a short description of the capabilities of the package. The package was originally developed for SICStus Prolog and the UPM &-Prolog/CIAO systems, but has been adapted to a number of popular LP/CLP systems. The document is also a WWW/HTML primer, containing sufficient information for developing medium complexity WWW applications in Prolog and other LP and CLP languages

    The ciao module system: A new module system for prolog

    Get PDF
    Ciao Prolog incorporates a module system which allows sepárate compilation and sensible creation of standalone executables. We describe some of the main aspects of the Ciao modular compiler, ciaoc, which takes advantage of the characteristics of the Ciao Prolog module system to automatically perform sepárate and incremental compilation and efficiently build small, standalone executables with competitive run-time performance, ciaoc can also detect statically a larger number of programming errors. We also present a generic code processing library for handling modular programs, which provides an important part of the functionality of ciaoc. This library allows the development of program analysis and transformation tools in a way that is to some extent orthogonal to the details of module system design, and has been used in the implementation of ciaoc and other Ciao system tools. We also describe the different types of executables which can be generated by the Ciao compiler, which offer different tradeoffs between executable size, startup time, and portability, depending, among other factors, on the linking regime used (static, dynamic, lazy, etc.). Finally, we provide experimental data which illustrate these tradeoffs

    Extracting non-strict independent and-parallelism using sharing and freeness information

    Get PDF
    Logic programming systems which exploit and-parallelism among non-deterministic goals rely on notions of independence among those goals in order to ensure certain efficiency properties. "Non-strict" independence (NSI) is a more relaxed notion than the traditional notion of "strict" independence (SI) which still ensures the relevant efficiency properties and can allow considerable more parallelism than SI. However, all compilation technology developed to date has been based on SI, because of the intrinsic complexity of exploiting NSI. This is related to the fact that NSI cannot be determined "a priori" as SI. This paper filis this gap by developing a technique for compile-time detection and annotation of NSI. It also proposes algorithms for combined compiletime/ run-time detection, presenting novel run-time checks for this type of parallelism. Also, a transformation procedure to eliminate shared variables among parallel goals is presented, aimed at performing as much work as possible at compile-time. The approach is based on the knowledge of certain properties regarding the run-time instantiations of program variables —sharing and freeness— for which compile-time technology is available, with new approaches being currently proposed. Thus, the paper does not deal with the analysis itself, but rather with how the analysis results can be used to parallelize programs
    corecore