Вы находитесь на странице: 1из 5

Luis Sosa

Introduction
This annotated bibliography contains an overview of high level implementations for the functional programming language, Haskell. I chose this topic because functional programming languages are becoming very popular these days. The type of sources that I chose are all research papers that were submitted to journals, which ScienceDirect journal is the one that I use the most because is a very established journal in various technical fields having more than 12 million articles. Since this bibliography is very technical in its own field, is only intended for people that are familiar with the functional programming paradigm and that want to extend their knowledge of high level applications for functional programming languages; specifically for the Haskell programming language. The purpose of this bibliography is to give an overview of different high level implementations like, parallel programming architecture, automatic list comprehension, type-safe code transformation, among others intended to be used with the programming language Haskell. This bibliography is not intended to be a guide for learning functional programming language in Haskell. Instead it should be used as a reference for people that have some knowledge with Haskell and that want to know what some of the high level applications for Haskell are. Aswad, M. KH., P. W. Trinder and H. W. Loidl. "Architecture Aware Parallel Programming in Glasgow Parallel Haskell (GPH)." SciVerse ScienceDirect (2012): 1807-1816. The authors, researchers at School of Mathematics and Computer Sciences, Heriot-Watt University,Edinburgh, UK, propose four new architecture-aware constructs for the parallel Haskell extension GpH. Those four new architecture-aware constructs will exploit information about task size and aim to reduce communication for small tasks, preserve data locality, or to distribute large units of work. In particular the authors

investigate three common parallel paradigms on hierarchical arcitectures with up to 224 cores. The authors result shows that the architecture-aware constructs consistently deliver better speedup and scalability than existing constructs together with a dramatically reduced variability. Guillemette, Louis-Julien and Stefan Monnier. "Type-Safe Code Transformations in Haskel." ScienceDirect (2007): 23-39. The authors, researchers at University of Montreal department of informatics propose a higher-order abstract syntax (HOAS) for the Haskell language. The authors argue that the use of typed intermediate languages can significantly increase the reliability of a compiler. By type-checking the code produced at each transformation stage, one can identify bugs in the compiler that would otherwise be much harder to find. The rest of the article is based on the idea of taking the use of types in compilation a step further by verifying that the transformation itself is type correct, in the sense that it is impossible that it produces an ill typed term given a well typed term as input. Hinze, Ralf, Johan Jeuring and Andres Loh. "Comparing Approaches to Generic Programming in Haskell." (2007). The authors, researchers at the University of Germany and the Department of Information and Computing Sciences in Utrecht University compare the various approaches to datatype-generic programming in Haskell. The article discusses different libraries that implement generic programming, some examples are: Generic Haskell, Clean, PolyP, SYB, DrIFT. In conclusion the programmer should use Generic Haskell if they want to experiment with type-indexed functions with kind-indexed types and/or type-indexed data types, in particular if they want to play with higher-kinded and/or nested data types. Use Clean if they want to use an approach to generic programming that is similar to

Generic Haskell, is fully integrated into its underlying programming language, and generates nearly optimal code for generic functions. Use PolyP if they want to define generic functions that use the recursive structure of data types, such as a generalization of the foldr function on lists, the catamorphism. Lesniak, Michael. "A Comparison of Lock-based and Lock-free Taskpool Implementations in Haskell." ScienceDirect (2011): 2317-2326. The author, researcher at the University of Kassel in the department of research and programming languages proposes a way of synchronization of shared data structures in multithreaded software. The authors mention that software Transactional Memory allows lock-free concurrent programming by handling the synchronization of shared variables implicitly. In this article the authors examine the performance of using two synthetic algorithms and LU decomposition and then report their observations about parallel performance and the complexity of the implementation. Marlow, Simon. "Developing High-Performance Server Applications in Haskell, Case Study: A Haskell Web Server." ScienceDirect (2001): 75-90. The author, researcher at Microsoft research proposes a lightweight concurrency and high I/O throughput server prototype written in Haskell. The article presents two main results: firstly, is the idea that a conforming server could be written with minimal effort, leading to an implementation in less than 1500 lines of code, and secondly the naive implementation produced reasonable performance according to the author. Marlow, Simon, et al. "Asynchronous Exceptions in Haskell." PLDI'01 (2006). The author, researcher at Microsoft research, Bells Labs, and Oregon Graduate Institute, propose a new way of handling synchronous and asynchronous exception in Haskell. The

authors design introduces scoped combinators for blocking and unblocking asynchronous interrupts, along with a somewhat surprising semantics for operations that can suspend. Segura, Clara and Carmen Torrano. "Using Template Haskell for Abstract." ScienceDirect (2007): 201-217. The authors, researchers at University of Madrid present a way to writing programs that generate or manipulate other programs which is referred to as metaprogramming. Template Haskell is a recent extension of Haskell, currently implemented in the Glasgow Haskell Compiler, giving support to metaprogramming at compile time. The authors use this idea to implement an abstract interpretation based strictness analysis and a let-to-case transformation that uses the results of the analysis. This article shows the advantages and disadvantages of the tool in order to incorporate new analyses and transformations into the compiler without modifying it. Wadler, Philip. "Comprehending Monads." (n.d.). The author, researcher at the University of Glasgow shows in his paper how list comprehension may be generalized to an arbitrary monad and how the resulting programming feature can concisely express in a pure functional language some programs that manipulate state handle exceptions parse text or invoke continuations. Wadler, Philip. "The essence of functional programming." ACM SIGPLAN-SIGACT symposium on Principles of programming (1992). The author, researcher at the University of Glasgow shows in his paper the use of monads to structure functional programs. According to the author Monads increase the ease with which programs may be modified. Monads can mimic the effect of impure features such

as exceptions state and continuations and also provide effects not easily achieved with such features. Wang, Qiushuang, et al. "Automatic Generation from List comprehension to C." SciVerse ScienceDirect (2012): 1657-1662. The authors, researchers at College of Computer Science, JiLin University, propose a way of transforming from List Comprehension of functional programming language Haskell to C programs. The authors chose to use Monad for a way of representing list because is concise and readability mainly and because Monad extends List Comprehension to any Monad. The authors mention that Haskell is the only language that supports Monad, and that their research is helpful to the building of Monad researching environments.

Вам также может понравиться