1,632 research outputs found

    A generic framework for context-sensitive analysis of modular programs

    Get PDF
    Context-sensitive analysis provides information which is potentially more accurate than that provided by context-free analysis. Such information can then be applied in order to validate/debug the program and/or to specialize the program obtaining important improvements. Unfortunately, context-sensitive analysis of modular programs poses important theoretical and practical problems. One solution, used in several proposals, is to resort to context-free analysis. Other proposals do address context-sensitive analysis, but are only applicable when the description domain used satisfies rather restrictive properties. In this paper, we argĆ¼e that a general framework for context-sensitive analysis of modular programs, Le., one that allows using all the domains which have proved useful in practice in the non-modular setting, is indeed feasible and very useful. Driven by our experience in the design and implementation of analysis and specialization techniques in the context of CiaoPP, the Ciao system preprocessor, in this paper we discuss a number of design goals for context-sensitive analysis of modular programs as well as the problems which arise in trying to meet these goals. We also provide a high-level description of a framework for analysis of modular programs which does substantially meet these objectives. This framework is generic in that it can be instantiated in different ways in order to adapt to different contexts. Finally, the behavior of the different instantiations w.r.t. the design goals that motivate our work is also discussed

    A Whole-cell Model to Simulate Mercuric Ion Reduction by E. coli under Stationary and Perturbed Conditions

    Get PDF
    Gram-negative bacteria display mercury resistance conferred by the plasmid encoded mer operon. A genetic regulatory circuit (GRC), inducible by the presence of mercury compounds in the environment, allows controlling the expression of at least 6-7 mer genes producing enzymes responsible for the mercuric ions transport and reduction. In spite of extensive studies on bacterial toxic metal resistance, few and rather unstructured kinetic models have been proposed to characterize the process dynamics. This paper aims at proposing an extended dynamic model, of modular construction, to reproduce the characteristics of GRC controlling the mercury uptake and reduction process. The illustrated case study uses experimental data from literature collected on cultures of E. coli cells cloned with the plasmid R100 to increase the source of mer operon. The available information is used to fit the model parameters and to adjust the GRC properties. The pathway includes seven regulatory modules placed in an E. coli growing cell on which response to external perturbations is studied. The model, accounting for the variable cell volume under isotonic conditions, can reproduce the GRC dynamic control in connection with the cell content replication, and various cell behaviours such as mer gene expression amplification at low levels of external stimuli, or cell content ā€˜ballastā€™ effect when coping with stationary or dynamic perturbations

    Offline Specialisation in Prolog Using a Hand-Written Compiler Generator

    No full text
    The so called "cogen approach" to program specialisation, writing a compiler generator instead of a specialiser, has been used with considerable success in partial evaluation of both functional and imperative languages. This paper demonstrates that the "cogen" approach is also applicable to the specialisation of logic programs (called partial deduction when applied to pure logic programs) and leads to effective specialisers. Moreover, using good binding-time annotations, the speed-ups of the specialised programs are comparable to the speed-ups obtained with online specialisers. The paper first develops a generic approach to offline partial deduction and then a specific offline partial deduction method, leading to the offline system LIX for pure logic programs. While this is a usable specialiser by itself, its specialisation strategy is used to develop the "cogen" system LOGEN. Given a program, a specification of what inputs will be static, and an annotation specifying which calls should be unfolded, LOGEN generates a specialised specialiser for the program at hand. Running this specialiser with particular values for the static inputs results in the specialised program. While this requires two steps instead of one, the efficiency of the specialisation process is improved in situations where the same program is specialised multiple times. The paper also presents and evaluates an automatic binding-time analysis that is able to derive the annotations. While the derived annotations are still suboptimal compared to hand-crafted ones, they enable non-expert users to use the LOGEN system in a fully automated way Finally, LOGEN is extended so as to directly support a large part of Prolog's declarative and non-declarative features and so as to be able to perform so called mixline specialisations. In mixline specialisation some unfolding decisions depend on the outcome of tests performed at specialisation time instead of being hardwired into the specialiser

    Towards flexible goal-oriented logic programming

    Get PDF

    Fast Offline Partial Evaluation of Logic Programs

    Full text link
    One of the most important challenges in partial evaluation is the design of automatic methods for ensuring the termination of the process. In this work, we introduce sufficient conditions for the strong (i.e., independent of a computation rule) termination and quasitermination of logic programs which rely on the construction of size-change graphs. We then present a fast binding-time analysis that takes the output of the termination analysis and annotates logic programs so that partial evaluation terminates. In contrast to previous approaches, the new binding-time analysis is conceptually simpler and considerably faster, scaling to medium-sized or even large examples. Ā© 2014 Elsevier Inc. All rights reserved.This work has been partially supported by the Spanish Ministerio de Ciencia e Innovacion under grant TIN2008-06622-C03-02 and by the Generalitat Valenciana under grant PROMETEO/2011/052.Leuschel, M.; Vidal Oriola, GF. (2014). Fast Offline Partial Evaluation of Logic Programs. Information and Computation. 235:70-97. https://doi.org/10.1016/j.ic.2014.01.005S709723

    Temporal reasoning in a logic programming language with modularity

    Get PDF
    Actualmente os Sistemas de InformaĆ§Ć£o Organizacionais (SIO) lidam cada vez mais com informaĆ§Ć£o que tem dependĆŖncias temporais. Neste trabalho concebemos um ambiente de trabalho para construir e manter SIO Temporais. Este ambiente assenta sobre um linguagem lĆ³gica denominada Temporal Contextua) Logic Programming que integra modularidade com raciocĆ­nio temporal fazendo com que a utilizaĆ§Ć£o de um mĆ³dulo dependa do tempo do contexto. Esta linguagem Ć© a evoluĆ§Ć£o de uma outra, tambĆ©m introduzida nesta tese, que combina Contextua) Logic Programming com Temporal Annotated Constraint Logic Programming, na qual a modularidade e o tempo sĆ£o caracterĆ­sticas ortogonais. Ambas as linguagens sĆ£o formalmente discutidas e exemplificadas. As principais contribuiƧƵes do trabalho descrito nesta tese incluem: ā€¢ OptimizaĆ§Ć£o de Contextua) Logic Programming (CxLP) atravĆ©s de interpretaĆ§Ć£o abstracta. ā€¢ Sintaxe e semĆ¢ntica operacional para uma linguagem que combina de um modo independente as linguagens Temporal Annotated Constraint Logic Programming (TACLP) e CxLP. Ɖ apresentado um compilador para esta linguagem. ā€¢ Linguagem (sintaxe e semĆ¢ntica) que integra de um modo inovador modularidade (CxLP) com raciocĆ­nio temporal (TACLP). Nesta linguagem a utilizaĆ§Ć£o de um dado mĆ³dulo estĆ” dependente do tempo do contexto. Ɖ descrito um interpretador e um compilador para esta linguagem. ā€¢ Ambiente de trabalho para construir e fazer a manutenĆ§Ć£o de SIO Temporais. Assenta sobre uma especificaĆ§Ć£o revista da linguagem ISCO, adicionando classes e manipulaĆ§Ć£o de dados temporais. Ɖ fornecido um compilador em que a linguagem resultante Ć© a descrita no item anterior. ABSTRACT- Current Organisational Information Systems (OIS) deal with more and more Infor-mation that, is time dependent. In this work we provide a framework to construct and maintain Temporal OIS. This framework builds upon a logical language called Temporal Contextual. Logic Programming that deeply integrates modularity with tem-poral reasoning making the usage of a module time dependent. This language is an evolution of another one, also introduced in this thesis, that combines Contextual Logic Programming with Temporal Annotated Constraint Logic Programming where modularity and time are orthogonal features. Both languages are formally discussed and illustrated. The main contributions of the work described in this thesis include: ā€¢ Optimisation of Contextual Logic Programming (CxLP) through abstract interpretation. ā€¢ Syntax and operational semantics for an independent combination of the temporal framework Temporal Annotated Constraint Logic Programming (TACLP) and CxLP. A compiler for this language is also provided. ā€¢ Language (syntax and semantics) that integrates in a innovative way modularity (CxLP) with temporal reasoning (TACLP). In this language the usage of a given module depends of the time of the context. An interpreter and a compiler for this language are described. ā€¢ Framework to construct and maintain Temporal Organisational Information Systems. It builds upon a revised specification of the language ISCO, adding temporal classes and temporal data manipulation. A compiler targeting the language presented in the previous item is also given
    • ā€¦
    corecore