the cost of developing without. We have no idea of
how much time is spent chasing incompatible quan-
tity assignments, dimension errors or incorrect unit
conversions. We do know that there are many rea-
sons for not adopting a quantity discipline based ap-
proach (Salah and McKeever, 2020). Different stake-
holders will have different robustness concerns and
willingness to compromise on the proportion of quan-
tity and unit annotations required. Addressing usabil-
ity concerns is an important aspect of our research.
Our tool currently performs static named quantity
and dimension analysis for a simple imperative lan-
guage. It also searches for the least number of unit
conversions to reduce round-off errors in generated
code. Current work is looking at delaying conver-
sions when calling functions, along with quantity and
dimension variables that alleviate the annotation bur-
den, while increasing reusability, and allowing errors
to be discovered earlier in the code.
REFERENCES
Antoniu, T., Steckler, P. A., Krishnamurthi, S., Neuwirth,
E., and Felleisen, M. (2004). Validating the unit cor-
rectness of spreadsheet programs. In Proceedings
of Software Engineering, ICSE ’04, pages 439–448,
Washington, DC, USA. IEEE Computer Society.
Apple (2020). Swift open source. Online https://swift.org.
Last Accessed on 15th April 2020.
Bennich-Bj
¨
orkman, O. and McKeever, S. (2018). The next
700 Unit of Measurement Checkers. In Proceedings
of Software Language Engineering, SLE 2018, page
121–132, NY, USA. Association for Computing Ma-
chinery.
Bureau International des Poids et Mesures (2019). SI
Brochure: The International System of Units (SI),
9th Edition, Dimensions of Quantities. Online
https://www.bipm.org. Last Accessed 15th April,
2020.
CODATA (2021). Digital representation of units of mea-
surement. Online https://codata.org/initiatives/task-
groups/drum/. Last Accessed 25th December 2021.
Cooper, J. and McKeever, S. (2008). A Model-Driven Ap-
proach to Automatic Conversion of Physical Units.
Software: Practice and Experience, 38(4):337–359.
Damevski, K. (2009). Expressing measurement units
in interfaces for scientific component software. In
Proceedings of Component-Based High Performance
Computing, CBHPC ’09, pages 13:1–13:8, NY, USA.
ACM.
Dieterichs Henning (2021). Units of Mea-
surement Validator for C#. Online
https://www.codeproject.com/Articles/413750/Units-
of-Measure-Validator-for-Csharp. Last Accessed on
25th Of October.
Dreiheller, A., Mohr, B., and Moerschbacher, M. (1986).
Programming pascal with physical units. SIGPLAN
Notes, 21(12):114–123.
Foster, M. P. (2013). Quantities, units and computing. Com-
put. Stand. Interfaces, 35:529–535.
Fowler, M. (1997). Analysis Patterns: Reusable Objects
Models. Addison-Wesley Longman Publishing Co.,
Inc., Boston, MA, USA.
Gehani, N. (1977). Units of measure as a data attribute.
Computer Languages, 2(3):93 – 111.
Hall, B. D. (2020). Software for calculation with physical
quantities. In 2020 IEEE International Workshop on
Metrology for Industry 4.0 IoT, pages 458–463.
Hilfinger, P. N. (1988). An Ada Package for Dimen-
sional Analysis. ACM Trans. Program. Lang. Syst.,
10(2):189–203.
Hills M, Chen Feng, and Ros¸u Grigore (2012). A Rewriting
Logic Approach to Static Checking of Units of Mea-
surement in C. Electronic Notes in Theoretical Com-
puter Science, 290:51–67.
Jiang, L. and Su, Z. (2006). Osprey: A Practical Type Sys-
tem for Validating Dimensional Unit Correctness of
C Programs. In Proceedings of the 28th International
Conference on Software Engineering, ICSE ’06, pages
262–271, New York, NY, USA. ACM.
Joint Committee for Guides in Metrology (JCGM) (2012).
International Vocabulary of Metrology, Basic and
General Concepts and Associated Terms (VIM). On-
line https://www.bipm.org/en/about-us/. Last Ac-
cessed 15th April 2020.
Karr, M. and Loveman, D. B. (1978). Incorporation of
Units into Programming Languages. Commun. ACM,
21(5):385–391.
Kennedy, A. (1994). Dimension Types. In Sannella,
D., editor, Programming Languages and Systems—
ESOP’94, volume 788, pages 348–362, Edinburgh,
U.K. Springer.
Lungu, M. (2008). Towards reverse engineering software
ecosystems. In 2008 IEEE International Conference
on Software Maintenance, pages 428–431.
McKeever, S. (2021). From Quantities in Software Models
to Implementation. In Proceedings of the 9th Interna-
tional Conference on Model-Driven Engineering and
Software Development - MODELSWARD, pages 199–
206. INSTICC, SciTePress.
McKeever, S., Bennich-Bj
¨
orkman, O., and Salah, O.-A.
(2020). Unit of measurement libraries, their popular-
ity and suitability. Software: Practice and Experience.
McKeever, S., Pac¸aci, G., and Bennich-Bj
¨
orkman, O.
(2019). Quantity Checking through Unit of Measure-
ment Libraries, Current Status and Future Directions.
In Model-Driven Engineering and Software Develop-
ment, MODELSWARD.
Microsoft (2020). F# software foundation. Online
https://fsharp.org. Last Accessed on 15th April 2020.
NIST (2015). International System of
Units (SI): Base and Derived. Online
https://physics.nist.gov/cuu/Units/units.html. Last
Accessed October 2nd, 2019.
Discerning Quantities from Units of Measurement
113