Results 1 
3 of
3
The derivation of online algorithms, with an application to finding palindromes
 Algorithmica
, 1994
"... Abstract. A theory for the derivation of online algorithms is presented. The algorithms are derived in the BirdMeertens calculus for program transformations. This calculus provides a concise functional notation for algorithms, and a few powerful theorems for proving equalities of functions. The th ..."
Abstract

Cited by 7 (4 self)
 Add to MetaCart
Abstract. A theory for the derivation of online algorithms is presented. The algorithms are derived in the BirdMeertens calculus for program transformations. This calculus provides a concise functional notation for algorithms, and a few powerful theorems for proving equalities of functions. The theory for the derivation of online algorithms is illustrated with the derivation of an algorithm for finding palindromes. An online lineartime random access machine (RAM) algorithm for finding the longest palindromic substring in a string is derived, For the purpose of finding the longest palindromic substring, all maximal palindromic substrings are computed. The list of maximal palindromes obtained in the computation of the longest palindrome can be used for other purposes such as finding the largest palindromic rectangle in a matrix and finding the shortest partition of a string into palindromes. Key Words. Derivation of online algorithms, Transformational programming, BirdMeertens calcu
3508 TB Utrecht
"... The specification of a class in Haskell often starts with stating, in comments, the laws that should be satisfied by methods defined in instances of the class, followed by the type of the methods of the class. This paper develops a framework that supports testing such class laws using QuickCheck. Ou ..."
Abstract
 Add to MetaCart
The specification of a class in Haskell often starts with stating, in comments, the laws that should be satisfied by methods defined in instances of the class, followed by the type of the methods of the class. This paper develops a framework that supports testing such class laws using QuickCheck. Our framework is a lightweight class law testing framework, which requires a limited amount of work per class law, and per datatype for which the class law is tested. We also show how to test class laws with partiallydefined values. Using partiallydefined values, we show that the standard lazy and strict implementations of the state monad do not satisfy the expected laws.