Loading…

An Ada package for dimensional analysis

This paper illustrates the use of Ada's abstraction facilities-notably, operator overloading and type parameterization-to define an oft-requested feature: a way to attribute units of measure to variables and values. The definition given allows the programmer to specify units of measure for vari...

Full description

Saved in:
Bibliographic Details
Published in:ACM transactions on programming languages and systems 1988-04, Vol.10 (2), p.189-203
Main Author: Hilfinger, Paul N.
Format: Article
Language:English
Subjects:
Citations: Items that this one cites
Items that cite this one
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
cited_by cdi_FETCH-LOGICAL-a345t-e4f29e73f77d6f73244d35fc74a8d0c6028b8aaab2f0a3fa92c759f5b7e7a6f23
cites cdi_FETCH-LOGICAL-a345t-e4f29e73f77d6f73244d35fc74a8d0c6028b8aaab2f0a3fa92c759f5b7e7a6f23
container_end_page 203
container_issue 2
container_start_page 189
container_title ACM transactions on programming languages and systems
container_volume 10
creator Hilfinger, Paul N.
description This paper illustrates the use of Ada's abstraction facilities-notably, operator overloading and type parameterization-to define an oft-requested feature: a way to attribute units of measure to variables and values. The definition given allows the programmer to specify units of measure for variables, constants, and parameters; checks uses of these entities for dimensional consistency; allows arithmetic between them, where legal; and provides scale conversions between commensurate units. It is not constrained to a particular system of measurement (such as the metric or English systems). Although the definition is in standard Ada and requires nothing special of the compiler, certain reasonable design choices in the compiler, discussed here at some length, can make its implementation particularly efficient.
doi_str_mv 10.1145/42190.42346
format article
fullrecord <record><control><sourceid>proquest_cross</sourceid><recordid>TN_cdi_proquest_miscellaneous_28968843</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>28968843</sourcerecordid><originalsourceid>FETCH-LOGICAL-a345t-e4f29e73f77d6f73244d35fc74a8d0c6028b8aaab2f0a3fa92c759f5b7e7a6f23</originalsourceid><addsrcrecordid>eNo9kDlPAzEQRi0EEkugoqHcAkGBNvgYr-0yirikSDRQW7NeGy3sEeykyL_PsVGamWLe9430CLlldMoYyGfgzNApcAHlGcmYlLoAacQ5ySgroaCGy0tyldIvpZRpqTPyOOvzWY35Et0f_vg8DDGvm873qRl6bHPcjU1q0jW5CNgmf3PcE_L9-vI1fy8Wn28f89miQAFyVXgI3HglglJ1GZTgALWQwSlAXVNXUq4rjYgVDxRFQMOdkibISnmFZeBiQh7G3mUc_tc-rWzXJOfbFns_rJPl2pRag9iBTyPo4pBS9MEuY9Nh3FhG7V6GPciwBxk7-v5Yi8lhGyL2rkmniKIcJOy_340Yuu50HBu2yHRkXQ</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>28968843</pqid></control><display><type>article</type><title>An Ada package for dimensional analysis</title><source>Association for Computing Machinery:Jisc Collections:ACM OPEN Journals 2023-2025 (reading list)</source><creator>Hilfinger, Paul N.</creator><creatorcontrib>Hilfinger, Paul N.</creatorcontrib><description>This paper illustrates the use of Ada's abstraction facilities-notably, operator overloading and type parameterization-to define an oft-requested feature: a way to attribute units of measure to variables and values. The definition given allows the programmer to specify units of measure for variables, constants, and parameters; checks uses of these entities for dimensional consistency; allows arithmetic between them, where legal; and provides scale conversions between commensurate units. It is not constrained to a particular system of measurement (such as the metric or English systems). Although the definition is in standard Ada and requires nothing special of the compiler, certain reasonable design choices in the compiler, discussed here at some length, can make its implementation particularly efficient.</description><identifier>ISSN: 0164-0925</identifier><identifier>EISSN: 1558-4593</identifier><identifier>DOI: 10.1145/42190.42346</identifier><identifier>CODEN: ATPSDT</identifier><language>eng</language><publisher>New York, NY, USA: ACM</publisher><subject>Applied sciences ; Compilers ; Computer science; control theory; systems ; Data types and structures ; Exact sciences and technology ; Extensible languages ; General programming languages ; Language features ; Language types ; Modules / packages ; Programming languages ; Software ; Software and its engineering ; Software notations and tools</subject><ispartof>ACM transactions on programming languages and systems, 1988-04, Vol.10 (2), p.189-203</ispartof><rights>ACM</rights><rights>1989 INIST-CNRS</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-a345t-e4f29e73f77d6f73244d35fc74a8d0c6028b8aaab2f0a3fa92c759f5b7e7a6f23</citedby><cites>FETCH-LOGICAL-a345t-e4f29e73f77d6f73244d35fc74a8d0c6028b8aaab2f0a3fa92c759f5b7e7a6f23</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>314,776,780,27901,27902</link.rule.ids><backlink>$$Uhttp://pascal-francis.inist.fr/vibad/index.php?action=getRecordDetail&amp;idt=7024542$$DView record in Pascal Francis$$Hfree_for_read</backlink></links><search><creatorcontrib>Hilfinger, Paul N.</creatorcontrib><title>An Ada package for dimensional analysis</title><title>ACM transactions on programming languages and systems</title><addtitle>ACM TOPLAS</addtitle><description>This paper illustrates the use of Ada's abstraction facilities-notably, operator overloading and type parameterization-to define an oft-requested feature: a way to attribute units of measure to variables and values. The definition given allows the programmer to specify units of measure for variables, constants, and parameters; checks uses of these entities for dimensional consistency; allows arithmetic between them, where legal; and provides scale conversions between commensurate units. It is not constrained to a particular system of measurement (such as the metric or English systems). Although the definition is in standard Ada and requires nothing special of the compiler, certain reasonable design choices in the compiler, discussed here at some length, can make its implementation particularly efficient.</description><subject>Applied sciences</subject><subject>Compilers</subject><subject>Computer science; control theory; systems</subject><subject>Data types and structures</subject><subject>Exact sciences and technology</subject><subject>Extensible languages</subject><subject>General programming languages</subject><subject>Language features</subject><subject>Language types</subject><subject>Modules / packages</subject><subject>Programming languages</subject><subject>Software</subject><subject>Software and its engineering</subject><subject>Software notations and tools</subject><issn>0164-0925</issn><issn>1558-4593</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>1988</creationdate><recordtype>article</recordtype><recordid>eNo9kDlPAzEQRi0EEkugoqHcAkGBNvgYr-0yirikSDRQW7NeGy3sEeykyL_PsVGamWLe9430CLlldMoYyGfgzNApcAHlGcmYlLoAacQ5ySgroaCGy0tyldIvpZRpqTPyOOvzWY35Et0f_vg8DDGvm873qRl6bHPcjU1q0jW5CNgmf3PcE_L9-vI1fy8Wn28f89miQAFyVXgI3HglglJ1GZTgALWQwSlAXVNXUq4rjYgVDxRFQMOdkibISnmFZeBiQh7G3mUc_tc-rWzXJOfbFns_rJPl2pRag9iBTyPo4pBS9MEuY9Nh3FhG7V6GPciwBxk7-v5Yi8lhGyL2rkmniKIcJOy_340Yuu50HBu2yHRkXQ</recordid><startdate>19880401</startdate><enddate>19880401</enddate><creator>Hilfinger, Paul N.</creator><general>ACM</general><general>Association for Computing Machinery</general><scope>IQODW</scope><scope>AAYXX</scope><scope>CITATION</scope><scope>7SC</scope><scope>8FD</scope><scope>JQ2</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope></search><sort><creationdate>19880401</creationdate><title>An Ada package for dimensional analysis</title><author>Hilfinger, Paul N.</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a345t-e4f29e73f77d6f73244d35fc74a8d0c6028b8aaab2f0a3fa92c759f5b7e7a6f23</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>1988</creationdate><topic>Applied sciences</topic><topic>Compilers</topic><topic>Computer science; control theory; systems</topic><topic>Data types and structures</topic><topic>Exact sciences and technology</topic><topic>Extensible languages</topic><topic>General programming languages</topic><topic>Language features</topic><topic>Language types</topic><topic>Modules / packages</topic><topic>Programming languages</topic><topic>Software</topic><topic>Software and its engineering</topic><topic>Software notations and tools</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Hilfinger, Paul N.</creatorcontrib><collection>Pascal-Francis</collection><collection>CrossRef</collection><collection>Computer and Information Systems Abstracts</collection><collection>Technology Research Database</collection><collection>ProQuest Computer Science Collection</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><jtitle>ACM transactions on programming languages and systems</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Hilfinger, Paul N.</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>An Ada package for dimensional analysis</atitle><jtitle>ACM transactions on programming languages and systems</jtitle><stitle>ACM TOPLAS</stitle><date>1988-04-01</date><risdate>1988</risdate><volume>10</volume><issue>2</issue><spage>189</spage><epage>203</epage><pages>189-203</pages><issn>0164-0925</issn><eissn>1558-4593</eissn><coden>ATPSDT</coden><abstract>This paper illustrates the use of Ada's abstraction facilities-notably, operator overloading and type parameterization-to define an oft-requested feature: a way to attribute units of measure to variables and values. The definition given allows the programmer to specify units of measure for variables, constants, and parameters; checks uses of these entities for dimensional consistency; allows arithmetic between them, where legal; and provides scale conversions between commensurate units. It is not constrained to a particular system of measurement (such as the metric or English systems). Although the definition is in standard Ada and requires nothing special of the compiler, certain reasonable design choices in the compiler, discussed here at some length, can make its implementation particularly efficient.</abstract><cop>New York, NY, USA</cop><pub>ACM</pub><doi>10.1145/42190.42346</doi><tpages>15</tpages><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 0164-0925
ispartof ACM transactions on programming languages and systems, 1988-04, Vol.10 (2), p.189-203
issn 0164-0925
1558-4593
language eng
recordid cdi_proquest_miscellaneous_28968843
source Association for Computing Machinery:Jisc Collections:ACM OPEN Journals 2023-2025 (reading list)
subjects Applied sciences
Compilers
Computer science
control theory
systems
Data types and structures
Exact sciences and technology
Extensible languages
General programming languages
Language features
Language types
Modules / packages
Programming languages
Software
Software and its engineering
Software notations and tools
title An Ada package for dimensional analysis
url http://sfxeu10.hosted.exlibrisgroup.com/loughborough?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-31T04%3A50%3A18IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_cross&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=An%20Ada%20package%20for%20dimensional%20analysis&rft.jtitle=ACM%20transactions%20on%20programming%20languages%20and%20systems&rft.au=Hilfinger,%20Paul%20N.&rft.date=1988-04-01&rft.volume=10&rft.issue=2&rft.spage=189&rft.epage=203&rft.pages=189-203&rft.issn=0164-0925&rft.eissn=1558-4593&rft.coden=ATPSDT&rft_id=info:doi/10.1145/42190.42346&rft_dat=%3Cproquest_cross%3E28968843%3C/proquest_cross%3E%3Cgrp_id%3Ecdi_FETCH-LOGICAL-a345t-e4f29e73f77d6f73244d35fc74a8d0c6028b8aaab2f0a3fa92c759f5b7e7a6f23%3C/grp_id%3E%3Coa%3E%3C/oa%3E%3Curl%3E%3C/url%3E&rft_id=info:oai/&rft_pqid=28968843&rft_id=info:pmid/&rfr_iscdi=true