Results 1  10
of
155
Abstract State Machines: A Method for HighLevel System Design and Analysis
, 2003
"... method for highlevel system design and analysis and survey some of its application highlights in industrial softwarebased system engineering. We illustrate the method by defining models for three simple control systems (sluice gate, traffic light, package router) and by characterizing EventB mach ..."
Abstract

Cited by 213 (19 self)
 Add to MetaCart
method for highlevel system design and analysis and survey some of its application highlights in industrial softwarebased system engineering. We illustrate the method by defining models for three simple control systems (sluice gate, traffic light, package router) and by characterizing EventB machines as a specific class of ASMs. We point to directions for future research and applications of the method in other areas than software engineering. 1
A New Approach to Generic Functional Programming
 In The 27th Annual ACM SIGPLANSIGACT Symposium on Principles of Programming Languages
, 1999
"... This paper describes a new approach to generic functional programming, which allows us to define functions generically for all datatypes expressible in Haskell. A generic function is one that is defined by induction on the structure of types. Typical examples include pretty printers, parsers, and co ..."
Abstract

Cited by 96 (13 self)
 Add to MetaCart
This paper describes a new approach to generic functional programming, which allows us to define functions generically for all datatypes expressible in Haskell. A generic function is one that is defined by induction on the structure of types. Typical examples include pretty printers, parsers, and comparison functions. The advanced type system of Haskell presents a real challenge: datatypes may be parameterized not only by types but also by type constructors, type definitions may involve mutual recursion, and recursive calls of type constructors can be arbitrarily nested. We show that despite this complexitya generic function is uniquely defined by giving cases for primitive types and type constructors (such as disjoint unions and cartesian products). Given this information a generic function can be specialized to arbitrary Haskell datatypes. The key idea of the approach is to model types by terms of the simply typed calculus augmented by a family of recursion operators. While co...
De Bruijn notation as a nested datatype
 Journal of Functional Programming
, 1999
"... “I have no data yet. It is a capital mistake to theorise before one has data.” ..."
Abstract

Cited by 68 (2 self)
 Add to MetaCart
“I have no data yet. It is a capital mistake to theorise before one has data.”
Generic Haskell: practice and theory
 In Generic Programming, Advanced Lectures, volume 2793 of LNCS
, 2003
"... Abstract. Generic Haskell is an extension of Haskell that supports the construction of generic programs. These lecture notes describe the basic constructs of Generic Haskell and highlight the underlying theory. Generic programming aims at making programming more effective by making it more general. ..."
Abstract

Cited by 65 (23 self)
 Add to MetaCart
Abstract. Generic Haskell is an extension of Haskell that supports the construction of generic programs. These lecture notes describe the basic constructs of Generic Haskell and highlight the underlying theory. Generic programming aims at making programming more effective by making it more general. Generic programs often embody nontraditional kinds of polymorphism. Generic Haskell is an extension of Haskell [38] that supports the construction of generic programs. Generic Haskell adds to Haskell the notion of structural polymorphism, the ability to define a function (or a type) by induction on the structure of types. Such a function is generic in the sense that it works not only for a specific type but for a whole class of types. Typical examples include equality, parsing and pretty printing, serialising, ordering, hashing, and so on. The lecture notes on Generic Haskell are organized into two parts. This first part motivates the need for genericity, describes the basic constructs of Generic Haskell, puts Generic Haskell into perspective, and highlights the underlying theory. The second part entitled “Generic Haskell: applications ” delves deeper into the language discussing three nontrivial applications of Generic Haskell: generic dictionaries, compressing XML documents, and a generic version of the zipper data type. The first part is organized as follows. Section 1 provides some background discussing type systems in general and the type system of Haskell in particular. Furthermore, it motivates the basic constructs of Generic Haskell. Section 2 takes a closer look at generic definitions and shows how to define some popular generic functions. Section 3 highlights the theory underlying Generic Haskell and discusses its implementation. Section 4 concludes. 1
The UnderAppreciated Unfold
 In Proceedings of the Third ACM SIGPLAN International Conference on Functional Programming
, 1998
"... Folds are appreciated by functional programmers. Their dual, unfolds, are not new, but they are not nearly as well appreciated. We believe they deserve better. To illustrate, we present (indeed, we calculate) a number of algorithms for computing the breadthfirst traversal of a tree. We specify brea ..."
Abstract

Cited by 49 (10 self)
 Add to MetaCart
Folds are appreciated by functional programmers. Their dual, unfolds, are not new, but they are not nearly as well appreciated. We believe they deserve better. To illustrate, we present (indeed, we calculate) a number of algorithms for computing the breadthfirst traversal of a tree. We specify breadthfirst traversal in terms of levelorder traversal, which we characterize first as a fold. The presentation as a fold is simple, but it is inefficient, and removing the inefficiency makes it no longer a fold. We calculate a characterization as an unfold from the characterization as a fold; this unfold is equally clear, but more efficient. We also calculate a characterization of breadthfirst traversal directly as an unfold; this turns out to be the `standard' queuebased algorithm.
SpatioTemporal Predicates
 IEEE Transactions on Knowledge and Data Engineering
, 1999
"... AbstractÐThis paper investigates temporal changes of topological relationships and thereby integrates two important research areas: First, twodimensional topological relationships that have been investigated quite intensively and, second, the change of spatial information over time. We investigate ..."
Abstract

Cited by 47 (16 self)
 Add to MetaCart
AbstractÐThis paper investigates temporal changes of topological relationships and thereby integrates two important research areas: First, twodimensional topological relationships that have been investigated quite intensively and, second, the change of spatial information over time. We investigate spatiotemporal predicates, which describe developments of wellknown spatial topological relationships. A framework is developed in which spatiotemporal predicates can be obtained by temporal aggregation of elementary spatial predicates and sequential composition. We compare our framework with two other possible approaches: one is based on the observation that spatiotemporal objects correspond to threedimensional spatial objects for which existing topological predicates can be exploited. The other approach is to consider possible transitions between spatial configurations. These considerations help to identify a canonical set of spatiotemporal predicates. Index TermsÐTime in geographic information, spatiotemporal data types, representation of spatiotemporal objects, changes of spatial predicates, developments of spatial objects. 1
Proving and Disproving Termination of HigherOrder Functions
 IN: PROC. 5TH FROCOS
, 2005
"... The dependency pair technique is a powerful modular method for automated termination proofs of term rewrite systems (TRSs). We present two important extensions of this technique: First, we show how to prove termination of higherorder functions using dependency pairs. To this end, the dependency ..."
Abstract

Cited by 41 (18 self)
 Add to MetaCart
The dependency pair technique is a powerful modular method for automated termination proofs of term rewrite systems (TRSs). We present two important extensions of this technique: First, we show how to prove termination of higherorder functions using dependency pairs. To this end, the dependency pair technique is extended to handle (untyped) applicative TRSs. Second, we introduce a method to prove nontermination with dependency pairs, while up to now dependency pairs were only used to verify termination. Our results lead to a framework for combining termination and nontermination techniques for firstand higherorder functions in a very flexible way. We implemented and evaluated our results in the automated termination prover AProVE.
An Algebra for XML Query
, 2000
"... . This document proposes an algebra for XML Query. The algebra has been submitted to the W3C XML Query Working Group. A novel feature of the algebra is the use of regularexpression types, similar in power to DTDs or XML Schemas, and closely related to Hasoya, Pierce, and Vouillon's work on Xduce. T ..."
Abstract

Cited by 38 (1 self)
 Add to MetaCart
. This document proposes an algebra for XML Query. The algebra has been submitted to the W3C XML Query Working Group. A novel feature of the algebra is the use of regularexpression types, similar in power to DTDs or XML Schemas, and closely related to Hasoya, Pierce, and Vouillon's work on Xduce. The iteration construct involves novel typing rules not encountered elsewhere (even in Xduce). 1 Introduction This document proposes an algebra for XML Query. This work builds on long standing traditions in the database community. In particular, we have been inspired by systems such as SQL, OQL, and nested relational algebra (NRA). We have also been inspired by systems such as Quilt, UnQL, XDuce, XMLQL, XPath, XQL, and YATL. We give citations for all these systems below. In the database world, it is common to translate a query language into an algebra; this happens in SQL, OQL, and NRA, among others. The purpose of the algebra is twofold. First, the algebra is used to give a semantics for t...
An InformationTheoretic Model for Adaptive SideChannel Attacks
 CCS'07
, 2007
"... We present a model of adaptive sidechannel attacks which we combine with informationtheoretic metrics to quantify the information revealed to an attacker. This allows us to express an attacker’s remaining uncertainty about a secret as a function of the number of sidechannel measurements made. We ..."
Abstract

Cited by 38 (6 self)
 Add to MetaCart
We present a model of adaptive sidechannel attacks which we combine with informationtheoretic metrics to quantify the information revealed to an attacker. This allows us to express an attacker’s remaining uncertainty about a secret as a function of the number of sidechannel measurements made. We present algorithms and approximation techniques for computing this measure. We also give examples of how they can be used to analyze the resistance of hardware implementations of cryptographic functions to both timing and power attacks.