Rob Hoogerwoord





Reading Guide


Selected Essays

Number Title
RH69b An implementation of mutual inclusion
RH71 Waarom de "energieoogstmachine" van di Wesselli niet werkt: een oefening in Separation of Concerns
RH75 On degrees of productivity
RH79 A nice little program
RH80 A sequel to RH79
rh82a A simple theorem and its applications
rh89 Two exercises in functional programming
rh94 On the implementation of virtual storage: a top down approach
rh95a McCarthy's 91-function: a sequel to EWD845
rh111b A symmetric set of efficient list operations
rh113 On the introduction of list parameters
rh128a On mathematical induction and the invariance theorem
rh129 Dot or juxtaposition?
rh130 A sequel to rh129 and EWD1061
rh133 A little exercise in combinator logic (mainly for the record)
rh138 A surprising derivation of a postfix-code evaluator
rh139a A calculational derivation of the CASOP algorithm
rh140 Logisch rekenen, een voorstudie (bespot Raymond Smullyan)
rh143 A solution to an exercise posed by S.D. Swierstra
rh144 De Von Neumann machine
rh146 Knaster-Tarski in disguise
rh155 A solution to an examination exercise
rh160 Just a caveat
rh163 Continuations continued (for the record)
rh166 The Deutsch-Schorr-Waite graph marking algorithm (mainly for my own understanding)
rh167 e
rh168 Two problems in connection with the LRU algorithm
rh169 A Logarithmic Implementation of Flexible Arrays
rh170a A minor variation on "On a proof of Kaplansky's Theorem"
rh172 Whither Inference Rules?
rh175 Kosmisch van geen belang
rh178 The barber's paradox is no paradox
rh181 A Derivation of Huffman's Algorithm
rh185 Sometimes auxiliary variables are necessary
rh190 On the foundations of functional programming: a programmer's point of view
rh195a Avoiding real-time requirements: a case study
rh196 Cantor's Diagonalisation Principle
rh197 Concurrent processing and procedure invocations
rh199 The function "reverse"
rh200a Separating my concerns: a sequel to rh199
rh204 Yet another solution
rh205 Why √p is irrational, for every prime p
rh206 Dummy transformations and the like
rh207 Four sorting algorithms for the price of one
rh208 Folding a binary operator: a neglected technique
rh209 How to evaluate integer expressions (part i: the simple case)
rh210 The Von Neumann machine as a functional program
rh212 How to evaluate integer expressions (part ii: still the simple case)
rh213 From pointers to objects: how to avoid confusion
rh214 Eventvariables: an implementation with semaphores
rh215d Functional-Program Inversion, with an application to Parser Construction
rh218 Two Exercises with Real-Time Programs
rh221 Two Applications of the Split Binary Semaphore
rh223 A truly efficient implementation of LRU stacks
rh224 Expression Evaluation Revisited
rh227 De Suiker en de Weegschaal
rh228 Causal Delivery with Vector Clocks
rh230 An Introduction to Garbage Collection
rh234 Implementeren is Programmeren
rh235c Leslie Lamport's Logical Clocks: a tutorial
rh244 Let's not make things worse
rh246 Distributed Summation
rh249 Laten we het niet erger maken
rh253a Mathematical Induction, Well-Foundedness, and the Axiom of Choice
rh254 A Formal Development of Distributed Summation
rh258 Formality Works
rh274 The Longest Upsequence: a derivation
rh275 Range/Term Trading: a generalization
rh277 Time to wake up
rh278 The Thue-Morse sequence: a nice exercise
rh280b A Formal Derivation of a Sliding Window Protocol
rh281b Computing celebrities
rh284 A Unique Representation of Sets
rh294 ∃*-elimination revisited
rh295 A Useful Classification
rh309 Representation Conversion Revisited
rh310 Generalization by Abstraction, once more
rh311 29 Years of (Functional) Programming: what have we learned?
PhD The design of functional programs: a calculational approach
PbC Programming by Calculation