9 research outputs found

    Towards a GPU-based implementation of interaction nets

    Full text link
    We present ingpu, a GPU-based evaluator for interaction nets that heavily utilizes their potential for parallel evaluation. We discuss advantages and challenges of the ongoing implementation of ingpu and compare its performance to existing interaction nets evaluators.Comment: In Proceedings DCM 2012, arXiv:1403.757

    Realizing Impure Functions in Interaction Nets

    Get PDF
    We propose and illustrate first steps towards an extension of interaction nets based on monads to handle functions with side effects (e.g., I/O, exceptions). We define three monads for common types of side effects and show their correctness by proving the monad laws

    An Implementation of Nested Pattern Matching in Interaction Nets

    Full text link
    Reduction rules in interaction nets are constrained to pattern match exactly one argument at a time. Consequently, a programmer has to introduce auxiliary rules to perform more sophisticated matches. In this paper, we describe the design and implementation of a system for interaction nets which allows nested pattern matching on interaction rules. We achieve a system that provides convenient ways to express interaction net programs without defining auxiliary rules

    Extending the Interaction Nets Calculus by Generic Rules

    No full text
    Abstract. We extend the textual calculus for interaction nets by generic rules and propose constraints to preserve uniform confluence. Furthermore, we discuss the implementation of generic rules in the language inets, which is based on the interaction nets calculus.

    Extending interaction nets towards the real world

    No full text
    Zsfassung in dt. SpracheInteraction nets sind ein formales Berechnungsmodell: Sie verwenden Graphen und Regeln zur Graphersetzung ("rewriting"), um Berechnung zu beschreiben.Im Vergleich zu etablierten Modellen wie Turingmaschinen oder dem Lambda-Kalkül bieten interaction nets zwei besondere Eigenschaften: Visualisierung und parallele Evaluierung. Rewriting-regeln werden in einer grafischen Notation definiert, wodurch Algorithmen visualisiert werden. Durch starke Beschränkungen dieser Regeln kann jedes interaction nets Programm parallel evaluiert werden.Diese Eigenschaften machen interaction nets zu einer vielversprechenden Basis für eine zukünftige Programmiersprache. Um Korrektheit von paralleln Programmen zu zeigen, wäre ein formales Modell mit paralleler Evaluierung als "first-class citizen" von großem Vorteil. Unglücklickerweise sind interaction nets ein sehr einfaches und eingeschränktes Berechnungsmodell: Ahnlich dem Lambda-Kalkül ist es nicht praktikabel, ein Programm für reale Anwendungen zu spezifizieren. Interaction nets mangelt es an vielen features von Programmiersprachen, die zum Erstellen komplexer Funktionen notwendig sind.Das Ziel dieser Dissertation ist es, interaction nets näher an die Verwendbarkeit als praktikable Programmiersprache zu bringen. Um Seiteneffekte (I/O, State manipulation, exception handling,. . . ) zu bewältigen, definieren wir Monaden in interaction nets, die auf generic interaction rules basieren. In Kombination mit nested patterns erlauben diese die komfortable Definition von Funktionen höherer Ordnung direkt in interaction nets. Diese Erweiterungen sind konservativ: Mit annehmbaren Einschränkungen erhalten diese die günstigen Eigenschaften des Basismodells. Zusätzlich zu diesen theoretischen Resultaten behandeln wir die Implementierung dieser Features und präsentieren einen Ansatz, um parallele Evaluierung von interaction nets mittels Grafikprozessoren (GPUs) zu realisieren.Interaction nets are a formal model of computation. They use graphs and graph replacement (or rewriting) rules to describe computation. Compared to prominent models such as Turing machines or the lambda-calculus, interaction nets offer two main differences "out of the box": visualization and parallel evaluation.Rewriting rules and input graphs are given in a graphical notation, visualizing an algorithm. Due to strong restrictions on the shape of these rewriting rules, any interaction nets program can be evaluated in parallel.The above properties indicate that interaction nets could be a useful foundation for a programming language. To ensure correctness of parallel programs, a formal model that features parallel evaluation as a "first-class citizen" could be indispensable. Unfortunately, interaction nets are a very basic and restricted model of computation: similar to the lambda-calculus, it is not feasible to specify practical, real-world applications with the basic model.Interaction nets lack many features of a practical programming language needed to conveniently express complex functions.The goal of this thesis is to bring interaction nets closer to real-world usability. In order to tackle computational side effects (I/O, state manipulation,. . . ), we define monads in interaction nets, which are based on generic interaction rules. In combination with nested patterns, these rules allow us to conveniently define higher-order functions directly in interaction nets. We show that these extensions are conservative: under reasonable constraints, they preserve the beneficial properties of the base model. In addition to these theoretical results, we discuss the implementation of these features and present an approach to realize parallel evaluation of interaction nets on graphics processing units (GPUs).10
    corecore