Roshan P. James

Learn More
We present a parallel generational-copying garbage collector implemented for the Glasgow Haskell Compiler. We use a block-structured memory allocator, which provides a natural granularity for dividing the work of GC between many threads, leading to a simple yet effective method for parallelising copying GC. The results are encouraging: we demonstrate(More)
Computation is a physical process which, like all other physical processes, is fundamentally reversible. From the notion of type isomorphisms, we derive a typed, universal, and reversible computational model in which information is treated as a linear resource that can neither be duplicated nor erased. We use this model as a semantic foundation for(More)
Many mainstream languages have operators named yield that share common semantic roots but differ significantly in their details. We present the first known formal study of these mainstream yield operators, unify their many semantic differences, adapt them to to a functional setting, and distill the operational semantics and type theory for a generalized(More)
In previous work, we developed a first-order, informationpreserving, and reversible programming language Π founded on type isomorphisms. Being restricted to first-order types limits the expressiveness of the language: it is not possible, for example, to abstract common program fragments into a higher-level combinator. In this paper, we introduce a(More)
  • 1