Reference. Measuring with confidence: leveraging expressive type systems for correct-by-construction software
Modern programming language type systems help programmers write correct software, and furthermore helps them write the software they actually intended to write. We show how expressive types can be used to encode dimension and units of measure information, which can be used to avoid dimensional mistakes and guide software construction, and how types can even help to generate code automatically, which eliminates a whole class of bugs.
Cite
Cited by (2)
Preserving model structure and constraints in scientific computing forbes-2025-preserving
LabMate: A prospectus for types for MATLAB mcbride-2025-labmate
Cites 19 works (1 here)
With notes (1)
Type systems for programs respecting dimensions mcbride-2022-type
External (18)
- Representing quantities and units in digital systems (2022)
- Pint: makes units easy (2022)
- MATLAB units of measurement (2022)
- Software representation of measured physical quantities (2022)
- JSR 385: units of measurement (2021)
- Software for calculation with physical quantities (2020)
- The International System of Units (SI Brochure), ninth edition (2019)
- The next 700 unit of measurement checkers (2018)
- A typechecker plugin for units of measure: domain-specific constraint solving in GHC Haskell (2015)
- Experience report: type-checking polymorphic units for astrophysics research in Haskell (2014)
- Quantities, units and computing (2013)
- Type inference, Haskell and dependent types (2013)
- Boost C++ libraries, chapter 42 (Boost.Units 1.1.0) (2010)
- Dependent Types at Work (2009)
- Types for Units-of-Measure: Theory and Practice (2009)
- Programming languages and dimensions (1995)
- Computation with finitely presented groups (1994)
- Automatic dimensional inference (1991)