| The Costs and Benefits of Cloning in a Lazy Functional Language | p. 1 |
| Introduction | p. 1 |
| Cloning in the Optimizing Plain Compiler | p. 2 |
| The Benefit of Cloning | p. 5 |
| Reducing I-Cache Misses | p. 6 |
| Measurements | p. 7 |
| Related Work | p. 10 |
| Optimizing Eden by Transformation | p. 13 |
| Introduction | p. 13 |
| Eden and CoreEden overview | p. 15 |
| From Core to CoreEden | p. 17 |
| Inside CoreEden | p. 17 |
| From CoreEden to Core | p. 20 |
| Inside Core | p. 24 |
| A Functional Framework for the Implementation of Genetic Algorithms: Comparing Haskell and Standard ML | p. 27 |
| Introduction | p. 27 |
| Genetic algorithms | p. 28 |
| The Royal Road Problem | p. 29 |
| Generic framework | p. 30 |
| Comparison | p. 32 |
| Related work | p. 37 |
| GpH and Eden: Comparing Two Parallel Functional Languages on a Beowulf Cluster | p. 39 |
| Introduction | p. 40 |
| GPH and Eden | p. 40 |
| Experimental Results | p. 45 |
| Controlling Parallelism and Data Distribution in Eden | p. 53 |
| Introduction | p. 53 |
| Eden | p. 54 |
| Parallelism Control | p. 56 |
| Data Distribution | p. 60 |
| Parallel Heuristic Search in Haskell | p. 65 |
| Introduction | p. 65 |
| Heuristic Search Algorithms for SAT | p. 66 |
| Performance Results | p. 72 |
| Related Work | p. 73 |
| Parallel Composition and Bulk Synchronous Parallel Functional Programming | p. 77 |
| Introduction | p. 77 |
| The BSP model | p. 78 |
| The flat BS[lambda subscript p] calculus | p. 79 |
| Parallel composition | p. 81 |
| The BSMLlib library and parallel composition | p. 85 |
| A Distributed Operational Semantics for a Parallel Functional Language | p. 89 |
| Introduction | p. 89 |
| A kernel language | p. 91 |
| A distributed model | p. 91 |
| The transition system | p. 92 |
| Speculative parallelism | p. 99 |
| Towards Runtime System Level Fault Tolerance for a Distributed Functional Language | p. 103 |
| Introduction | p. 103 |
| Related Work | p. 104 |
| Adding Fault Tolerance to GdH | p. 108 |
| Discussion | p. 112 |
| The Space Usage Problem: An Evaluation Kit for Graph-Reduction Semantics | p. 115 |
| Introduction | p. 115 |
| Term Grammars and Graphs | p. 116 |
| Term-graph Evaluation | p. 119 |
| Space Usage | p. 123 |
| Related Work | p. 125 |
| Camlflow: a CAML to Data-Flow Graph Translator | p. 129 |
| Introduction | p. 129 |
| CFL[subscript 0], the core language | p. 131 |
| CFL[subscript 1], a more realistic language | p. 135 |
| CFL[subscript 2]: an extension dedicated to data-parallelism | p. 140 |
| Related work | p. 141 |
| An Application of Functional Programming: Quilting | p. 145 |
| Introduction | p. 145 |
| Layout example: a border of stars | p. 146 |
| Group project example: round robin arrangements | p. 148 |
| Type Inference for MLj | p. 159 |
| Introduction | p. 159 |
| Aims | p. 160 |
| Overview of MLj types | p. 161 |
| Examples | p. 162 |
| Inference Generates Constraints | p. 166 |
| Constraint Solving | p. 167 |
| Detecting Common Elements of Types | p. 173 |
| Introduction | p. 173 |
| The Type Language | p. 175 |
| Checking Types for Common Elements | p. 176 |
| Table of Contents provided by Syndetics. All Rights Reserved. |