4 research outputs found

    Sessions multi-parties réactives

    Get PDF
    Ensuring that communication-centric systems interact according to an intended protocol is an important but difficult problem, particularly for systems with some reactive or timed components. To rise to this challenge, we study the integration of session-based concurrency and Synchronous Reactive Programming (SRP). We propose a process calculus for multiparty sessions enriched with features from SRP. In this calculus, protocol participants may broadcast messages, suspend themselves while waiting for a message, and also react to events. Our main contribution is a session type system for this calculus, which enforces session correctness in terms of communication safety and protocol fidelity, and ensures two time-related properties that we call output persistence and input timeliness. Our type system departs significantly from existing ones, specifically as it captures the notion of logical instant typical of SRP.Assurer que les systèmes centrés sur la communication interagissent en accord avec un protocole donné est un problème important et difficile à résoudre, en particulier lorsque certains composants de ces systèmes sont réactifs ou temporisés. Pour relever ce défi, nous étudions l’intégration de primitives de la programmation réactive synchrone (PRS) dans les calculs de sessions. Nous proposons un calcul de sessions multi-parties enrichi avec des fonctionnalités typiques de la PRS. Dans ce calcul, les participants d’une session peuvent diffuser des messages, se suspendre dans l’attente de messages, et également réagir à des événements. Notre contribution principale est un système de types pour ce calcul, qui garantit deux propriétés classiques des calculs de sessions : l’absence d’erreurs de communication et la conformité au protocole. De plus, ce système de types assure deux propriétés liées au temps, que nous appelons “persistance des outputs” et “gestion sans latence des inputs”. Notre système de types se démarque de façon significative des systèmes de types de session existants, en particulier en ce qu’il rend compte de la notion d’instant logique qui est caractéristique de la PRS

    Sessions multi-parties réactives

    Get PDF
    Ensuring that communication-centric systems interact according to an intended protocol is an important but difficult problem, particularly for systems with some reactive or timed components. To rise to this challenge, we study the integration of session-based concurrency and Synchronous Reactive Programming (SRP). We propose a process calculus for multiparty sessions enriched with features from SRP. In this calculus, protocol participants may broadcast messages, suspend themselves while waiting for a message, and also react to events. Our main contribution is a session type system for this calculus, which enforces session correctness in terms of communication safety and protocol fidelity, and ensures two time-related properties that we call output persistence and input timeliness. Our type system departs significantly from existing ones, specifically as it captures the notion of logical instant typical of SRP.Assurer que les systèmes centrés sur la communication interagissent en accord avec un protocole donné est un problème important et difficile à résoudre, en particulier lorsque certains composants de ces systèmes sont réactifs ou temporisés. Pour relever ce défi, nous étudions l’intégration de primitives de la programmation réactive synchrone (PRS) dans les calculs de sessions. Nous proposons un calcul de sessions multi-parties enrichi avec des fonctionnalités typiques de la PRS. Dans ce calcul, les participants d’une session peuvent diffuser des messages, se suspendre dans l’attente de messages, et également réagir à des événements. Notre contribution principale est un système de types pour ce calcul, qui garantit deux propriétés classiques des calculs de sessions : l’absence d’erreurs de communication et la conformité au protocole. De plus, ce système de types assure deux propriétés liées au temps, que nous appelons “persistance des outputs” et “gestion sans latence des inputs”. Notre système de types se démarque de façon significative des systèmes de types de session existants, en particulier en ce qu’il rend compte de la notion d’instant logique qui est caractéristique de la PRS

    Session-based concurrency: between operational and declarative views

    Get PDF
    Communication-based software is ubiquitous nowadays. From e-banking to e-shopping, online activities often involve message exchanges between software components. These interactions are often governed by protocols that explicitly describe the sequences of communication actions that should be executed by each component. Crucially, these protocols are not isolated from a program’s context: external conditions such as timing constraints or exceptional events that occur during execution can affect message exchanges. As an additional difficulty, individual components are typically developed in different programming languages. In this setting, certifying that a program conforms to its intended protocols is challenging. A widely studied program verification technique uses behavioral type systems, which exploit abstract representations of these protocols to check that the program executes communication actions as intended. Unfortunately, the abstractions offered by behavioral type systems may neglect the influence that external conditions have on the program. This thesis addresses this issue by considering programming languages with declarative features, in which the governing conditions of the program can be adequately described. Our work develops correct translations between programming languages to show that languages with declarative features can indeed articulate a unified view of communication-based programs. Specifically, these translations demonstrate that the operational features of communication-based programs can be correctly represented by languages with declarative features. An additional contribution is a hybrid language that combines the best of both worlds, enabling the analysis of operational and declarative features in communication-based programs

    Topics in Programming Languages, a Philosophical Analysis through the case of Prolog

    Get PDF
    [EN]Programming languages seldom find proper anchorage in philosophy of logic, language and science. is more, philosophy of language seems to be restricted to natural languages and linguistics, and even philosophy of logic is rarely framed into programming languages topics. The logic programming paradigm and Prolog are, thus, the most adequate paradigm and programming language to work on this subject, combining natural language processing and linguistics, logic programming and constriction methodology on both algorithms and procedures, on an overall philosophizing declarative status. Not only this, but the dimension of the Fifth Generation Computer system related to strong Al wherein Prolog took a major role. and its historical frame in the very crucial dialectic between procedural and declarative paradigms, structuralist and empiricist biases, serves, in exemplar form, to treat straight ahead philosophy of logic, language and science in the contemporaneous age as well. In recounting Prolog's philosophical, mechanical and algorithmic harbingers, the opportunity is open to various routes. We herein shall exemplify some: - the mechanical-computational background explored by Pascal, Leibniz, Boole, Jacquard, Babbage, Konrad Zuse, until reaching to the ACE (Alan Turing) and EDVAC (von Neumann), offering the backbone in computer architecture, and the work of Turing, Church, Gödel, Kleene, von Neumann, Shannon, and others on computability, in parallel lines, throughly studied in detail, permit us to interpret ahead the evolving realm of programming languages. The proper line from lambda-calculus, to the Algol-family, the declarative and procedural split with the C language and Prolog, and the ensuing branching and programming languages explosion and further delimitation, are thereupon inspected as to relate them with the proper syntax, semantics and philosophical élan of logic programming and Prolog
    corecore