functional languages, the shape of the external world af- fects both our understanding of I/O and how we would wish to have I/O expressed. This paper takes the first tentative steps at examining the consequences of using an explicit model... more
functional languages, the shape of the external world af- fects both our understanding of I/O and how we would wish to have I/O expressed. This paper takes the first tentative steps at examining the consequences of using an explicit model of the external world-state when reasoning (using tool-support) about the behaviour of lazy functional pro- grams. We construct a file-system model and develop a monadic language which lets us structure I/O. Two proofs are then performed regarding the observable eect of real- world functional I/O, and it is shown how properties of the file-system lend themselves naturally to the modelling of concurrent behaviour on a single, global state. All proofs in this paper were machine-verified using the Sparkle proof- assistant.
Research Interests:
Research Interests:
Research Interests:
When writing a user interface (UI), the layout of its elements play an important role. Programmers should be able to specify the layout of UIs in an intuitive way, while being able to separate the concern of laying out the UI from the... more
When writing a user interface (UI), the layout of its elements play an important role. Programmers should be able to specify the layout of UIs in an intuitive way, while being able to separate the concern of laying out the UI from the rest of the software implementation. Ideally, the same layout language can be used in multiple application domains, so the programmer only has to learn one set of layout concepts. In this paper we introduce such a general-purpose layout language. We obtain this language by abstracting from a layout language we have introduced in previous work for declaratively defining Scalable Vector Graphics (SVG). We show that this abstract layout language can be instantiated for multiple domains: the SVG library by which the language is inspired, ncurses-based text-based user interfaces, and iTasks. In all of these cases, a separation of concerns is maintained.
Research Interests:
IFL'03: 15th International Symposium on the Implementation of Functional Languages, Edinburgh, Scotland, September 8th - 10th, 2003
Research Interests:
The Internet of Things, IoT, brings us large amounts of connected computing devices that are equipped with dedicated sensors and actuators. These computing devices are typically driven by a cheap microprocessor system with a relatively... more
The Internet of Things, IoT, brings us large amounts of connected computing devices that are equipped with dedicated sensors and actuators. These computing devices are typically driven by a cheap microprocessor system with a relatively slow processor and a very limited amount of memory. Due to the special input-output capabilities of IoT devices and their connections it is very attractive to execute (parts of) programs on these microcomputers.
Research Interests:
In this paper we present the iData Toolkit. This toolkit offers web programmers a novel approach to programming interactive, dynamic web-sites with state on a high level of abstraction. The used concepts are inspired on our previous work... more
In this paper we present the iData Toolkit. This toolkit offers web programmers a novel approach to programming interactive, dynamic web-sites with state on a high level of abstraction. The used concepts are inspired on our previous work on GUI programming. The key idea is to program applications with pure functional data models and functions from which the desktop GUI is derived automatically. In this paper we transfer these high level concepts to the web and show that web applications can be programmed in the same style. In addition we incorporate a number of improvements to the programming method. Because web technology is completely different from desktop GUI programming, we had to design an entirely new implementation method. The essential parts of this implementation rely on generic programming techniques. This has resulted in a concise and flexible implementation. The iData Toolkit is an excellent case study in applying generic programming techniques.
Research Interests:
Research Interests:
Research Interests:
Research Interests:
Research Interests:
Research Interests:
Research Interests:
This paper extends our method to construct a shallow embedded domain specific language, DSL, embedded in a function programming language. We show how one can add functions and tasks that are typed by the type system of the functional host... more
This paper extends our method to construct a shallow embedded domain specific language, DSL, embedded in a function programming language. We show how one can add functions and tasks that are typed by the type system of the functional host language. The DSL is clearly separated from its host functional language to facilitate the compilation to small executables in C++. The type system of the host language verifies the types in the DSL, including the types and proper use of variables. The DSL is extendable by new language constructs and interpretations without breaking any existing code. The type system guarantees that everything used in a DSL program is properly defined. We apply these techniques for a DSL to program Arduino microprocessor systems from Clean. The long term goal is to incorporate these microprocessors in the iTask system.
Research Interests:
Functional programming languages have been successfully employed to make executable neural network descriptions. For the sake of efficiency, the programs are mixtures between descriptions of the behaviour and the data-flow needed to... more
Functional programming languages have been successfully employed to make executable neural network descriptions. For the sake of efficiency, the programs are mixtures between descriptions of the behaviour and the data-flow needed to obtain an efficient algorithm. This has a bad influence on the descriptions' readability. In this paper, we will present a functional description of a neural network which isn't hampered by any efficiency considerations. Our description of a neural network is a mathematical specification of that network. Using an ordinary functional programming language evaluation strategy, our network description has a time complexity which is exponential in the number of learning steps of the network. Using an evaluation strategy which is improved with a memoizing facility, the specification has an almost linear time complexity in the number of learning steps.
Research Interests:
Research Interests:
Research Interests: Computer Science, Condensed Matter Physics, User Interface, Information Exchange, Command and Control, and 8 moreDeclarative Programming, Distributed Planning, Workflow Management System, Standard Operating Procedure, Quick Response, Graphical Representation, Degree of Freedom, and Programming language
Research Interests:
Microcontroller Units (MCUs) are all around us powering many of our so called smart devices. Most programs running on MCUs are control applications performing multiple jobs at the same time. Examples of these jobs are: blinking a status... more
Microcontroller Units (MCUs) are all around us powering many of our so called smart devices. Most programs running on MCUs are control applications performing multiple jobs at the same time. Examples of these jobs are: blinking a status LED, reading button states, talking to sensors or communicating with the world. Often these jobs are dependent on each other and require communication between them. Small MCUs have no support for multiple threads, therefore the programmer needs to manually interleave the tasks. The job structure bears great similarities with tasks in Task Oriented Programming (TOP). Tasks representing work that needs to be done, can be interleaved and combined to form compound tasks. The embedded Domain Specific Language (eDSL) mTask is a TOP language that works on even the smallest of MCUs. This paper explains how to write multi-task control applications for MCUs using a TOP language such as mTask.
Research Interests:
Clean was originally designed as an experimental intermediate language and deliberately kept syntactically as poor as possible to be able to focus on the essential language and implementation issues. This strategy enabled us to study new... more
Clean was originally designed as an experimental intermediate language and deliberately kept syntactically as poor as possible to be able to focus on the essential language and implementation issues. This strategy enabled us to study new concepts (such as term graph rewriting (Barendregt et al., 1987), lazy copying (van Eekelen et al., 1991), abstract reduction (Nöcker, 1993), uniqueness typing
2.2 WhyBusinessRules? . . . . . . . . . . . . . . . . . . . . . . . 10 2.3 Three kinds of Business Rules . . . . . . . . . . . . . . . . . . 11 2.3.1 Structuralassertions . . . . . . . . . . . . . . . . . . . 11 2.3.2... more
2.2 WhyBusinessRules? . . . . . . . . . . . . . . . . . . . . . . . 10 2.3 Three kinds of Business Rules . . . . . . . . . . . . . . . . . . 11 2.3.1 Structuralassertions . . . . . . . . . . . . . . . . . . . 11 2.3.2 ActionassertionsorConstraints . . . . . . . . . . . . 12 2.3.3 Derivations . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3.4 A different view . . . . . . . . . . . . . . . . . . . . . . 12 2.4 Case: Insurance Business Rules . . . . . . . . . . . . . . . . . 12 2.5 Related work . . . . . . . . . . . . . . . . . . . . . . ... ... 3. ADL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.1 Relational algebra . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2 ADLexplained . . . . . . . . . . . . . . . . . . . . . . . . . . 18 ...
Research Interests:
The COSTA system infers resource consumption bounds from Java bytecode using an internal recurrence solver PUBS. This paper suggests an improvement of the COSTA system, such that it can solve a larger number of recurrences. The idea is to... more
The COSTA system infers resource consumption bounds from Java bytecode using an internal recurrence solver PUBS. This paper suggests an improvement of the COSTA system, such that it can solve a larger number of recurrences. The idea is to replace one of its static analyses, the ranking function analysis, by another kind of analysis, height analysis, in such a way that polynomial bounds of any degree may be inferred instead of just linear expressions. The work can be seen as an application of some polynomial interpolation ...
In a declarative programming language a computation is expressed in a static fashion, as a list of declarations. A program in such a language is regarded as a specification that happens to be executable as well. In this textbook we focus... more
In a declarative programming language a computation is expressed in a static fashion, as a list of declarations. A program in such a language is regarded as a specification that happens to be executable as well. In this textbook we focus on a subclass of the declarative languages, the functional programming languages, sometimes called applicative languages. In these languages a program consists of a list of function definitions. The execution of a program consists of the evaluation of a function application given the ...
Research Interests:
ABSTRACT
Research Interests:
Abstract: The behavior of concurrent and parallel programs can bespecied in a functional style. We introduced a relational model for synthesizingabstract parallel imperative programs this way earlier. In thispaper we investigate the... more
Abstract: The behavior of concurrent and parallel programs can bespecied in a functional style. We introduced a relational model for synthesizingabstract parallel imperative programs this way earlier. In thispaper we investigate the applicability of the specication and vericationtools of the model for proving temporal properties of concrete programswritten in a pure functional language, in Concurrent Clean. Destructiveupdates preserving referential transparency are possible in this...
Research Interests:
Research Interests:
Research Interests:
Research Interests:
Research Interests:
Research Interests:
Research Interests:
ABSTRACT In these lecture notes we explain how multi-user web applications can be developed in a programming style that favors tasks as main building block for the construction of such systems. A task is work that has to be performed by... more
ABSTRACT In these lecture notes we explain how multi-user web applications can be developed in a programming style that favors tasks as main building block for the construction of such systems. A task is work that has to be performed by human-beings and computers working together on the internet. This concept has been implemented in the iTask framework as a monadic combinator library that is embedded in the pure and lazy functional programming language Clean. These lecture notes consist of many examples and exercises, and also discusses the foundation of both the iTask system and task-oriented programming.
Research Interests:
Research Interests:
Research Interests:
Page 1. 1 June 2010 Web Based Dynamic Workflows Systems for C2 of Military Operations Jan Martin Jansen, Bas Lijnse, Rinus Plasmeijer, Tim Grant Presenter: Ariën van der Wal Nettherlands Defense Academy Radboud University Nijmegen Radboud... more
Page 1. 1 June 2010 Web Based Dynamic Workflows Systems for C2 of Military Operations Jan Martin Jansen, Bas Lijnse, Rinus Plasmeijer, Tim Grant Presenter: Ariën van der Wal Nettherlands Defense Academy Radboud University Nijmegen Radboud University Nijmegen ...