Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Atze van der Ploeg is active.

Publication


Featured researches published by Atze van der Ploeg.


symposium/workshop on haskell | 2013

Monadic functional reactive programming

Atze van der Ploeg

Functional Reactive Programming (FRP) is a way to program reactive systems in functional style, eliminating many of the problems that arise from imperative techniques. In this paper, we present an alternative FRP formulation that is based on the notion of a reactive computation: a monadic computation which may require the occurrence of external events to continue. A signal computation is a reactive computation that may also emit values. In contrast to signals in other FRP formulations, signal computations can end, leading to a monadic interface for sequencing signal phases. This interface has several advantages: routing is implicit, sequencing signal phases is easier and more intuitive than when using the switching combinators found in other FRP approaches, and dynamic lists require much less boilerplate code. In other FRP approaches, either the entire FRP expression is re-evaluated on each external stimulus, or impure techniques are used to prevent redundant re-computations. We show how Monadic FRP can be implemented straightforwardly in a purely functional way while preventing redundant re-computations.


symposium/workshop on haskell | 2014

Reflection without remorse: revealing a hidden sequence to speed up monadic reflection

Atze van der Ploeg; Oleg Kiselyov

A series of list appends or monadic binds for many monads performs algorithmically worse when left-associated. Continuation-passing style (CPS) is well-known to cure this severe dependence of performance on the association pattern. The advantage of CPS dwindles or disappears if we have to examine or modify the intermediate result of a series of appends or binds, before continuing the series. Such examination is frequently needed, for example, to control search in non-determinism monads. We present an alternative approach that is just as general as CPS but more robust: it makes series of binds and other such operations efficient regardless of the association pattern-- and also provides efficient access to intermediate results. The key is to represent such a conceptual sequence as an efficient sequence data structure. Efficient sequence data structures from the literature are homogeneous and cannot be applied as they are in a type-safe way to series of monadic binds. We generalize them to type aligned sequences and show how to construct their (assuredly order-preserving) implementations. We demonstrate that our solution solves previously undocumented, severe performance problems in iteratees, LogicT transformers, free monads and extensible effects.


Software - Practice and Experience | 2014

Drawing non-layered tidy trees in linear time

Atze van der Ploeg

The well‐known Reingold–Tilford algorithm produces tidy‐layered drawings of trees: drawings where all nodes at the same depth are vertically aligned. However, when nodes have varying heights, layered drawing may use more vertical space than necessary. A non‐layered drawing of a tree places children at a fixed distance from the parent, thereby giving a more vertically compact drawing. Moreover, non‐layered drawings can also be used to draw trees where the vertical position of each node is given, by adding dummy nodes. In this paper, we present the first linear‐time algorithm for producing non‐layered drawings. Our algorithm is a modification of the Reingold–Tilford algorithm, but the original complexity proof of the Reingold–Tilford algorithm uses an invariant that does not hold for the non‐layered case. We give an alternative proof of the algorithm and its extension to non‐layered drawings. To improve drawings of trees of unbounded degree, extensions to the Reingold–Tilford algorithm have been proposed. These extensions also work in the non‐layered case, but we show that they then cause a O(n2) run‐time. We then propose a modification to these extensions that restores the O(n) run‐time. Copyright


international symposium on haskell | 2016

The Key monad: type-safe unconstrained dynamic typing

Atze van der Ploeg; Koen Claessen; Pablo Buiras

We present a small extension to Haskell called the Key monad. With the Key monad, unique keys of different types can be created and can be tested for equality. When two keys are equal, we also obtain a concrete proof that their types are equal. This gives us a form of dynamic typing, without the need for Typeable constraints. We show that our extension allows us to safely do things we could not otherwise do: it allows us to implement the ST monad (inefficiently), to implement an embedded form of arrow notation, and to translate parametric HOAS to typed de Bruijn indices, among others. Although strongly related to the ST monad, the Key monad is simpler and might be easier to prove safe. We do not provide such a proof of the safety of the Key monad, but we note that, surprisingly, a full proof of the safety of the ST monad also remains elusive to this day. Hence, another reason for studying the Key monad is that a safety proof for it might be a stepping stone towards a safety proof of the ST monad.


practical aspects of declarative languages | 2013

A Library for Declarative Resolution-Independent 2D Graphics

Paul Klint; Atze van der Ploeg

The design of most 2D graphics frameworks has been guided by what the computer can draw efficiently, instead of by how graphics can best be expressed and composed. As a result, such frameworks restrict expressivity by providing a limited set of shape primitives, a limited set of textures and only affine transformations. For example, non-affine transformations can only be added by invasive modification or complex tricks rather than by simple composition. More general frameworks exist, but they make it harder to describe and analyze shapes. We present a new declarative approach to resolution-independent 2D graphics that generalizes and simplifies the functionality of traditional frameworks, while preserving their efficiency. As a real-world example, we show the implementation of a form of focus+context lenses that gives better image quality and better performance than the state-of-the-art solution at a fraction of the code. Our approach can serve as a versatile foundation for the creation of advanced graphics and higher level frameworks.


international conference on functional programming | 2015

Practical principled FRP: forget the past, change the future, FRPNow!

Atze van der Ploeg; Koen Claessen


Science of Computer Programming | 2015

Modular language implementation in Rascal - experience report

Bas Basten; Jeroen van den Bos; Mark Hills; Paul Klint; Arnold Lankamp; Bert Lisser; Atze van der Ploeg; Tijs van der Storm; Jurgen J. Vinju


software language engineering | 2011

Towards a one-stop-shop for analysis, transformation and visualization of software

Paul Klint; Bert Lisser; Atze van der Ploeg


ICT.Open | 2011

The Rascal meta-programming language | a lab for software analysis, transformation, generation & visualization

Jurgen J. Vinju; Mark Hills; Paul Klint; Atze van der Ploeg; Anastasia Izmaylova; Tijs van der Storm


Archive | 2013

Rascal - Release 0.6.2

Paul Klint; Davy Landman; Mark Hills; Jurgen J. Vinju; Anastasia Izmaylova; Tijs van der Storm; Atze van der Ploeg; Bert Lisser; Ali Afroozeh; Anya Helene Bagge; Vadim Zaytsev; Ashim Shahi

Collaboration


Dive into the Atze van der Ploeg's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Mark Hills

East Carolina University

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Jeroen van den Bos

Netherlands Forensic Institute

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge