skip to main content
10.1145/3276604.3276613acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

The next 700 unit of measurement checkers

Published: 24 October 2018 Publication History

Abstract

In scientific applications, physical quantities and units of measurement are used regularly. If the inherent incompatibility between these units is not handled properly it can lead to major, sometimes catastrophic, problems. Although the risk of a miscalculation is high and the cost equally so, almost none of the major programming languages has support for physical quantities. Instead, scientific code developers often make their own tools or rely on external libraries to help them spot or prevent these mistakes.
We employed a systematic approach to examine and analyse all available physical quantity open-source libraries. Approximately 3700 search results across seven repository hosting sites were condensed into a list of 82 of the most comprehensive and well-developed libraries currently available. In this group, 30 different programming languages are represented. Out of these 82 libraries, 38 have been updated within the last two years. These 38 are summarised in this paper as they are deemed the most relevant.
The conclusion we draw from these results is that there is clearly too much diversity, duplicated efforts, and a lack of code sharing and harmonisation which discourages use and adoption.

References

[1]
2012. Unit Conversion Shootout. Retrieved July 2nd, 2018 from https://github.com/JustinLove/unit_conversion_shootout
[2]
2018. A common core package for Astronomy in Python. Retrieved July 2nd, 2018 from https://github.com/astropy/astropy
[3]
2018. Comparison of source code hosting facilities. Retrieved July 2nd, 2018 from https://en.wikipedia.org/wiki/Comparison_of_source_ code_hosting_facilities
[4]
2018. Nemerle Programming Language. Retrieved July 2nd, 2018 from http://nemerle.org/
[5]
Eric Allen, David Chase, Victor Luchangco, Jan-Willem Maessen, and Guy L. Steele, Jr. 2004. Object-oriented Units of Measurement. In Proceedings of the 19th Annual ACM SIGPLAN Conference on Objectoriented Programming, Systems, Languages, and Applications (OOPSLA ’04). ACM, New York, NY, USA, 384–403.
[6]
Tudor Antoniu, Paul A. Steckler, Shriram Krishnamurthi, Erich Neuwirth, and Matthias Felleisen. 2004. Validating the Unit Correctness of Spreadsheet Programs. In Proceedings of the 26th International Conference on Software Engineering (ICSE ’04). IEEE Computer Society, Washington, DC, USA, 439–448. http://dl.acm.org/citation.cfm?id= 998675.999448
[7]
Apple. 2018. Swift Open Source. Retrieved July 2nd, 2018 from https://swift.org
[8]
Benoit Baudry and Martin Monperrus. 2015. The Multiple Facets of Software Diversity: Recent Developments in Year 2000 and Beyond. ACM Comput. Surv. 48, 1, Article 16 (Sept. 2015), 26 pages.
[9]
Tim Baumann. 2017. Quantities, Libraries in other programming languages. Retrieved July 2nd, 2018 from https://github.com/timjb/ quantities/wiki/Links
[10]
Trevor Bekolay. 2013. A comprehensive look at representing physical quantities in Python. Video. In Scientific Computing with Python. Retrieved July 2nd, 2018 from https://conference.scipy.org/scipy2013/ presentation_detail.php?id=174
[11]
Tegawendé F. Bissyandé, Ferdian Thung, David Lo, Lingxiao Jiang, and Laurent Réveillère. 2013. Popularity, Interoperability, and Impact of Programming Languages in 100,000 Open Source Projects. 2013 IEEE 37th Annual Computer Software and Applications Conference (2013), 303–312.
[12]
TIOBE Software BV. 2018. TIOBE Index for June 2018. Retrieved July 2nd, 2018 from https://www.tiobe.com/tiobe-index/
[13]
Robert F. Cmelik and Narain H. Gehani. 1988. Dimensional Analysis with C++. IEEE Softw. 5, 3 (May 1988), 21–27.
[14]
Jonathan Cooper and Steve McKeever. 2008. A model-driven approach to automatic conversion of physical units. Softw. Pract. Exper. 38, 4 (2008), 337–359.
[15]
Valerio Cosentino, Javier Luis Cánovas Izquierdo, and Jordi Cabot. 2017. A Systematic Mapping Study of Software Development With GitHub. IEEE Access 5 (2017), 7173–7192.
[16]
Kostadin Damevski. 2009. Expressing Measurement Units in Interfaces for Scientific Component Software. In Proceedings of the 2009 Workshop on Component-Based High Performance Computing (CBHPC ’09). ACM, New York, NY, USA, Article 13, 8 pages.
[17]
Bureau International des Poids et Mesures. 2014. SI Brochure: The International System of Units (SI), 8th Edition, Dimensions of Quantities. Retrieved July 2nd, 2018 from https://www.bipm.org/en/publications/ si-brochure/chapter1.html
[18]
Bureau International des Poids et Mesures. 2014. SI Brochure: The International System of Units (SI), 8th Edition, Quantities and Units. Retrieved July 2nd, 2018 from https://www.bipm.org/en/publications/ si-brochure/chapter1.html
[19]
Henning Dieterichs. 2012. Units of Measure Validator for C#. Code Project. Retrieved July 2nd, 2018 from https://www.codeproject.com/ Articles/413750/Units-of-Measure-Validator-for-Csharp
[20]
A Dreiheller, B Mohr, and M Moerschbacher. 1986. Programming Pascal with Physical Units. SIGPLAN Not. 21, 12 (Dec. 1986), 114–123.
[21]
Alan Eliasen. 2018. Frink Programming Language. Retrieved July 2nd, 2018 from https://frinklang.org
[22]
Joint Committee for Guides in Metrology (JCGM). 2012. International Vocabulary of Metrology, Basic and General Concepts and Associated Terms (VIM). Retrieved July 2nd, 2018 from https://www.bipm.org/ utils/common/documents/jcgm/JCGM_200_2012.pdf
[23]
Martin Fowler. 1997. Analysis Patterns: Reusable Objects Models. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.
[24]
Alvaro Carballo Garcia. 2018. UnitParser. Retrieved July 2nd, 2018 from https://www.codeproject.com/Articles/1211504/UnitParser
[25]
Narain Gehani. 1977. Units of measure as a data attribute. Computer Languages 2, 3 (1977), 93 – 111.
[26]
Paul N. Hilfinger. 1988. An Ada Package for Dimensional Analysis. ACM Trans. Program. Lang. Syst. 10, 2 (April 1988), 189–203.
[27]
Neil Chue Hong. 2018. Choosing a repository for your software project. Retrieved July 2nd, 2018 from https://software.ac.uk/resources/guides/ choosing-repository-your-software-project
[28]
Lingxiao Jiang and Zhendong Su. 2006. Osprey: A Practical Type System for Validating Dimensional Unit Correctness of C Programs. In Proceedings of the 28th International Conference on Software Engineering (ICSE ’06). ACM, New York, NY, USA, 262–271.
[29]
Werner Keil. 2018. Eclipse UOMo Project. Retrieved July 2nd, 2018 from http://www.eclipse.org/uomo/
[30]
Andrew Kennedy. 1994. Dimension Types. In Programming Languages and Systems—ESOP’94, 5th European Symposium on Programming, Donald Sannella (Ed.), Vol. 788. Springer, Edinburgh, U.K., 348–362.
[31]
Andrew Kennedy. 2009. Types for Units-of-Measure: Theory and Practice. In Central European Functional Programming School - Third Summer School, CEFP 2009, Budapest, Hungary, May 21-23, 2009 and Komárno, Slovakia, May 25-30, 2009, Revised Selected Lectures. 268–305.
[32]
P. J. Landin. 1966. The Next 700 Programming Languages. Commun. ACM 9, 3 (March 1966), 157–166.
[33]
Tanja Mayerhofer, Manuel Wimmer, and Antonio Vallecillo. 2016. Adding Uncertainty and Units to Quantity Types in Software Models. In Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering (SLE 2016). ACM, New York, NY, USA, 118–131.
[34]
Microsoft. 2018. F# Software Foundation. Retrieved July 2nd, 2018 from https://fsharp.org
[35]
Martin Moene. 2013. Physical Units. Retrieved July 2nd, 2018 from https://github.com/martinmoene/PhysUnits-CT
[36]
Nuthan Munaiah, Steven Kroh, Craig Cabrey, and Meiyappan Nagappan. 2017. Curating GitHub for engineered software projects. 22 (April 2017).
[37]
Peter G. Neumann. 1992. Illustrative Risks to the Public in the Use of Computer Systems and Related Technology. SIGSOFT Softw. Eng. Notes 17, 1 (Jan. 1992), 23–32.
[38]
The National Institute of Standards and Technology. 2015. International System of Units (SI): Base and Derived. Retrieved July 2nd, 2018 from https://physics.nist.gov/cuu/Units/units.html
[39]
Java Community Process. 2016. JSR 363: Units of Measurement API. Retrieved July 2nd, 2018 from https://jcp.org/en/jsr/detail?id=363
[40]
Matthias Schabel and Steven Watanabe. 2017. Boost C++ Libraries, Chapter 43 (Boost.Units 1.1.0). Retrieved July 2nd, 2018 from ttps: //www.boost.org/doc/libs/1_65_0/doc/html/boost_units.html
[41]
Ain A Sonin. 2001. The Physical Basis of Dimensional analysis. Technical Report. Massachusetts Institute of Technology. Retrieved July 2nd, 2018 from http://web.mit.edu/2.25/www/pdf/DA_unified.pdf
[42]
Stackify. 2017. Top Source Code Repository Hosts: 50 Repo Hosts for Team Collaboration, Open Source, and More. Retrieved July 2nd, 2018 from https://stackify.com/source-code-repository-hosts/
[43]
Arthur Stephenson, Lia LaPiana, Daniel Mulville, Frank Bauer Peter Rutledge, David Folta, Greg Dukeman, Robert Sackheim, and Peter Norvig. 1999. Mars Climate Orbiter Mishap Investigation Board Phase I Report. Retrieved July 2nd, 2018 from https://llis.nasa.gov/llis_lib/ pdf/1009464main1_0641-mr.pdf
[44]
Mitchell Wand and Patrick O’Keefe. 1991. Automatic Dimensional Inference. In Computational Logic - Essays in Honor of Alan Robinson. 479–483. citeseer.ist.psu.edu/wand91automatic.html
[45]
Stefano Zaghi. 2017. Fury Library Comparison. Retrieved July 2nd, 2018 from https://github.com/szaghi/FURY#libraries

Cited By

View all
  • (2023)Managing Quantities and Units of Measurement in Code BasesUpdates on Software Usability10.5772/intechopen.108014Online publication date: 22-Feb-2023
  • (2023)Acknowledging Implementation Trade-Offs When Developing with Units of MeasurementModel-Driven Engineering and Software Development10.1007/978-3-031-38821-7_2(25-47)Online publication date: 4-Aug-2023
  • (2020)Lack of adoption of units of measurement librariesProceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering in Practice10.1145/3377813.3381359(81-89)Online publication date: 27-Jun-2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SLE 2018: Proceedings of the 11th ACM SIGPLAN International Conference on Software Language Engineering
October 2018
219 pages
ISBN:9781450360296
DOI:10.1145/3276604
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 24 October 2018

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. libraries
  2. open-source
  3. physical quantities
  4. scientific programming
  5. units of measurement

Qualifiers

  • Research-article

Conference

SLE '18
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)0
Reflects downloads up to 20 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Managing Quantities and Units of Measurement in Code BasesUpdates on Software Usability10.5772/intechopen.108014Online publication date: 22-Feb-2023
  • (2023)Acknowledging Implementation Trade-Offs When Developing with Units of MeasurementModel-Driven Engineering and Software Development10.1007/978-3-031-38821-7_2(25-47)Online publication date: 4-Aug-2023
  • (2020)Lack of adoption of units of measurement librariesProceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering in Practice10.1145/3377813.3381359(81-89)Online publication date: 27-Jun-2020
  • (2020)Unit of measurement libraries, their popularity and suitabilitySoftware: Practice and Experience10.1002/spe.292651:4(711-734)Online publication date: 11-Nov-2020

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media