Don Stewart
University of New South Wales
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Don Stewart.
international conference on functional programming | 2007
Duncan Coutts; Roman Leshchinskiy; Don Stewart
This paper presents an automatic deforestation system, stream fusion, based on equational transformations, that fuses a wider range of functions than existing short-cut fusion systems. In particular, stream fusion is able to fuse zips, left folds and functions over nested lists, including list comprehensions. A distinguishing feature of the framework is its simplicity: by transforming list functions to expose their structure, intermediate values are eliminated by general purpose compiler optimisations. We have reimplemented the Haskell standard List library on top of our framework, providing stream fusion for Haskell lists. By allowing a wider range of functions to fuse, we see an increase in the number of occurrences of fusion in typical Haskell programs. We present benchmarks documenting time and space improvements.
symposium/workshop on haskell | 2004
André Pang; Don Stewart; Sean Seefried; Manuel M. T. Chakravarty
Extension languages enable users to expand the functionality of an application without touching its source code. Commonly, these languages are dynamically typed languages, such as Lisp, Python, or domain-specific languages, which support runtime plugins via dynamic loading of components. We show that Haskell can be comfortably used as a statically typed extension language for both Haskell and foreign-language applications supported by the Haskell FFI, and that it can perform type-safe dynamic loading of plugins using dynamic types. Moreover, we discuss how plugin support is especially useful to applications where Haskell is used as an embedded domain-specific language (EDSL). We explain how to realise type-safe plugins using dynamic types, runtime compilation, and dynamic linking, exploiting infrastructure provided by the Glasgow Haskell Compiler. We demonstrate the practicability of our approach with several applications that serve as running examples.
symposium/workshop on haskell | 2005
Don Stewart; Manuel M. T. Chakravarty
Some Lisp programs such as Emacs, but also the Linux kernel (when fully modularised) are mostly dynamic; i.e., apart from a small static core, the significant functionality is dynamically loaded. In this paper, we explore fully dynamic applications in Haskell where the static core is minimal and code is hot swappable. We demonstrate the feasibility of this architecture by two applications: Yi, an extensible editor, and Lambdabot, a plugin-based IRC robot. Benefits of the approach include hot swappable code and sophisticated application configuration and extension via embedded DSLs. We illustrate both benefits in detail at the example of a novel embedded DSL for editor interfaces.
symposium/workshop on haskell | 2008
Duncan Coutts; Isaac Potoczny-Jones; Don Stewart
The quality of a programming language itself is only one component in the ability of application writers to get the job done. Programming languages can succeed or fail based on the breadth and quality of their library collection. Over the last few years, the Haskell community has risen to the task of building the library infrastructure necessary for Haskell to succeed as a programming language suitable for writing real-world applications. This on-going work, the Cabal and Hackage effort, is built on the open source model of distributed development, and have resulted in a flowering of development in the language with more code produced and reused now than at any point in the communitys history. It is easier to obtain and use Haskell code, in a wider range of environments, than ever before. This demonstration describes the infrastructure and process of Haskell development inside the Cabal/Hackage framework, including the build system, library dependency resolution, centralised publication, documentation and distribution, and how the code escapes outward into the wider software community. We survey the benefits and trade-offs in a distributed, collaborative development ecosystem and look at a proposed Haskell Platform that envisages a complete Haskell development environment, batteries included.
Macromolecular Theory and Simulations | 2007
Hugh Chaffey-Millar; Don Stewart; Manuel M. T. Chakravarty; Gabriele Keller; Christopher Barner-Kowollik
Archive | 2007
Don Stewart; Gabriele Keller; Manuel M. T. Chakravarty; Hugh Chaffey-Millar; Christopher Barner-Kowollik
Lecture Notes in Computer Science | 2007
Duncan Coutts; Don Stewart; Roman Leshchinskiy
Institute for Future Environments; Science & Engineering Faculty | 2007
Gabriele Keller; Hugh Chaffey-Millar; Manuel M. T. Chakravarty; Don Stewart; Christopher Barner-Kowollik
Institute for Future Environments; Science & Engineering Faculty | 2007
Hugh Chaffey-Millar; Don Stewart; Manuel M. T. Chakravarty; Gabriele Keller; Christopher Barner-Kowollik
Collaboration
Dive into the Don Stewart's collaboration.
Commonwealth Scientific and Industrial Research Organisation
View shared research outputs