Abstract
Units-of-measure are to science what types are to programming. In science and engineering, dimensional and unit consistency provides a first check on the correctness of an equation or formula, just as in programming the validation of a program by the type-checker eliminates one possible reason for failure.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
The International System of Units (SI). Technical report, Bureau International des Poids et Mesures (2006)
Allen, E., Chase, D., Hallett, J., Lunchangco, V., Maessen, J.-W., Ryu, S., Steele Jr., G.L., Tobin-Hochstadt, S.: The Fortress Language Specification, Version 1.0 (2008)
Baader, F., Nipkow, T.: Term Rewriting and All That. Cambridge University Press, Cambridge (1988)
Bird, R.S., Paterson, R.: de brujn notation as a nested datatype. Journal of Functional Programming 9(1), 77–92 (1999)
Birkhoff, G.: Hydrodynamics: A Study in Logic, Fact and Similitude. Princeton University Press, Princeton (1960)
Buckwalter, B.: dimensional: statically checked physical dimensions for Haskell (2008)
Kennedy, A.J.: Programming Languages and Dimensions. PhD thesis, University of Cambridge (1995)
Kennedy, A.J.: Type inference and equational theories. Technical Report LIX/RR/96/09, École Polytechnique, Paris, France (1996)
Kennedy, A.J.: Relational parametricity and units of measure. In: POPL 1997: Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 442–455. ACM Press, New York (1997)
Kennedy, A.J.: Formalizing an extensional semantics for units of measure. In: 3rd ACM SIGPLAN Workshop on Mechanizing Metatheory, WMM (2008)
Le Botlan, D., Rémy, D.: MLF: Raising ML to the power of System F. In: 8th ACM SIGPLAN International Conference on Functional Programming, ICFP (2003)
Leijen, D.: HMF: Simple type inference for first-class polymorphism. In: 13th ACM SIGPLAN International Conference on Functional Programming, ICFP (2008)
Lindley, S.: Many holes in Hindley-Milner. In: Proceedings of the 2008 Workshop on ML (2008)
Milner, R.: A theory of type polymorphism in programming. Journal of computer and system sciences 17, 348–375 (1978)
NASA. Mars Climate Orbiter Mishap Investigation Board: Phase I Report, (November 1999)
Pierce, B.C. (ed.): Types and Programming Languages. MIT Press, Cambridge (2002)
Pierce, B.C. (ed.): Advanced Topics in Types and Programming Languages. MIT Press, Cambridge (2005)
Press, W.H., Teukolsky, S.A., Vetterling, W.T., Flannery, B.P.: Numerical Recipes: The Art of Scientific Computing, 3rd edn. Cambridge University Press, Cambridge (2007)
Schabel, M.C., Watanabe, S.: Boost.Units (2008)
Schrijvers, T., Peyton Jones, S., Sulzmann, M., Vytiniotis, D.: Complete and decidable type inference for GADTs. In: International Conference on Functional Programming, ICFP (2009)
Szirtes, T.: Applied Dimensional Analysis and Modeling, 2nd edn. Butterworth-Heinemann, Butterworths (2007)
Vytiniotis, D., Peyton Jones, S., Schrijvers, T.: let should not be generalized. In: Proceedings of the ACM SIGPLAN Workshop on Types in Language Design and Implementation, TLDI (2010)
Vytiniotis, D., Weirich, S., Peyton Jones, S.: FPH: First-class polymorphism for Haskell. In: 13th ACM SIGPLAN International Conference on Functional Programming, ICFP (2008)
Wadler, P.: Theorems for free! In: Proceedings of the 4th International Symposium on Functional Programming Languages and Computer Architecture (1989)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Kennedy, A. (2010). Types for Units-of-Measure: Theory and Practice. In: Horváth, Z., Plasmeijer, R., Zsók, V. (eds) Central European Functional Programming School. CEFP 2009. Lecture Notes in Computer Science, vol 6299. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-17685-2_8
Download citation
DOI: https://doi.org/10.1007/978-3-642-17685-2_8
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-17684-5
Online ISBN: 978-3-642-17685-2
eBook Packages: Computer ScienceComputer Science (R0)