The next 700 unit of measurement checkers

@article{BennichBjrkman2018TheN7,
  title={The next 700 unit of measurement checkers},
  author={Oscar Bennich-Bj{\"o}rkman and Steve McKeever},
  journal={Proceedings of the 11th ACM SIGPLAN International Conference on Software Language Engineering},
  year={2018}
}
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… 

From Quantities in Software Models to Implementation

TLDR
Inspired by a survey of practitioners, a review of four competing methods that support unit checking of code bases is reviewed to enable scientific developers to select the most appropriate approach to transferring UoM information from their software models to their programs.

Quantity Checking through Unit of Measurement Libraries, Current Status and Future Directions

TLDR
This paper looks in detail at how a number of prominent libraries in the most popular programming languages support units and argues that even when these libraries are based on a sound design pattern, their implementation becomes too broad.

Unit of measurement libraries, their popularity and suitability

TLDR
It is argued that so long as units are not part of the language, or not supported through an IDE extension, their use will be limited, and libraries are perhaps best suited to applications in which unit of measurement checking is desirable at run‐time.

Precise inference of expressive units of measurement types

TLDR
The experiments show that PUnits is an effective, sound, and scalable alternative to using encapsulation-based units APIs, enabling Java developers to reap the performance benefits of using primitive types instead of abstract data types for unit-wise consistent scientific computations.

Knowledge Structures Over Simulation Units

TLDR
This paper uses Functional Mock-Up Objects (FMOs) as a programming layer to encapsulate simulators compliant with the FMI standard into OO structures and integrate FMOs into the class and type systems.

Lack of Adoption of Units of Measurement Libraries: Survey and Anecdotes

  • Omar-Alfred SalahS. McKeever
  • Computer Science
    2020 IEEE/ACM 42nd International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP)
  • 2020
TLDR
Recommendations are made to UoM library creators stemming from these points that could help alleviate the problem and lead to an increased adoption rate of methodologies that support unit annotation and checking.

Technical Foundations of CORSIKA 8: New Concepts for Scientific Computing

TLDR
The goal of these systems is to make physical and geometric calculations easy and safe in CORSIKA 8, while maintaining highest computational speed, and how continuous integration is used to maintain high code quality standards is discussed.

Type systems for programs respecting dimensions

TLDR
It is shown that the types presented are unique, and most general, and can give straightforward dimensioned types to many common matrix operations such as addition, multiplication, determinants, traces, and fundamental row operations.

Discerning Quantities from Units of Measurement

TLDR
This work presents a named quantity layer that sits on top of a dimension checker and unit converter ensuring values of different quantities are correctly managed without undue restrictions.

Understanding Reasons Behind the Lack of Adoption of Units of Measure (UoM) Libraries

The concepts of units and units of measurement (UoM) are used in scientific and mathematicalapplications to encode variables and their types with units. There are many UoMlibraries, as identified b

References

SHOWING 1-10 OF 44 REFERENCES

A model-driven approach to automatic conversion of physical units

TLDR
An intuitive algorithm for performing automatic conversions between quantities measured in different units is developed, which both requires fewer conversion operations than current approaches and makes more sensible choices about which quantities to convert.

Expressing measurement units in interfaces for scientific component software

TLDR
The design of adding measurement units to interfaces in the CCA component model is presented in order to provide dimensional safety, an extensible set of measurement units and automatic conversion between commensurable quantities.

Osprey: a practical type system for validating dimensional unit correctness of C programs

TLDR
This paper presents a type system to automatically detect potential errors involving measurement units, which is constraint-based: it model units as types and flow of units as constraints and scales to large programs.

The next 700 programming languages

A family of unimplemented computing languages is described that is intended to span differences of application area by a unified framework. This framework dictates the rules about the uses of

Popularity, Interoperability, and Impact of Programming Languages in 100,000 Open Source Projects

TLDR
This study investigates a hundred thousands of open source software projects from GitHub to answer various research questions on the "popularity", "interoperability" and "impact" of various languages measured in different ways.

Object-oriented units of measurement

TLDR
This work shows how to formulate dimensions and units as classes as classes in a nominally typed object-oriented language through the use of statically typed metaclasses, which allows both parametric and inheritance poly-morphism with respect to both dimension and unit types.

The Multiple Facets of Software Diversity

TLDR
This survey includes classical work about design and data diversity for fault tolerance, as well as the cybersecurity literature that investigates randomization at different system levels, with an emphasis on the most recent advances in the field.

Adding uncertainty and units to quantity types in software models

Although several software modeling languages permit the representation of key aspects of physical entities, such as units, precision or measurement uncertainty, these aspects are not typically

Units of Measure as a Data Attribute

Validating the unit correctness of spreadsheet programs

TLDR
XeLda, the authors' tool for unit checking Excel spreadsheets, is described, which highlights cells if their formulas process values with incorrect units and if derived units clash with unit annotations.