IFIP Advances in Information and Communication Technology, 1997
Dynamic programming has long been used as an algorithm design technique, with various mathematica... more Dynamic programming has long been used as an algorithm design technique, with various mathematical theories proposed to model it. Here we take a different perspective, using a relational calculus to model both. problems and their solutions obtained from dynamic programming. This approach serves to shed new light on the different styles of dynamic programming, representing them by different search strategies of the tree-like space of partial solutions.
This paper is concerned with the construction of basic building blocks for polytypic programming.... more This paper is concerned with the construction of basic building blocks for polytypic programming. A polytypic program is a program that is generic in a type constructor, say F ; by specializing it for F:=List , a program for lists is obtained, while for F:=Tree we get a program for trees, and so on. Well-known examples of such polytypic building blocks are the initial algebra for F (assuming F is such that an initial algebra exists): in F : F /FF and the catamorphism combinator: ([f ]) F : a /F ( f : a /Fa For more details, see [7] or [1]. A previous paper [8] defined a crush combinator hh\Phiii F : a /F ha; a; : : : ; ai ( \Phi : a / a \Theta a for all "regular" F , giving a generic way to reduce data structures with a binary operation. In this paper we define a generalization of crush, and present some examples. Further polytypic basic building blocks, as well as several advanced applications, can be found in [5, 6, 4] Part of this work was performed while visiting Kestr...
Mescal is a (not yet existing) system for mechanical support in constructing and exploring formal... more Mescal is a (not yet existing) system for mechanical support in constructing and exploring formal theories, with an emphasis to calculational theories for software development. This document is an attempt to capture and clarify the primary and secondary functional requirements for Mescal. To avoid the repetitious use of modalities like \should" or \must", we use the present tense to signify the hopeful future. The envisioned architecture for Mescal (described in a companion paper) is that of a kernel system \empowered" by libraries. We mention this right here, because it bears on the interpretation of questions of the form: Can Mescal do X? There are three possible answers: (1) Yes, that is a native capability of Mescal; (2) Yes, provided appropriate libraries are developed and used; (3) No, unless someone is willing to do some kernel hacking. In this document, the classes (1) and (2) will not be clearly distinguished. Before going into the requirements, we list some ...
Multiagent Systems, Artificial Societies, and Simulated Organizations, 2003
... Effect of message loss The algorithm is robust against topological changes. ... The objective... more ... Effect of message loss The algorithm is robust against topological changes. ... The objective of the coordination mechanism is, essentially, to optimize this metric through the entire sensor network. ... Each radar sensor consists of three emitter/detector pairs. ...
Python is arguably the most popular programming language worldwide. Since its debut in 1991, Pyth... more Python is arguably the most popular programming language worldwide. Since its debut in 1991, Python’s accessibility and rich functionality has helped it gather a huge userbase. Its design was influenced by creator Guido van Rossum’s involvement with an earlier language, ABC. Lambert Meertens, one of ABC’s developers, recounts Python’s origins and how ABC’s design philosophy shaped its successor.
We present the category-theoretic notion of adjunction in a way that makes it easy to formally &l... more We present the category-theoretic notion of adjunction in a way that makes it easy to formally <i>calculate</i> with it; an acquaintance with its algebraic properties may greatly help in understanding the notion. It is illustrated by means of a lot of theorems and proofs. We also attempt to provide some intuitive understanding of adjunctions by various discussions. Our intended readership
ABC is an interactive programming language where both ease of learning and ease of use stood high... more ABC is an interactive programming language where both ease of learning and ease of use stood high amongst its principle design aims. The language is embedded in a dedicated environment that includes a structure-based editor. To fit in with the design aims, the editor had to be easy to learn, demanding a small command set, and easy to use, demanding
IFIP Advances in Information and Communication Technology, 1997
Dynamic programming has long been used as an algorithm design technique, with various mathematica... more Dynamic programming has long been used as an algorithm design technique, with various mathematical theories proposed to model it. Here we take a different perspective, using a relational calculus to model both. problems and their solutions obtained from dynamic programming. This approach serves to shed new light on the different styles of dynamic programming, representing them by different search strategies of the tree-like space of partial solutions.
This paper is concerned with the construction of basic building blocks for polytypic programming.... more This paper is concerned with the construction of basic building blocks for polytypic programming. A polytypic program is a program that is generic in a type constructor, say F ; by specializing it for F:=List , a program for lists is obtained, while for F:=Tree we get a program for trees, and so on. Well-known examples of such polytypic building blocks are the initial algebra for F (assuming F is such that an initial algebra exists): in F : F /FF and the catamorphism combinator: ([f ]) F : a /F ( f : a /Fa For more details, see [7] or [1]. A previous paper [8] defined a crush combinator hh\Phiii F : a /F ha; a; : : : ; ai ( \Phi : a / a \Theta a for all "regular" F , giving a generic way to reduce data structures with a binary operation. In this paper we define a generalization of crush, and present some examples. Further polytypic basic building blocks, as well as several advanced applications, can be found in [5, 6, 4] Part of this work was performed while visiting Kestr...
Mescal is a (not yet existing) system for mechanical support in constructing and exploring formal... more Mescal is a (not yet existing) system for mechanical support in constructing and exploring formal theories, with an emphasis to calculational theories for software development. This document is an attempt to capture and clarify the primary and secondary functional requirements for Mescal. To avoid the repetitious use of modalities like \should" or \must", we use the present tense to signify the hopeful future. The envisioned architecture for Mescal (described in a companion paper) is that of a kernel system \empowered" by libraries. We mention this right here, because it bears on the interpretation of questions of the form: Can Mescal do X? There are three possible answers: (1) Yes, that is a native capability of Mescal; (2) Yes, provided appropriate libraries are developed and used; (3) No, unless someone is willing to do some kernel hacking. In this document, the classes (1) and (2) will not be clearly distinguished. Before going into the requirements, we list some ...
Multiagent Systems, Artificial Societies, and Simulated Organizations, 2003
... Effect of message loss The algorithm is robust against topological changes. ... The objective... more ... Effect of message loss The algorithm is robust against topological changes. ... The objective of the coordination mechanism is, essentially, to optimize this metric through the entire sensor network. ... Each radar sensor consists of three emitter/detector pairs. ...
Python is arguably the most popular programming language worldwide. Since its debut in 1991, Pyth... more Python is arguably the most popular programming language worldwide. Since its debut in 1991, Python’s accessibility and rich functionality has helped it gather a huge userbase. Its design was influenced by creator Guido van Rossum’s involvement with an earlier language, ABC. Lambert Meertens, one of ABC’s developers, recounts Python’s origins and how ABC’s design philosophy shaped its successor.
We present the category-theoretic notion of adjunction in a way that makes it easy to formally &l... more We present the category-theoretic notion of adjunction in a way that makes it easy to formally <i>calculate</i> with it; an acquaintance with its algebraic properties may greatly help in understanding the notion. It is illustrated by means of a lot of theorems and proofs. We also attempt to provide some intuitive understanding of adjunctions by various discussions. Our intended readership
ABC is an interactive programming language where both ease of learning and ease of use stood high... more ABC is an interactive programming language where both ease of learning and ease of use stood high amongst its principle design aims. The language is embedded in a dedicated environment that includes a structure-based editor. To fit in with the design aims, the editor had to be easy to learn, demanding a small command set, and easy to use, demanding
Uploads
Papers by Lambert Meertens