Network


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

Hotspot


Dive into the research topics where Thomas van Noort is active.

Publication


Featured researches published by Thomas van Noort.


partial evaluation and semantic-based program manipulation | 2011

iTasks for a change: type-safe run-time change in dynamically evolving workflows

Rinus Plasmeijer; Peter Achten; Pieter W. M. Koopman; Bas Lijnse; Thomas van Noort; John H. G. van Groningen

Workflow management systems (WFMS) are software systems that coordinate the tasks human workers and computers have to perform to achieve a certain goal based on a given workflow description. Due to changing circumstances, it happens often that some tasks in a running workflow need to be performed differently than originally planned and specified. Most commercial WFMSs cannot deal with the required run-time changes properly. These changes have to be specified at the level of the underlying Petri-Net based semantics. Moreover, the implicit external state has to be adapted to the new task as well. Such low-level updates can easily lead to wrong behaviour and other errors. This problem is known as the dynamic change bug. In the iTask WFMS, workflows are specified using a radically different approach: workflows are constructed in a compositional style, using pure functions and combinators as self-contained building blocks. This paper introduces a change concept for the iTask system where self-contained tasks can be replaced by other self-contained tasks, thereby preventing dynamic change bugs. The static and dynamic typing system furthermore guarantees that these tasks have compatible types.


Journal of Functional Programming | 2010

A lightweight approach to datatype-generic rewriting

Thomas van Noort; Alexey Rodriguez Yakushev; Stefan Holdermans; Johan Jeuring; Bastiaan Heeren; José Pedro Magalhães

Term-rewriting systems can be expressed as generic programs parameterised over the shape of the terms being rewritten. Previous implementations of generic rewriting libraries require users to either adapt the datatypes that are used to describe these terms or to specify rewrite rules as functions. These are fundamental limitations: the former implies a lot of work for the user, while the latter makes it hard if not impossible to document, test, and analyze rewrite rules. In this article, we demonstrate how to overcome these limitations by making essential use of type-indexed datatypes. Our approach is lightweight in that it is entirely expressible in Haskell with GADTs and type families and can be readily packaged for use with contemporary Haskell distributions.


workshop on generic programming | 2010

Ad-hoc polymorphism and dynamic typing in a statically typed functional language

Thomas van Noort; Peter Achten; Rinus Plasmeijer

Static typing in functional programming languages such as Clean, Haskell, and ML is highly beneficial: it prevents erroneous behaviour at run time and provides opportunities for optimisations. However, dynamic typing is just as important as sometimes types are not known until run time. Examples are exchanging values between applications by deserialisation from disk, input provided by a user, or obtaining values via a network connection. Ideally, a static typing system works in close harmony with an orthogonal dynamic typing system; not discriminating between statically and dynamically typed values. In contrast to Haskells minimal support for dynamic typing, Clean has an extensive dynamic typing; it adopted MLs support for monomorphism and parametric polymorphism and added the notion of type dependencies. Unfortunately, ad-hoc polymorphism has been left out of the equation over the years. While both ad-hoc polymorphism and dynamic typing have been studied in-depth earlier, their interaction in a statically typed functional language has not been studied before. In this paper we explore the design space of their interactions.


Journal of Functional Programming | 2013

A library for polymorphic dynamic typing

Wouter Swierstra; Thomas van Noort

This paper presents a library for programming with polymorphic dynamic types in the dependently typed programming language Agda. The resulting library allows dynamically typed values with a polymorphic type to be instantiated to a less general (possibly monomorphic) type without compromising type soundness.


international conference on advanced functional programming | 2008

An iTask case study: a conference management system

Rinus Plasmeijer; Peter Achten; Pieter W. M. Koopman; Bas Lijnse; Thomas van Noort

Workflow systems are automated systems in which tasks are coordinated by assigning them to either humans or computers. Contemporary workflow systems are static and not very flexible. In these lecture notes, we discuss the iTask system: a combinator library for specifying workflows in the functional language Clean. This system offers several advantages when compared to commercial systems: tasks are statically typed, tasks can be higher order, the combinators are fully compositional, and dynamic and recursive workflow can be specified. Moreover, the specification is an executable specification offering a web-based multiuser workflow system. In this paper we describe the iTask system using a conference management system as the running example to illustrate the expressive power of functional and generic programming in a real-world domain.


implementation and application of functional languages | 2009

A Typical Synergy

Thomas van Noort; Peter Achten; Rinus Plasmeijer

We present a typical synergy between dynamic types (dynamics) and generalised algebraic datatypes (GADTs). The former provides a clean approach to integrating dynamic typing in a statically typed language. It allows values to be wrapped together with their type in a uniform package, deferring type unification until run time using a pattern match annotated with the desired type. The latter allows for the explicit specification of constructor types, as to enforce their structural validity. In contrast to ADTs, GADTs are heterogeneous structures since each constructor type is implicitly universally quantified. Unfortunately, pattern matching only enforces structural validity and does not provide instantiation information on polymorphic types. Consequently, functions that manipulate such values, such as a type-safe update function, are cumbersome due to boilerplate type representation administration. In this paper we focus on improving such functions by providing a new GADT annotation via a natural synergy with dynamics. We formally define the semantics of the annotation and touch on novel other applications of this technique such as type dispatching and enforcing type equality invariants on GADT values.


workshop on generic programming | 2011

Embedding polymorphic dynamic typing

Thomas van Noort; Wouter Swierstra; Peter Achten; Rinus Plasmeijer


implementation and application of functional languages | 2009

A typical synergy: dynamic types and generalised algebraic datatypes

Thomas van Noort; Peter Achten; Rinus Plasmeijer


PLOS ONE | 2010

Exchanging sources between clean and Haskell: a double-edged front end for the clean compiler

John H. G. van Groningen; Thomas van Noort; Peter Achten; Pieter W. M. Koopman; Rinus Plasmeijer

Collaboration


Dive into the Thomas van Noort's collaboration.

Top Co-Authors

Avatar

Peter Achten

Radboud University Nijmegen

View shared research outputs
Top Co-Authors

Avatar

Rinus Plasmeijer

Radboud University Nijmegen

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Bas Lijnse

Radboud University Nijmegen

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge