ComputingComputer ScienceCompilersProgramming LanguagesSoftware EngineeringAbstract Syntax TreesControl-flow AnalysisProgramming Language ImplementationStatic AnalysisStatic Code AnalysisType SystemsLanguage ImplementationLow-level C ProgrammingParser Design
Many of the bugs in scientific programs have their roots in mistreatment of physical dimensions, via erroneous expressions in the quantity calculus. Now that the type system in the Glasgow Haskell Compiler is rich enough to support type-level integers and other promoted datatypes, we can type-check the quantity calculus in Haskell. In addition to basic dimension-aware arithmetic and unit conversions, our units library features an extensible system of dimensions and units, a notion of dimensions apart from that of units, and unit polymorphism designed to describe the laws of physics. We demonstrate the utility of units by writing an astrophysics research paper. This work is free of unit concerns because every quantity expression in the paper is rigorously type-checked.
15
Accelerating Haskell array codes with multicore GPUs
Manuel M. T. Chakravarty, Gabriele Keller, Sean Lee et al. · 2011 · 245 citations
Brent A. Yorgey, Stephanie Weirich, Julien Cretin et al. · 2012 · 174 citations · Full text
Regular, shape-polymorphic, parallel arrays in Haskell
Gabriele Keller, Manuel M. T. Chakravarty, Roman Leshchinskiy et al. · 2010 · 155 citations
Geoffrey Mainland, Greg Morrisett · 2010 · 105 citations