8 research outputs found

    The Oz programming model

    Get PDF
    The Oz Programming Model (OPM) is a concurrent programming model subsuming higher-order functional and object-oriented programming as facets of a general model. This is particularly interesting for concurrent object-oriented programming, for which no comprehensive formal model existed until now. The model can be extended so that it can express encapsulated problem solvers generalizing the problem solving capabilities of constraint logic programming. OPM has been developed together with a concomitant programming language Oz, which is designed for applications that require complex symbolic computations, organization into multiple agents, and soft real-time control. An efficient, robust, and interactive implementation of Oz is freely available

    Set Constraints and Logic Programming

    Get PDF
    AbstractSet constraints are inclusion relations between expressions denoting sets of ground terms over a ranked alphabet. They are the main ingredient in set-based program analysis. In this paper we describe a constraint logic programming languageclp(sc) over set constraints in the style of J. Jaffar and J.-L. Lassez (1987, “Proc. Symp. Principles of Programming Languages 1987,” pp. 111–119). The language subsumes ordinary logic programs over an Herbrand domain. We give an efficient unification algorithm and operational, declarative, and fixpoint semantics. We show how the language can be applied in set-based program analysis by deriving explicitly the monadic approximation of the collecting semantics of N. Heintze and J. Jaffar (1992, “Set Based Program Analysis”; 1990, “Proc. 17th Symp. Principles of Programming Languages,” pp. 197–209)

    Calculs avec Motifs Dynamiques

    Get PDF
    Pattern matching mechanisms of usual functional programming languages can be enriched by two new kinds of polymorphisms (called path polymorphism and pattern polymorphism) as it is done in the Pure Pattern Calculus (PPC) of B. Jay and D. Kesner. This report contributes to the implementation of this framework by a study of some reduction strategies. Lazy evaluation in particular requires some insight in the patching mechanism itself, and motivates the construction of the Explicit Pattern Calculus (EPC) : a variant of PPC with an explicit pattern matching mechanism. The confluence of EPC as well as simulation theorems linking PPC and EPC are proven

    Nominal disunification

    Get PDF
    Dissertação (mestrado)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Matemática, 2019.Propõe-se uma extensão para problemas de disunificação de primeira-ordem adicionando suporte a operadores de ligação de acordo com a abordagem nominal. Nesta abordagem, abstração é implementada usando átomos nominais ao invés de variáveis de ligação como na representação clássica de termos e renomeamento de átomos é implementado por permutações. Em lógica nominal problemas de unificação consistem de perguntas equacionais da forma s ≈α ? t (lê-se: s é α-equivalente a t?) consideradas sobre problemas de freshness da forma a# ? t (lê-se: a é fresco em t?) que restringem soluções proibindo ocorrências livres de átomos na instanciação de variáveis. Além dessas questões equacionais e freshness, problemas de disunificação nominal incluem restrições na forma de disequações s ̸≈α ? t (lê-se: s é αdiferente de t?) com soluções dadas por pares consistindo de uma substituição σ e um conjunto de restrições de freshness na forma a#X tal que sobre estas restrições a σ-instanciação de equações, disequações, e problemas de freshness são válidas. Mostra-se, reutilizando noções de unificação nominal, como decidir se dois termos nominais podem ser feitos diferentes módulo α-equivalência. Isso é feito extendendo resultados anteriores sobre disunificação de primeira ordem e definindo a noção de soluções com exceção na linguagem nominal. Uma discussão sobre a semântica de restrições em forma de disequações também é apresentada.Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq).An extension of first-order disunification problems is proposed by taking into account binding operators according to the nominal approach. In this approach, bindings are implemented through nominal atoms used instead of binding variables and renaming of atoms are implemented by atom permutations. In the nominal setting, unification problems consist of equational questions of the form s ≈α ? t (read: is s α-equivalent to t?) considered under freshness problems a# ? t (read: is a fresh for t?) that restrict solutions by forbidding free occurrences of atoms in the instantiations of variables. In addition to equational and freshness problems, nominal disunification problems also include nominal disunification constraints in the form of disequations s ̸≈α ? t (read: is s α-different to t?) and their solutions consist of pairs of a substitution σ and a finite set of freshness constraints in the form of a#X such that under these restrictions the σ-instantiation of the equations, disequations, and freshness problems holds. By re-using nominal unification techniques, it is shown how to decide whether two nominal terms can be made different modulo α-equivalence. This is done by extending previous results on first-order disunification and by defining the notion of solutions with exceptions in the nominal syntax. A discussion on the semantics of disunification constraints is also given

    Tree automata with constraints and tree homomorphisms

    Get PDF
    Automata are a widely used formalism in computer science as a concise representation for sets. They are interesting from a theoretical and practical point of view. This work is focused on automata that are executed on tree-like structures, and thus, define sets of trees. Moreover, we tackle automata that are enhanced with the possibility to check (dis)equality constraints, i.e., where the automata are able to test whether specific subtrees of the input tree are equal or different. Two distinct mechanisms are considered for defining which subtrees have to be compared in the evaluation of the constraints. First, in local constraints, a transition of the automaton compares subtrees pending at positions relative to the position of the input tree where the transition takes place. Second, in global constraints, the subtrees tested are selected depending on the state to which they are evaluated by the automaton during a computation. In the setting of local constraints, we introduce tree automata with height constraints between brothers. These constraints are predicates on sibling subtrees that, instead of evaluating whether the subtrees are equal or different, compare their respective heights. Such constraints allow to express natural tree sets like complete or balanced (like AVL) trees. We prove decidability of emptiness and finiteness for these automata, and also for their combination with the tree automata with (dis)equality constraints between brothers of Bogaert and Tison (1992). We also define a new class of tree automata with constraints that allows arbitrary local disequality constraints and a particular kind of local equality constraints. We prove decidability of emptiness and finiteness for this class in exponential time. As a consequence, we obtain several EXPTIME-completeness results for problems on images of regular tree sets under tree homomorphisms, like set inclusion, finiteness of set difference, and regularity (also called HOM problem). In the setting of global constraints, we study the class of tree automata with global reflexive disequality constraints. Such kind of constraints is incomparable with the original notion of global disequality constraints of Filiot et al. (2007): the latter restricts disequality tests to only compare subtrees evaluated to distinct states, whereas in our model it is possible to test that all subtrees evaluated to the same given state are pairwise different. Our tests correspond to monadic key constraints, and thus, can be used to characterize unique identifiers, a typical integrity constraint of XML schemas. We study the emptiness and finiteness problems for these automata, and obtain decision algorithms that take triple exponential time.Los autómatas son un formalismo ampliamente usado en ciencias de la computación como una representación concisa para conjuntos, siendo interesantes tanto a nivel teórico como práctico. Este trabajo se centra en autómatas que se ejecutan en estructuras arbóreas, y por tanto, definen conjuntos de árboles. En particular, tratamos autómatas que han sido extendidos con la posibilidad de comprobar restricciones de (des)igualdad, es decir, autómatas que son capaces de comprobar si ciertos subárboles del árbol de entrada son iguales o diferentes. Se consideran dos mecanismos distintos para definir qué subárboles deben ser comparados en la evaluación de las restricciones. Primero, en las restricciones locales, una transición del autómata compara subárboles que penden en posiciones relativas a la posición del árbol de entrada en que se aplica la transición. Segundo, en restricciones globales, los subárboles comparados se seleccionan dependiendo del estado al que son evaluados por el autómata durante el cómputo. En el marco de restricciones locales, introducimos los autómatas de árboles con restricciones de altura entre hermanos. Estas restricciones son predicados entre subárboles hermanos que, en lugar de evaluar si los subárboles son iguales o diferentes, comparan sus respectivas alturas. Este tipo de restricciones permiten expresar conjuntos naturales de árboles, tales como árboles completos o equilibrados (como AVL). Demostramos la decidibilidad de la vacuidad y finitud para este tipo de autómata, y también para su combinación con los autómata con restricciones de (des)igualdad entre hermanos de Bogaert y Tison (1992). También definimos una nueva clase de autómatas con restricciones que permite restricciones locales de desigualdad arbitrarias y un tipo particular de restricciones locales de igualdad. Demostramos la decidibilidad de la vacuidad y finitud para esta clase, con un algoritmo de tiempo exponencial. Como consecuencia, obtenemos varios resultados de EXPTIME-completitud para problemas en imágenes de conjuntos regulares de árboles a través de homomorfismos de árboles, tales como inclusión de conjuntos, finitud de diferencia de conjuntos, y regularidad (también conocido como el problema HOM). En el marco de restricciones globales, estudiamos la clase de autómatas de árboles con restricciones globales de desigualdad reflexiva. Este tipo de restricciones es incomparable con la noción original de restricciones globales de desigualdad de Filiot et al. (2007): éstas últimas restringen las comprobaciones de desigualdad a subárboles que se evalúen a estados distintos, mientras que en nuestro modelo es posible comprobar que todos los subárboles que se evalúen a un mismo estado dado son dos a dos distintos. Nuestras restricciones corresponden a restricciones de clave, y por tanto, pueden ser usadas para caracterizar identificadores únicos, una restricción de integridad típica de los XML Schemas. Estudiamos los problemas de vacuidad y finitud para estos autómatas, y obtenemos algoritmos de decisión con coste temporal triplemente exponencial.Postprint (published version

    A generic, collaborative framework for internal constraint solving

    Get PDF
    Esta tesis propone un esquema genérico y cooperativo para CLP(Interval(X)) donde X es cualquier dominio de computación con estructura de retículo. El esquema, que está basado en la teoría de retículos, es un enfoque general para la satisfacción y op-timización de restricciones de intervalo así como para la cooperación de resolutores de intervalo definidos sobre dominios de computación con estructura de retículos, independientemente de la cardinalidad de estos. Nuestra propuesta asegura un enfoque transparente sobre el cual las restricciones, los dominios de computación y los mecanismos de propagación y cooperación, definidos entre las variables restringidas, pueden ser fácilmente especificados a nivel del usuario. La parte principal de la tesis presenta una especificación formal de este esquema.Los principales resultados conseguidos en esta tesis son los siguientes:Una comparativa global de la eficiencia y algunos aspectos de la expresividad de ocho sistemas de restricciones. Esta comparativa, realizada sobre el dominio finito y el dominio Booleano, muestra diferencias principales entre los sistemas de restricciones existentes.Para formalizar el marco de satisfacción de restricciones para CLP(Interval(X))hemos descrito el proceso global de resolución de restricciones de intervalo sobre cualquier retículo, separando claramente los procesos de propagación y división (ramificación) de intervalos. Una de las ventajas de nuestra propuesta es que la monótona de las restricciones esta implícitamente definida en la teoría. Además, declaramos un conjunto de propiedades interesantes que, bajo ciertas condiciones, son satisfechas por cualquier instancia del esquema genérico. Mas aún, mostramos que muchos sistemas de restricciones actualmente existentes satisfacen estas condiciones y, además, proporcionamos indicaciones sobre como extender el sistema mediante la especificación de otras instancias interesantes y novedosas. Nuestro esquema para CLP(Interval(X)) permite la cooperación de resolutores de manera que la información puede ⁰uir entre diferentes dominios de computación.Además, es posible combinar distintas instancias del esquema: por ejemplo, instancias bien conocidas tales como CLP(Interval(<)), CLP(Interval(Integer)),CLP(Interval(Set)), CLP(Interval(Bool)), y otras novedosas que son el resultado de la generación de nuevos dominios de computación definidos por el usuario, o incluso que surgen de la combinación de dominios ya existentes como puede ser CLP(Interval(X1 £ : : : £ Xn)). Por lo tanto, X puede ser instanciado a cualquier conjunto de dominios de computación con estructura de retículo de forma que su correspondiente instancia CLP(Interval(X)) permite una amplia flexibilidad en la definición de dominios en X (probablemente definidos por el usuario) y en la interaccion entre estos dominios.Mediante la implementacion de un prototipo, demostramos que un unico sistema,que este basado en nuestro esquema para CLP(Interval(X)), puede proporcionarsoporte para la satisfaccion y la optimizacion de restricciones as como para la cooperacion de resolutores sobre un conjunto conteniendo multiples dominios decomputacion. Ademas, el sistema sigue un novedoso enfoque transparente sujeto a una doble perspectiva ya que el usuario puede definir no solo nuevas restricciones y su mecanismo de propagacion, sino tambien nuevos dominios sobre los cuales nuevas restricciones pueden ser resueltas as como el mecanismo de cooperacion entre todos los dominios de computación (ya sean definidos por el usuario o predefinidos por el sistema).En nuestra opinión, esta tesis apunta nuevas y potenciales direcciones de investigación dentro de la comunidad de las restricciones de intervalo.Para alcanzar los resultados expuestos, hemos seguido los siguientes pasos (1) la elección de un enfoque adecuado sobre el cual construir los fundamentos teóricos de nuestro esquema genérico; (2) la construcción de un marco teórico genérico (que llamaremos el marco básico) para la propagación de restricciones de intervalo sobre cualquier retículo; (3) la integración, en el marco básico, de una técnica novedosa que facilita la cooperación de resolutores y que surge de la definición, sobre múltiples dominios, de operadores de restricciones y (4) la extensión del marco resultante para la resolución y optimización completa de las restricciones de intervalo.Finalmente presentamos clp(L), un lenguaje de programación lógica de restricciones de intervalo que posibilita la resolución de restricciones sobre cualquier conjunto de retículos y que esta implementado a partir de las ideas formalizadas en el marco teórico. Describimos una primera implementación de este lenguaje y desarrollamos algunos ejemplos de como usarla. Este prototipo demuestra que nuestro esquema para CLP(Interval(X)) puede ser implementado en un sistema único que, como consecuencia, proporciona, bajo un enfoque transparente sobre dominios y restricciones, cooperación de resolutores así como satisfacción y optimización completa de restricciones sobre diferentes dominios de computación

    Foundations of Software Science and Computation Structures

    Get PDF
    This open access book constitutes the proceedings of the 24th International Conference on Foundations of Software Science and Computational Structures, FOSSACS 2021, which was held during March 27 until April 1, 2021, as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2021. The conference was planned to take place in Luxembourg and changed to an online format due to the COVID-19 pandemic. The 28 regular papers presented in this volume were carefully reviewed and selected from 88 submissions. They deal with research on theories and methods to support the analysis, integration, synthesis, transformation, and verification of programs and software systems
    corecore