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...
Saved in:
Published in: | ACM transactions on programming languages and systems 1988-04, Vol.10 (2), p.189-203 |
---|---|
Main Author: | |
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&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 |