Loading…
Global Sparse Analysis Framework
In this article, we present a general method for achieving global static analyzers that are precise and sound, yet also scalable. Our method, on top of the abstract interpretation framework, is a general sparse analysis technique that supports relational as well as nonrelational semantics properties...
Saved in:
Published in: | ACM transactions on programming languages and systems 2014-09, Vol.36 (3), p.1-44, Article 8 |
---|---|
Main Authors: | , , , , , , |
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-a310t-b84a3dd6ea4a819a71ea121fc9c8d19417a7461b87442758f6f2f88879b184b3 |
---|---|
cites | cdi_FETCH-LOGICAL-a310t-b84a3dd6ea4a819a71ea121fc9c8d19417a7461b87442758f6f2f88879b184b3 |
container_end_page | 44 |
container_issue | 3 |
container_start_page | 1 |
container_title | ACM transactions on programming languages and systems |
container_volume | 36 |
creator | Oh, Hakjoo Heo, Kihong Lee, Wonchan Lee, Woosuk Park, Daejun Kang, Jeehoon Yi, Kwangkeun |
description | In this article, we present a general method for achieving global static analyzers that are precise and sound, yet also scalable. Our method, on top of the abstract interpretation framework, is a general sparse analysis technique that supports relational as well as nonrelational semantics properties for various programming languages. Analysis designers first use the abstract interpretation framework to have a global and correct static analyzer whose scalability is unattended. Upon this underlying sound static analyzer, analysis designers add our generalized sparse analysis techniques to improve its scalability while preserving the precision of the underlying analysis. Our method prescribes what to prove to guarantee that the resulting sparse version should preserve the precision of the underlying analyzer. We formally present our framework and show that existing sparse analyses are all restricted instances of our framework. In addition, we show more semantically elaborate design examples of sparse nonrelational and relational static analyses. We then present their implementation results that scale to globally analyze up to one million lines of C programs. We also show a set of implementation techniques that turn out to be critical to economically support the sparse analysis process. |
doi_str_mv | 10.1145/2590811 |
format | article |
fullrecord | <record><control><sourceid>proquest_cross</sourceid><recordid>TN_cdi_proquest_miscellaneous_1793253523</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>1793253523</sourcerecordid><originalsourceid>FETCH-LOGICAL-a310t-b84a3dd6ea4a819a71ea121fc9c8d19417a7461b87442758f6f2f88879b184b3</originalsourceid><addsrcrecordid>eNo90L1PwzAUBHALgUQoiJ0pGywBP3_Ez2NV0YJUiYHu1kviSAGnCXYr1P-eohSmG-6nG46xW-CPAEo_CW05ApyxDLTGQmkrz1nGoVQFt0JfsquUPjjngBozlq_CUFHI30eKyefzLYVD6lK-jNT77yF-XrOLlkLyN6ecsc3yebN4KdZvq9fFfF2QBL4rKlQkm6b0pAjBkgFPIKCtbY0NWAWGjCqhQqOUMBrbshUtIhpbAapKztjDNDvG4Wvv0871Xap9CLT1wz45MFYKLbWQR3o_0ToOKUXfujF2PcWDA-5-L3CnC47ybpJU9__or_wB6WpTNQ</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>1793253523</pqid></control><display><type>article</type><title>Global Sparse Analysis Framework</title><source>Business Source Ultimate</source><source>Association for Computing Machinery:Jisc Collections:ACM OPEN Journals 2023-2025 (reading list)</source><creator>Oh, Hakjoo ; Heo, Kihong ; Lee, Wonchan ; Lee, Woosuk ; Park, Daejun ; Kang, Jeehoon ; Yi, Kwangkeun</creator><creatorcontrib>Oh, Hakjoo ; Heo, Kihong ; Lee, Wonchan ; Lee, Woosuk ; Park, Daejun ; Kang, Jeehoon ; Yi, Kwangkeun</creatorcontrib><description>In this article, we present a general method for achieving global static analyzers that are precise and sound, yet also scalable. Our method, on top of the abstract interpretation framework, is a general sparse analysis technique that supports relational as well as nonrelational semantics properties for various programming languages. Analysis designers first use the abstract interpretation framework to have a global and correct static analyzer whose scalability is unattended. Upon this underlying sound static analyzer, analysis designers add our generalized sparse analysis techniques to improve its scalability while preserving the precision of the underlying analysis. Our method prescribes what to prove to guarantee that the resulting sparse version should preserve the precision of the underlying analyzer. We formally present our framework and show that existing sparse analyses are all restricted instances of our framework. In addition, we show more semantically elaborate design examples of sparse nonrelational and relational static analyses. We then present their implementation results that scale to globally analyze up to one million lines of C programs. We also show a set of implementation techniques that turn out to be critical to economically support the sparse analysis process.</description><identifier>ISSN: 0164-0925</identifier><identifier>EISSN: 1558-4593</identifier><identifier>DOI: 10.1145/2590811</identifier><language>eng</language><publisher>New York, NY, USA: ACM</publisher><subject>Analyzers ; C (programming language) ; Design engineering ; Economic analysis ; Preserves ; Program semantics ; Programming languages ; Semantics ; Semantics and reasoning ; Sound ; Theory of computation</subject><ispartof>ACM transactions on programming languages and systems, 2014-09, Vol.36 (3), p.1-44, Article 8</ispartof><rights>ACM</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-a310t-b84a3dd6ea4a819a71ea121fc9c8d19417a7461b87442758f6f2f88879b184b3</citedby><cites>FETCH-LOGICAL-a310t-b84a3dd6ea4a819a71ea121fc9c8d19417a7461b87442758f6f2f88879b184b3</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>314,780,784,27924,27925</link.rule.ids></links><search><creatorcontrib>Oh, Hakjoo</creatorcontrib><creatorcontrib>Heo, Kihong</creatorcontrib><creatorcontrib>Lee, Wonchan</creatorcontrib><creatorcontrib>Lee, Woosuk</creatorcontrib><creatorcontrib>Park, Daejun</creatorcontrib><creatorcontrib>Kang, Jeehoon</creatorcontrib><creatorcontrib>Yi, Kwangkeun</creatorcontrib><title>Global Sparse Analysis Framework</title><title>ACM transactions on programming languages and systems</title><addtitle>ACM TOPLAS</addtitle><description>In this article, we present a general method for achieving global static analyzers that are precise and sound, yet also scalable. Our method, on top of the abstract interpretation framework, is a general sparse analysis technique that supports relational as well as nonrelational semantics properties for various programming languages. Analysis designers first use the abstract interpretation framework to have a global and correct static analyzer whose scalability is unattended. Upon this underlying sound static analyzer, analysis designers add our generalized sparse analysis techniques to improve its scalability while preserving the precision of the underlying analysis. Our method prescribes what to prove to guarantee that the resulting sparse version should preserve the precision of the underlying analyzer. We formally present our framework and show that existing sparse analyses are all restricted instances of our framework. In addition, we show more semantically elaborate design examples of sparse nonrelational and relational static analyses. We then present their implementation results that scale to globally analyze up to one million lines of C programs. We also show a set of implementation techniques that turn out to be critical to economically support the sparse analysis process.</description><subject>Analyzers</subject><subject>C (programming language)</subject><subject>Design engineering</subject><subject>Economic analysis</subject><subject>Preserves</subject><subject>Program semantics</subject><subject>Programming languages</subject><subject>Semantics</subject><subject>Semantics and reasoning</subject><subject>Sound</subject><subject>Theory of computation</subject><issn>0164-0925</issn><issn>1558-4593</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2014</creationdate><recordtype>article</recordtype><recordid>eNo90L1PwzAUBHALgUQoiJ0pGywBP3_Ez2NV0YJUiYHu1kviSAGnCXYr1P-eohSmG-6nG46xW-CPAEo_CW05ApyxDLTGQmkrz1nGoVQFt0JfsquUPjjngBozlq_CUFHI30eKyefzLYVD6lK-jNT77yF-XrOLlkLyN6ecsc3yebN4KdZvq9fFfF2QBL4rKlQkm6b0pAjBkgFPIKCtbY0NWAWGjCqhQqOUMBrbshUtIhpbAapKztjDNDvG4Wvv0871Xap9CLT1wz45MFYKLbWQR3o_0ToOKUXfujF2PcWDA-5-L3CnC47ybpJU9__or_wB6WpTNQ</recordid><startdate>20140925</startdate><enddate>20140925</enddate><creator>Oh, Hakjoo</creator><creator>Heo, Kihong</creator><creator>Lee, Wonchan</creator><creator>Lee, Woosuk</creator><creator>Park, Daejun</creator><creator>Kang, Jeehoon</creator><creator>Yi, Kwangkeun</creator><general>ACM</general><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>20140925</creationdate><title>Global Sparse Analysis Framework</title><author>Oh, Hakjoo ; Heo, Kihong ; Lee, Wonchan ; Lee, Woosuk ; Park, Daejun ; Kang, Jeehoon ; Yi, Kwangkeun</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a310t-b84a3dd6ea4a819a71ea121fc9c8d19417a7461b87442758f6f2f88879b184b3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2014</creationdate><topic>Analyzers</topic><topic>C (programming language)</topic><topic>Design engineering</topic><topic>Economic analysis</topic><topic>Preserves</topic><topic>Program semantics</topic><topic>Programming languages</topic><topic>Semantics</topic><topic>Semantics and reasoning</topic><topic>Sound</topic><topic>Theory of computation</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Oh, Hakjoo</creatorcontrib><creatorcontrib>Heo, Kihong</creatorcontrib><creatorcontrib>Lee, Wonchan</creatorcontrib><creatorcontrib>Lee, Woosuk</creatorcontrib><creatorcontrib>Park, Daejun</creatorcontrib><creatorcontrib>Kang, Jeehoon</creatorcontrib><creatorcontrib>Yi, Kwangkeun</creatorcontrib><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>Oh, Hakjoo</au><au>Heo, Kihong</au><au>Lee, Wonchan</au><au>Lee, Woosuk</au><au>Park, Daejun</au><au>Kang, Jeehoon</au><au>Yi, Kwangkeun</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Global Sparse Analysis Framework</atitle><jtitle>ACM transactions on programming languages and systems</jtitle><stitle>ACM TOPLAS</stitle><date>2014-09-25</date><risdate>2014</risdate><volume>36</volume><issue>3</issue><spage>1</spage><epage>44</epage><pages>1-44</pages><artnum>8</artnum><issn>0164-0925</issn><eissn>1558-4593</eissn><abstract>In this article, we present a general method for achieving global static analyzers that are precise and sound, yet also scalable. Our method, on top of the abstract interpretation framework, is a general sparse analysis technique that supports relational as well as nonrelational semantics properties for various programming languages. Analysis designers first use the abstract interpretation framework to have a global and correct static analyzer whose scalability is unattended. Upon this underlying sound static analyzer, analysis designers add our generalized sparse analysis techniques to improve its scalability while preserving the precision of the underlying analysis. Our method prescribes what to prove to guarantee that the resulting sparse version should preserve the precision of the underlying analyzer. We formally present our framework and show that existing sparse analyses are all restricted instances of our framework. In addition, we show more semantically elaborate design examples of sparse nonrelational and relational static analyses. We then present their implementation results that scale to globally analyze up to one million lines of C programs. We also show a set of implementation techniques that turn out to be critical to economically support the sparse analysis process.</abstract><cop>New York, NY, USA</cop><pub>ACM</pub><doi>10.1145/2590811</doi><tpages>44</tpages><oa>free_for_read</oa></addata></record> |
fulltext | fulltext |
identifier | ISSN: 0164-0925 |
ispartof | ACM transactions on programming languages and systems, 2014-09, Vol.36 (3), p.1-44, Article 8 |
issn | 0164-0925 1558-4593 |
language | eng |
recordid | cdi_proquest_miscellaneous_1793253523 |
source | Business Source Ultimate; Association for Computing Machinery:Jisc Collections:ACM OPEN Journals 2023-2025 (reading list) |
subjects | Analyzers C (programming language) Design engineering Economic analysis Preserves Program semantics Programming languages Semantics Semantics and reasoning Sound Theory of computation |
title | Global Sparse Analysis Framework |
url | http://sfxeu10.hosted.exlibrisgroup.com/loughborough?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-04T18%3A25%3A16IST&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=Global%20Sparse%20Analysis%20Framework&rft.jtitle=ACM%20transactions%20on%20programming%20languages%20and%20systems&rft.au=Oh,%20Hakjoo&rft.date=2014-09-25&rft.volume=36&rft.issue=3&rft.spage=1&rft.epage=44&rft.pages=1-44&rft.artnum=8&rft.issn=0164-0925&rft.eissn=1558-4593&rft_id=info:doi/10.1145/2590811&rft_dat=%3Cproquest_cross%3E1793253523%3C/proquest_cross%3E%3Cgrp_id%3Ecdi_FETCH-LOGICAL-a310t-b84a3dd6ea4a819a71ea121fc9c8d19417a7461b87442758f6f2f88879b184b3%3C/grp_id%3E%3Coa%3E%3C/oa%3E%3Curl%3E%3C/url%3E&rft_id=info:oai/&rft_pqid=1793253523&rft_id=info:pmid/&rfr_iscdi=true |