20 research outputs found

    Concurrent constraint programming with process mobility

    Get PDF
    We propose an extension of concurrent constraint programming with primitives for process migration within a hierarchical network, and we study its semantics. To this purpose, we first investigate a "pure " paradigm for process migration, namely a paradigm where the only actions are those dealing with transmissions of processes. Our goal is to give a structural definition of the semantics of migration; namely, we want to describe the behaviour of the system, during the transmission of a process, in terms of the behaviour of the components. We achieve this goal by using a labeled transition system where the effects of sending a process, and requesting a process, are modeled by symmetric rules (similar to handshaking-rules for synchronous communication) between the two partner nodes in the network. Next, we extend our paradigm with the primitives of concurrent constraint programming, and we show how to enrich the semantics to cope with the notions of environment and constraint store. Finally, we show how the operational semantics can be used to define an interpreter for the basic calculus.

    A simple approach to distributed objects in prolog

    Full text link
    We present the design of a distributed object system for Prolog, based on adding remote execution and distribution capabilities to a previously existing object system. Remote execution brings RPC into a Prolog system, and its semantics is easy to express in terms of well-known Prolog builtins. The final distributed object design features state mobility and user-transparent network behavior. We sketch an implementation which provides distributed garbage collection and some degree of tolerance to network failures. We provide a preliminary study of the overhead of the communication mechanism for some test cases

    Calebe: uma máquina virtual paralela com suporte a linguagens multiparadigma

    Get PDF
    Linguagens Multiparadigma têm sido estudadas como plataforma alternativa para o desenvolvimento de software, com a proposta de unir vantagens e solucionar deficiências encontradas em cada um dos paradigmas básicos de programação. Um dos problemas encontrados no seu desenvolvimento é estabelecer uma semântica que permita a unificação dos paradigmas. Uma abordagem é a utilização de construções com semântica em cada um dos paradigmas unificados, e mecanismos de integração. Outra abordagem é a utilização de uma unidade única de abstração, que suporte o estilo de programação de cada paradigma. A máquina virtual Calebe é baseada numa proposta que busca unir as vantagens de ambas as técnicas de implementação de linguagens. Para isto, possui um conjunto de operadores rico o bastante para prover modos diferenciados de computação, e integração entre esses modos numa base semântica comum. Além disso, existe suporte para concorrência e distribuição. A máquina virtual Calebe foi pensada como um middleware - um sistema intermediário entre a linguagem multiparadigma e o sistema distribuído onde esta é executada. Assim, pode-se escrever um compilador da linguagem multiparadigma para Calebe, a qual terá a mesma semântica em qualquer sistema, com a vantagem de que o ambiente da máquina virtual Calebe e seus operadores foram projetados para permitir a execução paralela, e o compartilhamento de recursos.I Workshop de Procesamiento Distribuido y Paralelo (WPDP)Red de Universidades con Carreras en Informática (RedUNCI

    Calebe: uma máquina virtual paralela com suporte a linguagens multiparadigma

    Get PDF
    Linguagens Multiparadigma têm sido estudadas como plataforma alternativa para o desenvolvimento de software, com a proposta de unir vantagens e solucionar deficiências encontradas em cada um dos paradigmas básicos de programação. Um dos problemas encontrados no seu desenvolvimento é estabelecer uma semântica que permita a unificação dos paradigmas. Uma abordagem é a utilização de construções com semântica em cada um dos paradigmas unificados, e mecanismos de integração. Outra abordagem é a utilização de uma unidade única de abstração, que suporte o estilo de programação de cada paradigma. A máquina virtual Calebe é baseada numa proposta que busca unir as vantagens de ambas as técnicas de implementação de linguagens. Para isto, possui um conjunto de operadores rico o bastante para prover modos diferenciados de computação, e integração entre esses modos numa base semântica comum. Além disso, existe suporte para concorrência e distribuição. A máquina virtual Calebe foi pensada como um middleware - um sistema intermediário entre a linguagem multiparadigma e o sistema distribuído onde esta é executada. Assim, pode-se escrever um compilador da linguagem multiparadigma para Calebe, a qual terá a mesma semântica em qualquer sistema, com a vantagem de que o ambiente da máquina virtual Calebe e seus operadores foram projetados para permitir a execução paralela, e o compartilhamento de recursos.I Workshop de Procesamiento Distribuido y Paralelo (WPDP)Red de Universidades con Carreras en Informática (RedUNCI

    Introduction to the Literature On Programming Language Design

    Get PDF
    This is an introduction to the literature on programming language design and related topics. It is intended to cite the most important work, and to provide a place for students to start a literature search

    Oz/K: A Kernel Language for Component-Based Open Programming

    Get PDF
    International audienceProgramming in an open environment remains challenging because it requires combining modularity, security, concurrency, distribution, and dynamicity. In this paper, we propose an approach to open distributed programming that exploits the notion of locality, which has been used in the past decade as a basis for several distributed process calculi such as Mobile Ambients, DÏ€, and Seal. We use the locality concept as a form of component that serves as a unit of modularity, of isolation, and of passivation. Specifically, we introduce in this paper OZ/K, a kernel programming language, that adds to the OZ computation model a notion of locality borrowed from the Kell calculus. We present an operational semantics for the language and several examples to illustrate how OZ/K supports open distributed programming

    Reconnaissance de documents assistée: architecture logicielle et intégration de savoir-faire

    Get PDF
    Cette thèse aborde la reconnaissance de documents suivant une approche assistée, qui vise à exploiter au mieux les compétences respectives de l’homme et de la machine. Nos contributions portent notamment sur les questions d’architecture logicielle soulevées par la mise en oeuvre de systèmes de reconnaissance de documents. Les avantages d’un environnement coopératif sont motivés par une analyse critique des systèmes actuels, et une projection sur les futures applications de la reconnaissance de documents. Diverses propositions concrètes sont émises sur la conduite du dialogue homme-machine, ainsi que sur les possibilités d’amélioration à l’usage. L’inventaire des données à gérer dans un système de reconnaissance est organisé de façon modulaire et homogène, et représenté à l’aide du format standard DAFS Sur le plan du contrôle, le système est décomposé selon une modélisation multi-agents. Cette découpe conceptuelle est alors simulée dans notre plateforme de développement, qui repose sur la programmation concurrente, distribuée, et multi-langages. Une solution expressive est proposée pour le couplage entre le noyau de l’application et l’interface graphique. Le prototype qui a servi à valider l’architecture est présenté. Notre architecture logicielle encourage l’exploitation du savoir-faire typographique, par l’intermédiaire d’un support de fontes standardisé. Ce rapprochement entre les deux disciplines profite à la fois à l’ergonomie, à la valorisation des résultats de reconnaissance, et aux méthodes d’analyse automatiques. Nous présentons une poignée d’analyseurs originaux, pour des tâches de reconnaissance de caractères, d’identification des fontes, ou de segmentation. Les expériences conduites en guise de première évaluation démontrent l’utilité potentielle de nos outils d’analyse. Par ailleurs, une contribution est apportée au problème de l’évaluation des performances de systèmes de reconnaissance assistée, avec l’introduction d’un nouveau modèle de coûts. Celui-ci intègre l’influence du comportement de l’utilisateur, de même que l’amélioration des performances liée au phénomène d’apprentissage incrémental. Notre modèle de coûts est utilisé dans des simulations, ainsi que dans des expériences mettant en jeu des analyseurs existants. Les observations mettent en évidence la dynamique particulière des systèmes assistés par rapport aux approches entièrement automatiques.This thesis addresses the question of document recognition with an assisted perspective advocating an adequate combination between human and machine capabilities. Our contributions tackle various aspects of the underlying software architecture. Both a study of existing systems and a projection on some future applications of document recognition illustrate the need of cooperative environments. Several mechanisms are proposed to drive the human-machine dialog or to make the recognition systems able to improve with use. The various data involved in a recognition system are organized in a modular and homogeneous way. The whole information is represented using the DAFS standard format. In our proposition, the control is decentralized according to a multi-agent modelling. This conceptual scheme is then simulated on our development platform, using concurrent, distributed, and multi-languages programming. An expressive solution is proposed for the coupling between the application kernel and a graphical user interface. A prototype is realized to validate the whole architecture. Our software architecture takes advantage of the typographical know-how, through the use of a standardized font management support. This integrated approach lets us enhance the ergonomy, extend the possible use of the recognition results, and redefine some recognition techniques. A few innovative analyzers are described in the field of optical character recognition, font identification, or segmentation. The first experiments show that our simple methods behave surprisingly well, with respect to what can be expected from the state of the art. Besides, we bring a contribution to the problem of measuring the performance of cooperative recognition systems, through the introduction of a new cost model. Our notations are able to describe assisted recognition scenarios, where the user takes part in the process, and where the accuracy is modified dynamically thanks to incremental learning. Our cost model is used both in simulations and in experiments implying existing analyzers. The dynamic aspects of assisted systems can then be observed

    Spray: programming with a persistent distributed heap

    Get PDF
    We introduce a programming paradigm for distributed applications based on a persistent distributed heap. A proof-of-concept implementation is provided as a Javascript library, together with several examples that embody popular patterns for web applications
    corecore